I have defined an expression that is a series in powers of $1/c$:
H[L, c] = -(1/(2 L^2)) + 1/c^2 (-(3/(J L^3)) + (15 - m)/(8 L^4)) + 1/c^4 (-(27/(2 J^2 L^4)) + (5 (-7 + 2 m))/(4 J^3 L^3) - (3 (-35 + 4 m))/(4 J L^5) + (-145 + 15 m - m^2)/(16 L^6)) + O[c, Infinity]^6;
defined for any $L > 0$.
I would like to obtain a series expansion for its inverse in the first argument; namely, a $1/c$-series expression: $$L[H, c] = L_0[H] + \frac{1}{c} L_1[H] + \frac{1}{c^2} L_2[H] + \ldots + \mathcal O[\frac{1}{c}]^6 \text. $$
I have tried using the series-manipulating built-in functions without success. Specifically, I tried InverseSeries
, but my series is defined in $1/c$, whereas the variable I want to invert is $L$. I also tried
Series[InverseFunction[L |-> Evaluate[H[L, c]]], {c, Infinity, 4}]
but nope; that gives me a series in $\mathcal O\left( c + 1/(2L^2) \right)$, whatever that means.
I have so far been forced to perform the computation by hand. I would like to know, is there a more direct way to do this, using Mathematica's built-in functionality, that I'm missing?
The computation "by hand" goes through the following steps:
1.Split H[L,c]
into zeroth-order term in c, plus remainder: $H = H_0 + \delta H$
H0[L] = SeriesCoefficient[H[L, c], 0]
δH[L, c] = H[L, c] - H0[L]
- Solve for the zeroth-order term, and take the positive solution
Last@Flatten@Solve[H == H0[L] + δH, L]
and then replace $\delta H(L, c)$ into the solution, so that we obtain an equation that gives $L$ as a function of $H$, $L$ and $c$.
% // ReplaceAll[δH -> δH[L, c]]
- Keep replacing the above rule until we get rid of all "L"s in the equation:
L == ReplaceRepeated[Last[%], %]