# Puiseux series for algebraic curves

Has anyone implemented a function in Mathematica that computes Puiseux expansions of algebraic curves?

Using something like

Series[y /. Solve[poly == 0, y], {x, x0, order}]


where "poly" is a polynomial expression in x and y works as long as poly is sufficiently low degree or x0 avoids a branch point.

The right way to do it would probably be via the Newton-Puiseux algorithm but I could only find Maple code to do it.

## 1 Answer

I think you can use the new in M12 function AsymptoticSolve for this. For example, suppose the polynomial is:

SeedRandom
poly = x^Range[0, 5].RandomInteger[1, {6, 6}].y^Range[0,5]


1 + x^3 + (1 + x + x^3) y + (1 + x + x^5) y^3 + (x^4 + x^5) y^4 + x^2 y^5

Then, using AsymptoticSolve:

AsymptoticSolve[poly == 0, y, {x, 0, 3}] //N


{{y -> -0.682328 + 0.417238 x - 0.206844 x^2 - 0.143415 x^3}, {y -> (0.341164 - 1.16154 I) - (0.208619 - 0.183825 I) x + (0.603422 - 0.710109 I) x^2 - (0.928292 - 0.263678 I) x^3}, {y -> (0.341164 + 1.16154 I) - (0.208619 + 0.183825 I) x + (0.603422 + 0.710109 I) x^2 - (0.928292 + 0.263678 I) x^3}, {y -> (0. + 0.5 I) + ( 0. + 1. I)/x - (0. + 0.625 I) x}, {y -> (0. - 0.5 I) - (0. + 1. I)/ x + (0. + 0.625 I) x}}

I used N to avoid worrying about how to format root objects.