# Numerically solving a transcendental equation as a series

Given a transcendental equation $f(x,y)=0$, is there a way for Mathematica to automatically solve the equation as a series? I already know that I can use

NSolve[f(x,y)==0,y]


if I substitute a value for $x$. However, what I'm specifically wondering is if Mathematica can output something that looks like:

$$y=c_0+c_1x+c_2x^2+\cdots$$

or

$$y=c_0+c_1x^{-1}+c_2x^{-2}+\cdots$$

where $c_i$ is a numerical constant.

• It depends on the function f, so you'd have to be more specific. If, e.g., you can solve for x, then the series for y can be obtained directly using InverseSeries. – Jens Sep 15 '15 at 2:56

Possibly, expand f to first order in y

Series[f[x, y], {y, y0, 1}] // Normal;
(Solve[(% /. y - y0 -> z) == 0, z] /. z -> y - y0)[[1, 1]]
(* y - y0 -> -(f[x, y0]/Derivative[0, 1][f][x, y0]) *)


Then, the right side of the last expression can be expanded in x to the desired power. For instance,

Series[%[[2]], {x, x0, 2}] // Normal
(* -(f[x0, y0]/Derivative[0, 1][f][x0, y0]) +
((x - x0)*(-(Derivative[0, 1][f][x0, y0]*Derivative[1, 0][f][x0, y0]) +
f[x0, y0]*Derivative[1, 1][f][x0, y0]))/Derivative[0, 1][f][x0, y0]^2 +
((x - x0)^2*(2*Derivative[0, 1][f][x0, y0]*Derivative[1, 0][f][x0, y0]*
Derivative[1, 1][f][x0, y0] - 2*f[x0, y0]*Derivative[1, 1][f][x0, y0]^2 -
Derivative[0, 1][f][x0, y0]^2*Derivative[2, 0][f][x0, y0] +
f[x0, y0]*Derivative[0, 1][f][x0, y0]*Derivative[2, 1][f][x0, y0]))/
(2*Derivative[0, 1][f][x0, y0]^3) *)


yielding a power series, here to third order, in x - x0.

Incidentally, an illustration of the approach is given in my answer to question 94663.