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


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




where $c_i$ is a numerical constant.

  • 2
    $\begingroup$ 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. $\endgroup$
    – Jens
    Sep 15, 2015 at 2:56

1 Answer 1


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.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.