# How to make an organised investigation of branch cuts from a solution to a differential equation

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.

• As to the Edit: with this method, it's not necessary to make change of variables. Though LaplaceTransform will be a bit slower, you'll manage to find there actually exist only 2 roots whose real part is greater than 0. Try the following (takes about 80 seconds on my laptop): lapT = LaplaceTransform[First@sol, x, s] ; // AbsoluteTiming; rts = Union[Flatten[s /. Solve[Denominator@Together[#] == 0, s] & /@ lapT]]; Simplify[Re /@ rts, {\[Omega] > 0, \[Nu] > 0}] – xzczd Oct 26 '17 at 5:00

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] &;

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.

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}}}]]


• Ah yes. Linear equations can be transformed and so can their boundary conditions. I guess a Laplace transform would work as well. Is there any reason to choose a sine transform? Thanks. – Hugh Oct 25 '17 at 15:29
• @Hugh When Laplace transform is chosen, one needs to know the value of $a'(0)$ and $b'(0)$ i.e. in your case you'll have to deal with constant terms again, which can be quite troublesome (as you've faced in your question), that's the reason I chose Fourier sine transform. – xzczd Oct 25 '17 at 15:41
• So it seems one has to know the properties of the transforms and pick the most useful one. This is an ingenious solution. Is there no way to sort the mess I got into? – Hugh Oct 25 '17 at 15:51
• @Hugh Well, actually I myself faced similar problem in the past and gave up in the end after some struggling, but I'm really eager to see someone coming up with a solution clearing up the mess directly. – xzczd Oct 25 '17 at 16:01
• I have added a way forward for my problem based on Laplace transforms. See edit on question. Not as neat as yours but could be a way of sorting out solutions. What do you think? – Hugh Oct 25 '17 at 17:23

I'm not really sure I understood your question right. Do you mean something like this?

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]]))}*)

• Thanks for trying. If you put in arbitrary solutions then we won't get what we need as x -> Infinity. We need a to go to U and b to go to zero. So how to we choose special values for c[2] and c[4] to make this happen? – Hugh Oct 25 '17 at 14:15
• What version are you using? I tried taking that limit and it would not evaluate. Thanks – Hugh Oct 25 '17 at 15:19
• I'm using Version 11. – JeRut Oct 25 '17 at 15:21
• cc[[1]] does not contain x. So I don't know what happening. Have you made another substitution? – Hugh Oct 25 '17 at 15:26
• That's right. No, I just copy-pasted your code. When I'm replacing x with $\eta$ nothing happens and I aborted after 90s. Sorry for wasting your time... – JeRut Oct 25 '17 at 15:32