Could Mathematica solve a differential equation asymptotically?
Mathematica 11.3? Will have AsymptoticDSolve
and support for these
And WKB also
It will also finally have series solution for DSolve
See Asymptotic Expansions at http://www.wolfram.com/broadcast/video.php?c=104&p=3&v=2091
It is possible to roll one's own asymptotic solver with the help of Series
. As a demonstration, here we show how to obtain an asymptotic power series solution around zero.
The equations in OP, except the even function condition H[η] == H[-η]
(which will turned out to be redundant for this particular problem), can be rearranged to (omit the == 0
parts):
eqs = {
H[η]^2*(H'''[η]-η^-2 H'[η]+1/η H''[η])-η/10,
H[0] - 1,
H''[0] + c
};
If we assume the existence of power expansion about $x=0$:
$$H(x) = \sum_{k=0}^\infty h_k x^k$$
then a series representation of $H$ and its derivatives can be straightforwardly defined through following rules:
seriesRules = RightComposition[
ReplaceAll[{
H[x_] :>
(Inactive[Series][H[η], {η, 0, max}] // Inactive[ReplaceAll][η -> x]),
Derivative[s_Integer?Positive][H][x_] :>
(Inactive[Series][Derivative[s][H][η], {η, 0, max}] // Inactive[ReplaceAll][η -> x])
}],
(* the odd/even function constraint can be described as following rule *)
(* Inactive[ReplaceAll][{
(* odd: *)(* H[0] :> 0,Derivative[s_Integer?EvenQ][H][0] :> 0 *)
(* even: *)Derivative[s_Integer?OddQ][H][0] :> 0
}], *)
Inactive[ReplaceAll][{H[0] :> h[0], Derivative[s_Integer][H][0] :> h[s]}]
];
Applying it on eqs
gives us its series version:
series = eqs // seriesRules;
For a given series order max
, series
can be Activate
d to become algebra equations serieseqs
about $h_0,h_1,...$:
asymptoticOrder = 10;
serieseqs = series //
ReplaceAll[max -> asymptoticOrder] // Activate //
Map[
If[Head[#] === SeriesData, #[[3]], #] &
] //
Flatten // Thread[# == 0] & // DeleteCases[True];
Luckily the equations we got here are all nice and easy to solve:
seriessol = Inactive[Solve][serieseqs,
Union[Cases[serieseqs, _h, ∞]][[;; UpTo[Length@serieseqs]]]
] // Activate;
seriessol // Apply[List, #, {2}] & // Map[Grid[#, Frame -> All] &] // Row
Thus the corresponding approximate solution for $H$
H[η] // seriesRules //
ReplaceAll[max -> asymptoticOrder] // Activate //
ReplaceAll[seriessol]
(But do be aware this is only a formal series solution. The convergence is yet to prove.)
It's not a answer of Yours question,only a info if Mathematica 11.3
can solve or not.
Using Mathematica 11.3
,it seems can't
find solution.