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.
Answer
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.
Comments
Post a Comment