:

## The Newton polygon

Inspired by this question. There is a simple iterated procedure that can generate the Puiseux expansion.

Note the use of convert(..., rational, exact) to preserve the digits of the floating-point numbers.

 >

We're interested in the asymptotics of RootOf(P(NO2, _Z)) for small NO2.

 >

Start with P(NO2, Z) and look for the expansion for Z when NO2 is small.

Expand P(NO2, Z) into monomials and convert each monomial  into the point [p, q].

 >
 (1)

The Newton polygon is the convex hull of the points.

 >
 >

The side closest to the origin will correspond to the asymptotics for small NO2.

Sum the corresponding monomials and solve for Z.

 >
 >
 (2)

We have obtained the first term in the expansion. If CO>COcrit, the smallest positive root is the one asymptotic to . That will be the value of RootOf(P(NO2, _Z)).

The expansion can be continued in the same manner.

 >

In this case we don't have to choose between sides with different slopes. (Compare to

 >
 (3)

We get , so the next order in the expansion is .

Again, if we want the solution that corresponds to RootOf(P(NO2, _Z)), we should take the negative term, as the principal root will be the smaller one.

Find one more term. To avoid fractional powers, take .

 >
 >
 >
 (4)

We get , so we have obtained the coefficient at .

All of this can be done using the algcurves:-puiseux command. The only difficulty is the unwieldy expressions that algcurves:-puiseux will generate for P.

Let's also find the  term by the method of dominant balance. Suppose that we don't know  yet and are looking for the term .

 >
 >

Find all exponents of NO2, coming from NO2r and from NO2p.

 >
 >

At p=2, the two dominant terms  and  can balance each other.

 >
 (5)
 >