# Indeterminate solution of 2nd order nonlinear differential equation

I seek to prove a solution in power series in y or by numerical methods for the second order nonlinear differential equation:

nlde = {Sqrt[1 - f[y]^2] f''[y] + y == 0, f' == 0, f == 1};


It seems that there is an analytical answer in power series for this ODE (see appendix in this paper): My failed attempts to prove the analytical solution with Mathematica:

Power series:

AsymptoticDSolveValue[nlde, f, {y, 0, 4}]
(* Indeterminate expression 0 ComplexInfinity encountered*)

Series[DifferentialRoot[Function @@ {{f, y}, nlde}][y], {y, 0, 4}]
(* supplied equation is not a
linear differential equation with polynomial coefficient *)


Numerical:

NDSolveValue[nlde, f, {y, 0, 4}]
(* Infinite expression encountered*)


Anyone has any suggestions on how to solve the equation? Thanks!

• The ode is singular for t=0! Feb 1, 2021 at 13:58
• If you look at the result of SolveAlways[With[{f = C + Sum[C[k] y^k, {k, 1, 6}] + O[y]^7}, Sqrt[1 - f^2] D[f, {y, 2}] + y == 0], y], you might get an idea on what constraints your series coefficients have to follow for a power series to satisfy your nonlinear ODE. Feb 1, 2021 at 14:03
• Yes, it is singular. Somehow there appears to be an analytic solution in power series (see edited question). The approach of using SolveAlways doesn't seem to give the same coefficients as the expected results Feb 1, 2021 at 14:15
• Using the excerpt you have shown, you could use SolveAlways[] with formula A6: 1 + Sum[C[k] y^k, {k, 2, 10}] /. With[{g = -Sum[C[k] y^(k - 2), {k, 2, 10}] + O[y]^(11 - 2)}, Last[SolveAlways[g (2 - y^2 g) (y^2 D[g, {y, 2}] + 4 y D[g, y] + 2 g)^2 == 1, y]]] Feb 2, 2021 at 2:19
• Yes, your approach is correct. It seems that SolveAlways is picking even the other solutions for the imaginary coefficients! Feb 2, 2021 at 17:53

If we rationalize the DE, we can get an asymptotic solution:

nlde2 = {(1 - f[y]^2) f''[y]^2 - y^2 == 0, f' == 0, f == 1};
asol = AsymptoticDSolveValue[nlde2, f, {y, 0, 8}]


AsymptoticDSolveValue::asdb: There are multiple solution branches for the equations, but AsymptoticDSolveValue will return only one.

1 - y^2/2 - y^4/104 - (67 y^6)/83824 - (49463 y^8)/496908672


It returns a solution that satisfies the original nlde for y >= 0:

sol = {f -> Function[y, Evaluate[asol + O[y]^(Exponent[asol, y] + 1)]]} First@nlde /. Equal -> Subtract /. sol
Simplify[%, y >= 0] ### Alternative

Implementing the method in the paper (sans rationalization):

nlde3 = nlde /. f -> Function[y, 1 - y^2 g[y]] //
FullSimplify[#, y > 0] & 1 - y^2 AsymptoticDSolveValue[{First@nlde3, Reduce[nlde3 /. y -> 0]},
g, {y, 0, 6}] // Expand • I think the point is that Sqrt[] is not analytic at 0, which is where Sqrt[1 - f[y]^2] starts. Feb 1, 2021 at 14:31
• Thanks! It seems the trick is to rationalise the ODE with the square root term. The power series solution works now. The numerical approach with NDSolveValue[nlde2, f, {y, 0, 4}] still complains about indeterminate expressions encountered. Feb 1, 2021 at 15:01

A direct way to get the solution, known from perturbation theory, follows with assumptions f=1+y+...and y>0

cl = CoefficientList[Simplify[Normal[Series[Sqrt[1 - f[y]^2] f''[y] + y
/.f -> Function[y, 1 + Sum[C[k] y^k, {k, 2, 6}]], {y, 0, 5}]],y > 0], y]

sol=Solve[0 == cl , {C, C, C, C, C}]
(*{{C -> -(1/2), C -> 0, C -> -(1/104), C -> 0,C -> -(67/83824)}}*)

Function[y, 1 + Sum[C[k] y^k, {k, 2, 6}]][y]/.sol
(*1 - y^2/2 - y^4/104 - (67 y^6)/83824*)

• Thanks! Your approach works. It seems to be critical to set the two first terms 1+0 and then add the coefficients for this work. Feb 1, 2021 at 15:15
• @Ferca The method works for the general case C,C too. Analyzing the coefficientlist let you derive conditions for the existence of a power serie. Feb 1, 2021 at 18:38
• cl = CoefficientList[ Simplify[ Normal[Series[ Sqrt[1 - f[y]^2] f''[y] + y /. f -> Function[y, C + Sum[C[k] y^k, {k, 1, 6}]], {y, 0, 5}]], y > 0], y]; sol = Solve[0 == cl, {C, C, C, C, C, C, C}]; Function[y, C + Sum[C[k] y^k, {k, 1, 6}]][y] /. sol; % /. C -> 1 leads to Indeterminate Feb 1, 2021 at 19:40
• @Ferca No , you have to solve it step by step: First look at cl[] which vanishs for C->1 (or C->0) , Second set C=1 and look at cl[] which only vanishs for C->1. And so on... Feb 2, 2021 at 6:58
• @Ferca In this way you might find a second solution for arbitrary C,C : Solve[0 == cl[[1 ;; 3]], {C, C, C}] // Simplify (*{{C -> 0, C -> -(1/(6 Sqrt[1 - C^2])), C -> -((C C)/(12 (1 - C^2)^(3/2)))}}*) Feb 2, 2021 at 7:31