I am attempting to solve two differential equations. The solution gives equations that have branch cuts. I need to choose appropriate branch cuts for my boundary conditions. How do I find the correct ones?

The differential equations and the boundary conditions are

```
ClearAll[a, b, x, ω, ν, U];
eqns = {
         ω b[x] - ν (a'')[x] == 0,
   U ω - ω a[x] - ν (b'')[x] == 0
   };
bc1 = {a[0] == 0, b[0] == 0};
bc2 = {a[∞] == U, b[∞] == 0};

```

The boundary condition bc2 is ambitions and does not work if put into `DSolve`. However, with just boundary condition bc1 we can get a solution.

```
sol = {a[x], b[x]} /. 
  DSolve[Join[eqns, bc1], {a[x], b[x]}, {x, 0, ∞}]

```

The solution is long and contains terms like (-1)^(3/4) which suggests four branch cuts. There are also constants of integration C[2] and C[4]. By playing around I find I can get a tidy solution by making substitutions and simplifying. I have replace C[2] with a normalised c[2] and similar for C[4]. I have replaced x with a normalised `η` I don't think I have significantly changed the problem. 

```
subs = { x -> η /Sqrt[2] Sqrt[ν]/Sqrt[ω], 
   C[2] -> U Sqrt[2] Sqrt[ω]/Sqrt[ν] c[2], 
   C[4] -> U Sqrt[2] Sqrt[ω]/Sqrt[ν] c[4]};
sol1 = Simplify[First@sol /. subs]

```

The solution is 

```
{1/4 E^((-(1/2) - I/2) η)
   U (-1 + 4 E^((1/2 + I/2) η) - (1 - I) c[2] + 
    E^((1 + I) η) (-1 + (1 - I) c[2] - (1 + I) c[4]) + 
    E^η (-1 + (1 + I) c[2] - (1 - I) c[4]) - 
    E^(I η) (1 + (1 + I) c[2] - (1 - I) c[4]) + (1 + I) c[4]), 
 1/4 E^((-(1/2) - I/2) η)
   U (-I - (1 + I) c[2] + 
    I E^(I η) (1 + (1 + I) c[2] - (1 - I) c[4]) - (1 - I) c[4] + 
    E^((1 + I) η) (-I + (1 + I) c[2] + (1 - I) c[4]) + 
    E^η (I + (1 - I) c[2] + (1 + I) c[4]))}

```

We now have several exponential terms and we can collect them as follows

```
cc = Collect[sol1, {U, E^_}, Simplify]

{U (1 + 1/
     4 E^((1/2 + I/2) η) (-1 + (1 - I) c[2] - (1 + I) c[4]) + 
    1/4 E^((1/2 - I/2) η) (-1 + (1 + I) c[2] - (1 - I) c[4]) + 
    1/4 E^((-(1/2) + I/
        2) η) (-1 - (1 + I) c[2] + (1 - I) c[4]) + 
    1/4 E^((-(1/2) - I/2) η) (-1 - (1 - I) c[2] + (1 + I) c[4])),
  U (1/4 E^((-(1/2) - I/
        2) η) (-I - (1 + I) c[2] - (1 - I) c[4]) + 
    1/4 I E^((-(1/2) + I/
        2) η) (1 + (1 + I) c[2] - (1 - I) c[4]) + 
    1/4 E^((1/2 + I/2) η) (-I + (1 + I) c[2] + (1 - I) c[4]) + 
    1/4 E^((1/2 - I/2) η) (I + (1 - I) c[2] + (1 + I) c[4]))}

```

The first solution should go to U and the second to 0 for large `η` . I can see I have positive and negative real parts to the exponential powers. Here is where I get lost. How can I choose values for c[2] and c[4] to give me the solutions I need? Note that the solutions I need will make the solution for `a` go to U and the solution for `b` go to 0 as `x -> Infinity`.

Thanks

**Edit**

xzczd has come up with a solution that is only a few lines long. That is probably the way to go. His/Her method starts afresh and uses the sine transform which suppresses growing solutions. This got me thinking about Laplace transforms and as xzczd states we can't use them directly because they don't allow for boundary conditions at infinity. However, we can use them on the solution I obtained and then remove those parts of the solutions that are exponentially growing. Thus we take the Laplace transform of the solutions. 

```
lapT = LaplaceTransform[cc, η, s] // FullSimplify

{(U (1 + 4 s^3 c[2] + 2 s c[4]))/(s + 4 s^5), 
   (2 U (s - c[2] + 2 s^2 c[4]))/(1 + 4 s^4)}

```

which are simple solutions. Now we have to find the roots of the denominators and identify which have real parts greater than zero. These roots will give rise to exponentially growing terms. 

```
rts = Union[Flatten[s /. Solve[Denominator[#] == 0, s] & /@ lapT]]
rtsp = Select[rts, Re[#] >  0 &]

{0, -((-1)^(1/4)/Sqrt[2]), (-1)^(
 1/4)/Sqrt[2], -((-1)^(3/4)/Sqrt[2]), (-1)^(3/4)/Sqrt[2]}

{(-1)^(1/4)/Sqrt[2], -((-1)^(3/4)/Sqrt[2])}

```

The residues of the terms with unwanted roots must be set to zero. We can find the residues and set them to zero as follows. 

```
res = Flatten@
  Table[Residue[lapT[[n]], {s, #1}] == 0 & /@ rtsp, {n, Length@lapT}]

```

This gives rise to four equations in our two unknowns c[2] and c[4]. I was slightly worried by this but we get two solutions easily. (There must be repeated equations that Mthematica can deal with.)

```
solc = Solve[res, {c[2], c[4]}] // Simplify

{{c[2] -> 1/2, c[4] -> -(1/2)}}

```

Which is a pleasingly simple result. The inverse transform gives the solution to the differential equations. 

```
InverseLaplaceTransform[ lapT /. First@solc, 
  s, η] // FullSimplify

{U - E^(-η/2) U Cos[η/2], -E^(-η/2) U Sin[η/2]}

```

This may be useful but is messy. If anyone is interested in this method I will post it as an answer with more detail. I can't at the moment due to workload but let me know.
['https://mathematica.stackexchange.com/questions/158578', 'https://mathematica.stackexchange.com', 'https://mathematica.stackexchange.com/users/12558/']
This problem can be solved with the help of Fourier sine transform.

Notice Fourier sine transform has the following property:

$$
\mathcal{F}\_t^{(s)}\left[f''(t)\right](\omega)=-\omega^2 \mathcal{F}\_t^{(s)}[f(t)](\omega)+\sqrt{\frac{2}{\pi }} \omega f(0)
$$

as long as $f(\infty)=0$ and $f'(\infty)=0$. So we first transform your equation a bit to make the b.c. at infinity zero:

```
{neweq, newbc1, newbc2} = {eqns, bc1, bc2} /. a -> (A@# + U &) // Simplify
(* {{ω b[x] == ν A''[x], ω A[x] + ν b''[x] == 0}, 
    {U + A[0] == 0, b[0] == 0}, 
    {A[∞] == 0, b[∞] == 0}} *)

```

Now we can use `FourierSinTransform` to solve the problem:

```
fst = FourierSinTransform[#, x, w] &;

tneweq = neweq /. head_[x] :> fst@head@x /. First@Solve[newbc1, {A@0, b@0}]

tsol = Solve[tneweq, {fst@A[x], fst@b[x]}][[1, All, -1]]
(* {-((Sqrt[2/π] U w^3 ν^2)/(w^4 ν^2 + ω^2)), 
    -((Sqrt[2/π] U w ν ω)/(w^4 ν^2 + ω^2))} *)

```

> 
> **Remark**
> 
> 
> I've made the transform on the equations in a quick but non-general way, for a general approach, check [this
>  post](https://mathematica.stackexchange.com/a/71393/1871).
> 
> 
> 

The last step is to transform back:

```
{sola[x_], solb[x_]} = 
 InverseFourierSinTransform[tsol, w, x] + {U, 0} // Simplify

```

When $\omega>0$ and $\nu>0$ (I guess it's probably the case, right? ), the solution can be simplified to the following:

$$a(x)=U-U e^{-x \sqrt{\frac{\omega }{2 \nu }}} \cos \left(x \sqrt{\frac{\omega }{2 \nu }}\right)$$
$$b(x)=-U e^{-x \sqrt{\frac{\omega }{2 \nu }}} \sin \left(x \sqrt{\frac{\omega }{2 \nu }}\right)$$

Finally, a plot for $\omega=1$, $\nu=2$, $U=3$:

```
Block[{ω = 1, ν = 2, U = 3}, 
 Plot[{sola[x], solb@x}, {x, 0, 15}, GridLines -> {None, {{U, Dashed}}}]]

```

![Mathematica graphics](https://i.stack.imgur.com/Gr9G3.png)
I'm not really sure I understood your question right. Do you mean something like this?

Your solutions:

```
eq = {U (1 + 
 1/4 E^((1/2 + I/2) \[Eta]) (-1 + (1 - I) c[2] - (1 + I) c[4]) + 
 1/4 E^((1/2 - I/2) \[Eta]) (-1 + (1 + I) c[2] - (1 - I) c[4]) + 
 1/4 E^((-(1/2) + I/2) \[Eta]) (-1 - (1 + I) c[2] + (1 - I) c[4]) +
 1/4 E^((-(1/2) - I/2) \[Eta]) (-1 - (1 - I) c[2] + (1 + I) c[4])),
 U (1/4E^((-(1/2) - I/2) \[Eta]) (-I - (1 + I) c[2] - (1 - I) c[4]) + 1/4 I E^((-(1/2) + I/2) \[Eta]) (1 + (1 + I) c[2] - (1 - I) c[4]) 
+ 1/4 E^((1/2 + I/2) \[Eta]) (-I + (1 + I) c[2] + (1 - I) c[4]) 
+1/4 E^((1/2 - I/2) \[Eta]) (I + (1 - I) c[2] + (1 + I) c[4]))}

```

Some random values for $c[i]$:

```
rule = Table[c[i] -> 2*i, {i, 1, 4}]
(*-> {c[1] -> 2, c[2] -> 4, c[3] -> 6, c[4] -> 8}*)

```

Replace the $c[i]$:

```
eq /. rule
(*->{(1 + (3/4 + 3 I) E^((-(1/2) - I/2) \[Eta]) + (3/4 - 
   3 I) E^((-(1/2) + I/2) \[Eta]) - (5/4 - 
   3 I) E^((1/2 - I/2) \[Eta]) - (5/4 + 
   3 I) E^((1/2 + I/2) \[Eta])) U, ((-3 + (3 I)/
   4) E^((-(1/2) - I/2) \[Eta]) - (3 + (3 I)/
   4) E^((-(1/2) + I/2) \[Eta]) + (3 + (5 I)/
   4) E^((1/2 - I/2) \[Eta]) + (3 - (5 I)/
   4) E^((1/2 + I/2) \[Eta])) U}*)

```

Since there aren't any $c[1]$ and $c[3]$ no value is assigned.

Update
======

Since I don't know how to enter this correctly below your comment:

```
{c[2], c[4]} /.Solve[Limit[cc[[1]], x -> Infinity] == U 
&& Limit[cc[[2]], x -> Infinity] == 0, {c[2], c[4]}] // FullSimplify
(*-> {-((Sin[\[Eta]] + Sinh[\[Eta]])/(2 Cos[\[Eta]] - 2 Cosh[\[Eta]])),(-Sin[\[Eta]] + Sinh[\[Eta]])/(2 (Cos[\[Eta]] - Cosh[\[Eta]]))}*)

```