# How to use Reduce with inverse trigonometric functions?

Clear["."]
rm = 1; al = Pi/6; csal = Cos[al];
DSolve[{rm ph'[s] == Sin[si[s]] Tan[si[s]]^2 csal,
rm si'[s] == -Sin[ph[s]] Sin[si[s]]^2}, {ph, si}, s]


How to Reduce in order to obtain the solution in a reasonable time?

EDIT1:

These are differential equations of straight (geodesic) and asymptotic lines on a one sheeted hyperboloid of revolution. Angles (si,ph) are angles made by meridians to the geodesic and symmetry axis respectively. A numerical solution looks like:

I expected that the closed form solution to be extremely simple just as the shell shape is. But it turns out so hard to Reduce it !

EDIT2:

Obtained the following relations analytically:

$$ph[s]=\phi,si[s]=\psi\,;$$

$$\frac{1}{\sin^2\psi}=\frac{1}{\sin^2\alpha}+\frac{s^2}{rm^2} \,;$$

$$\tan \phi= \tan \alpha \sin \psi\cdot \frac{s}{rm}\,;$$

• what is reasonable? I could calculate within 15s Mar 27, 2020 at 13:41
• @morbo Could you demonstrate your solution? In version 11.2 the system returned the input unevaluated. Mar 27, 2020 at 14:44
• Mathematica 12.1 gives a solution within 20s. Mar 27, 2020 at 16:07
• Yes mma 12 and above gives a huge result in short order, Mar 27, 2020 at 16:50
• @morbo: Can you please check my EDIT2 analytical results? I wished to avoid these laborious calculations by employing Mathematica for the same purpose. Apr 6, 2020 at 22:49

With "Weierstrass" -substitution si[s]=2 ArcTan[us[s],ph[s]=2 ArcTan[up[s],

you might find simple equation and a fast solution:

ode = {rm ph'[s] == Sin[si[s]] Tan[si[s]]^2 csal,rm si'[s] == -Sin[ph[s]] Sin[
si[s]]^2} /. {ph -> (2 ArcTan[up[#]] &),si -> (2 ArcTan[us[#]] &)} // TrigExpand // FullSimplify
(*{(2 Derivative[1][up][s])/(1 + up[s]^2) == (4 Sqrt[3] us[s]^3)/((-1 + us[s]^2)^2 (1 + us[s]^2)),
(4 up[s] us[s]^2)/((1 + up[s]^2) (1 + us[s]^2)) +Derivative[1][us][s] == 0}*)


These equations are solved in 1.2s:

DSolve[ode, {up, us}, s] // FullSimplify
(* {us->…, up->... *)

{{us -> Function[{s}, -((\[Sqrt](-1 + csal - 2 csal C[1] +
csal InverseFunction[-(((2 (1 + 2 csal C[1]) #1 (1 +
2 csal C[1] (1 + #1^2)))/(1 +
csal (-1 + 2 C[1])) + (I (1 +
csal (-1 + 4 C[1])) (EllipticE[
I ArcSinh[
Sqrt[2] Sqrt[(csal C[1])/(
1 + 2 csal C[1])] #1], ((-1 + 2 C[1]) (1 +
2 csal C[1]))/(2 C[1] (1 + csal (-1 + 2 C[1])))] -
EllipticF[
I ArcSinh[
Sqrt[2] Sqrt[(csal C[1])/(
1 + 2 csal C[1])] #1], ((-1 + 2 C[1]) (1 +
2 csal C[1]))/(
2 C[1] (1 + csal (-1 + 2 C[1])))]) Sqrt[
1 + (csal (-1 + 2 C[1]) #1^2)/(
1 + csal (-1 + 2 C[1]))] Sqrt[(
2 + 4 csal C[1] (1 + #1^2))/(
1 + 2 csal C[1])])/((-1 + 2 C[1]) Sqrt[(
csal C[1])/(1 + 2 csal C[1])]) -
2 #1 (1 +
csal (-1 + 2 C[1]) (1 + #1^2)))/(2 csal (1 +
2 csal C[1]) Sqrt[-1 - 2 csal C[1] (1 + #1^2)]
Sqrt[-1 - csal (-1 + 2 C[1]) (1 + #1^2)])) &][-((
4 s)/(csal rm)) + C[2]]^2 -
2 csal C[
1] InverseFunction[-(((2 (1 + 2 csal C[1]) #1 (1 +
2 csal C[1] (1 + #1^2)))/(1 +
csal (-1 + 2 C[1])) + (I (1 +         csal (-1 + 4 C[1])) (EllipticE[
I ArcSinh[
Sqrt[2] Sqrt[(csal C[1])/(
1 + 2 csal C[1])] #1], ((-1 + 2 C[1]) (1 +
2 csal C[1]))/(2 C[1] (1 + csal (-1 + 2 C[1])))] -
EllipticF[
I ArcSinh[
Sqrt[2] Sqrt[(csal C[1])/(
1 + 2 csal C[1])] #1], ((-1 + 2 C[1]) (1 +
2 csal C[1]))/(
2 C[1] (1 + csal (-1 + 2 C[1])))]) Sqrt[
1 + (csal (-1 + 2 C[1]) #1^2)/(
1 + csal (-1 + 2 C[1]))] Sqrt[(
2 + 4 csal C[1] (1 + #1^2))/(
1 + 2 csal C[1])])/((-1 + 2 C[1]) Sqrt[(
csal C[1])/(1 + 2 csal C[1])]) -
2 #1 (1 +
csal (-1 + 2 C[1]) (1 + #1^2)))/(2 csal (1 +
2 csal C[1]) Sqrt[-1 - 2 csal C[1] (1 + #1^2)]
Sqrt[-1 - csal (-1 + 2 C[1]) (1 + #1^2)])) &][-((
4 s)/(csal rm)) + C[2]]^2))/(\[Sqrt](-1 -
2 csal C[1] -
2 csal C[
1] InverseFunction[-(((2 (1 + 2 csal C[1]) #1 (1 +
2 csal C[1] (1 + #1^2)))/(1 +
csal (-1 + 2 C[1])) + (I (1 +
csal (-1 + 4 C[1])) (EllipticE[
I ArcSinh[
Sqrt[2] Sqrt[(csal C[1])/(
1 + 2 csal C[1])] #1], ((-1 + 2 C[1]) (1 +
2 csal C[1]))/(2 C[1] (1 + csal (-1 + 2 C[1])))] -
EllipticF[
I ArcSinh[
Sqrt[2] Sqrt[(csal C[1])/(
1 + 2 csal C[1])] #1], ((-1 + 2 C[1]) (1 +
2 csal C[1]))/(
2 C[1] (1 + csal (-1 + 2 C[1])))]) Sqrt[
1 + (csal (-1 + 2 C[1]) #1^2)/(
1 + csal (-1 + 2 C[1]))] Sqrt[(
2 + 4 csal C[1] (1 + #1^2))/(
1 + 2 csal C[1])])/((-1 + 2 C[1]) Sqrt[(
csal C[1])/(1 + 2 csal C[1])]) -
2 #1 (1 +
csal (-1 + 2 C[1]) (1 + #1^2)))/(2 csal (1 +
2 csal C[1]) Sqrt[-1 - 2 csal C[1] (1 + #1^2)]
Sqrt[-1 - csal (-1 + 2 C[1]) (1 + #1^2)])) &][-((
4 s)/(csal rm)) + C[2]]^2)))],
up -> Function[{s},
InverseFunction[-(((
2 (1 + 2 csal C[1]) #1 (1 + 2 csal C[1] (1 + #1^2)))/(
1 + csal (-1 +
2 C[1])) + (I (1 +
csal (-1 + 4 C[1])) (EllipticE[
I ArcSinh[
Sqrt[2] Sqrt[(csal C[1])/(
1 + 2 csal C[1])] #1], ((-1 + 2 C[1]) (1 +
2 csal C[1]))/(2 C[1] (1 + csal (-1 + 2 C[1])))] -
EllipticF[
I ArcSinh[
Sqrt[2] Sqrt[(csal C[1])/(
1 + 2 csal C[1])] #1], ((-1 + 2 C[1]) (1 +
2 csal C[1]))/(
2 C[1] (1 + csal (-1 + 2 C[1])))]) Sqrt[
1 + (csal (-1 + 2 C[1]) #1^2)/(1 + csal (-1 + 2 C[1]))]
Sqrt[(2 + 4 csal C[1] (1 + #1^2))/(
1 + 2 csal C[1])])/((-1 + 2 C[1]) Sqrt[(csal C[1])/(
1 + 2 csal C[1])]) -
2 #1 (1 + csal (-1 + 2 C[1]) (1 + #1^2)))/(2 csal (1 +
2 csal C[1]) Sqrt[-1 - 2 csal C[1] (1 + #1^2)]
Sqrt[-1 - csal (-1 + 2 C[1]) (1 + #1^2)])) &][-((4 s)/(
csal rm)) + C[2]]]}, {us ->
Function[{s}, (\[Sqrt](-1 + csal - 2 csal C[1] +
csal InverseFunction[-(((2 (1 + 2 csal C[1]) #1 (1 +
2 csal C[1] (1 + #1^2)))/(1 +
csal (-1 + 2 C[1])) + (I (1 +
csal (-1 + 4 C[1])) (EllipticE[
I ArcSinh[
Sqrt[2] Sqrt[(csal C[1])/(
1 + 2 csal C[1])] #1], ((-1 + 2 C[1]) (1 +
2 csal C[1]))/(2 C[1] (1 + csal (-1 + 2 C[1])))] -
EllipticF[
I ArcSinh[
Sqrt[2] Sqrt[(csal C[1])/(
1 + 2 csal C[1])] #1], ((-1 + 2 C[1]) (1 +
2 csal C[1]))/(
2 C[1] (1 + csal (-1 + 2 C[1])))]) Sqrt[
1 + (csal (-1 + 2 C[1]) #1^2)/(
1 + csal (-1 + 2 C[1]))] Sqrt[(
2 + 4 csal C[1] (1 + #1^2))/(
1 + 2 csal C[1])])/((-1 + 2 C[1]) Sqrt[(
csal C[1])/(1 + 2 csal C[1])]) -
2 #1 (1 +
csal (-1 + 2 C[1]) (1 + #1^2)))/(2 csal (1 +
2 csal C[1]) Sqrt[-1 - 2 csal C[1] (1 + #1^2)]
Sqrt[-1 - csal (-1 + 2 C[1]) (1 + #1^2)])) &][(
4 s)/(csal rm) + C[2]]^2 -
2 csal C[
1] InverseFunction[-(((2 (1 + 2 csal C[1]) #1 (1 +
2 csal C[1] (1 + #1^2)))/(1 +
csal (-1 + 2 C[1])) + (I (1 +
csal (-1 + 4 C[1])) (EllipticE[
I ArcSinh[
Sqrt[2] Sqrt[(csal C[1])/(
1 + 2 csal C[1])] #1], ((-1 + 2 C[1]) (1 +
2 csal C[1]))/(2 C[1] (1 + csal (-1 + 2 C[1])))] -
EllipticF[
I ArcSinh[
Sqrt[2] Sqrt[(csal C[1])/(
1 + 2 csal C[1])] #1], ((-1 + 2 C[1]) (1 +
2 csal C[1]))/(
2 C[1] (1 + csal (-1 + 2 C[1])))]) Sqrt[
1 + (csal (-1 + 2 C[1]) #1^2)/(
1 + csal (-1 + 2 C[1]))] Sqrt[(
2 + 4 csal C[1] (1 + #1^2))/(
1 + 2 csal C[1])])/((-1 + 2 C[1]) Sqrt[(
csal C[1])/(1 + 2 csal C[1])]) -

2 #1 (1 +
csal (-1 + 2 C[1]) (1 + #1^2)))/(2 csal (1 +
2 csal C[1]) Sqrt[-1 - 2 csal C[1] (1 + #1^2)]
Sqrt[-1 - csal (-1 + 2 C[1]) (1 + #1^2)])) &][(
4 s)/(csal rm) + C[2]]^2))/(\[Sqrt](-1 - 2 csal C[1] -
2 csal C[
1] InverseFunction[-(((2 (1 + 2 csal C[1]) #1 (1 +
2 csal C[1] (1 + #1^2)))/(1 +
csal (-1 + 2 C[1])) + (I (1 +
csal (-1 + 4 C[1])) (EllipticE[
I ArcSinh[
Sqrt[2] Sqrt[(csal C[1])/(
1 + 2 csal C[1])] #1], ((-1 + 2 C[1]) (1 +
2 csal C[1]))/(2 C[1] (1 + csal (-1 + 2 C[1])))] -
EllipticF[
I ArcSinh[
Sqrt[2] Sqrt[(csal C[1])/(
1 + 2 csal C[1])] #1], ((-1 + 2 C[1]) (1 +
2 csal C[1]))/(
2 C[1] (1 + csal (-1 + 2 C[1])))]) Sqrt[
1 + (csal (-1 + 2 C[1]) #1^2)/(
1 + csal (-1 + 2 C[1]))] Sqrt[(
2 + 4 csal C[1] (1 + #1^2))/(
1 + 2 csal C[1])])/((-1 + 2 C[1]) Sqrt[(
csal C[1])/(1 + 2 csal C[1])]) -
2 #1 (1 +
csal (-1 + 2 C[1]) (1 + #1^2)))/(2 csal (1 +
2 csal C[1]) Sqrt[-1 - 2 csal C[1] (1 + #1^2)]
Sqrt[-1 - csal (-1 + 2 C[1]) (1 + #1^2)])) &][(
4 s)/(csal rm) + C[2]]^2))],
up -> Function[{s},
InverseFunction[-(((
2 (1 + 2 csal C[1]) #1 (1 + 2 csal C[1] (1 + #1^2)))/(
1 + csal (-1 +
2 C[1])) + (I (1 +
csal (-1 + 4 C[1])) (EllipticE[
I ArcSinh[
Sqrt[2] Sqrt[(csal C[1])/(
1 + 2 csal C[1])] #1], ((-1 + 2 C[1]) (1 +
2 csal C[1]))/(2 C[1] (1 + csal (-1 + 2 C[1])))] -
EllipticF[
I ArcSinh[
Sqrt[2] Sqrt[(csal C[1])/(
1 + 2 csal C[1])] #1], ((-1 + 2 C[1]) (1 +
2 csal C[1]))/(
2 C[1] (1 + csal (-1 + 2 C[1])))]) Sqrt[
1 + (csal (-1 + 2 C[1]) #1^2)/(1 + csal (-1 + 2 C[1]))]
Sqrt[(2 + 4 csal C[1] (1 + #1^2))/(
1 + 2 csal C[1])])/((-1 + 2 C[1]) Sqrt[(csal C[1])/(
1 + 2 csal C[1])]) -
2 #1 (1 + csal (-1 + 2 C[1]) (1 + #1^2)))/(2 csal (1 +
2 csal C[1]) Sqrt[-1 - 2 csal C[1] (1 + #1^2)]
Sqrt[-1 - csal (-1 + 2 C[1]) (1 + #1^2)])) &][(4 s)/(
csal rm) + C[2]]]}}

• Why don't you provide these solutions? In version 11.2 no solutions were obtained with your substiution. Mar 27, 2020 at 17:42
• @Artes The result is a huge expression. What's the problem with 11.2? Mar 27, 2020 at 18:49
• @Ulrich Neumann: How does the result simplify with initial condition $ph=0, si= \alpha$? Apr 5, 2020 at 18:17
• @Narasimham Look at the transformation rules: For example ph]0]==0 implies up[0]=Tan[0/2]=0` Apr 5, 2020 at 20:36