## 729 Reputation

8 years, 245 days

## Hyperasymptotics...

One case where an "expansion beyond all orders" may be needed is investigating the asymptotic behavior of the difference of two functions with coinciding dominant series.

We are interested in the asymptotic behavior of  for large positive :

 >

does not succeed:

 >
 (1)

The reason is that the dominant terms containing the factor  in the two hypergeometric functions cancel exactly, and we have to look for the subdominant terms.

The order of the leading terms can be found from :

 >
 (2)
 >
 (3)

As expected, one of the solutions (the third one for positive ) contains the  factor, the leading term being of the order .

Another, subdominant, solution is algebraic and, in fact, is a series containing only one term, as  is an exact solution. It will turn out that the algebraic part in  also cancels out.

Thus we have to look for the subsubdominant terms, which contain decaying exponentials. We will accomplish this by applying the steepest descent method to the integral representations of  and .

 >
 (4)
 >
 >
 (5)
 >
 (6)

and are the integrals of  and of  over the same path, which is a loop encircling the poles of and of . Now a standard technique is to extend the integration contour far to the left, while still keeping both endpoints at . Then the arguments of the gamma functions can be made large everywhere on the integration path, and the gamma functions can be replaced by their asymptotic approximations.

When moving the contour, we have to take into account the pole of the integrand at . The other poles of  will be cancelled by the zeros of , which is why the algebraic part of the expansion will contain the single term of the order .

This is the negative of the third term in :

 >
 (7)

Expanding the gamma functions produces terms containing  and

 >
 (8)

As we shall see, those terms have saddle points  located in the left half-plane and contribute exponentially small factors . The terms for which the saddle point would be located at  have cancelled out, thus cancelling the exponentially large contributions. Another possible way to achieve the same result was to write  as a single Meijer G-function .

We write the first term above in the form :

 >
 >
 >
 (9)

For this to become zero, we need , and thus . We can visualize the paths where the imaginary part of  stays constant. The path of the steepest descent is the one that goes through the saddle point in the direction ; the blue color indicates smaller values of the real part of :

 >
 >

The real part of  has a maximum along this path at .

 >
 (10)

Now we can compute the lead asymptotic term contributed by the saddle point :

 >
 (11)

We repeat the same procedure for the second term of the integrand.

 >
 >
 >
 (12)
 >

The direction should be chosen as  to be consistent with the direction of the integration contour, which goes from the lower to the upper half-plane.

 >
 >
 (13)

Combining the two results yields the leading term of . The next terms can be obtained by expanding  and  to higher orders.

 >
 (14)
 >

## An involute of y=x^3...

The problem is to analyze the behavior of an involute of the cubical parabola near the singular points and at infinity.

To do this efficiently, it is best to work with partially evaluated expressions.

We want to investigate the singular points of an involute of the cubical parabola .

If the curve is given parametrically by , an involute is given by

What we want to do is to leave the integral unevaluated and compute only its derivatives. The simplest way is to define . Both  and  will be handled automatically by Maple. We'll do it in a slightly more complicated way, leaving S(a, t) completely inert with the exception of the condition S(a, a)=0 and implementing a more efficient numerical evaluator.

 >
 >
 >
 >
 (1)

The singular points are easily determined now: we need either S(a, t)=0, which implies t=a, or t=0. We assume a>0.

Compute the Taylor series around t=a first.

 >
 (2)

The center of the expansion E(a, a) is the point  on the cubical parabola.

There are two quadratic terms, which give us the slope of the tangent line. The tangent coincides with the normal to the cubical parabola at this point.

Rotate the axes to make the tangent vertical.

 >
 >
 (3)

In the new coordinates, the leading terms are  and , and the involute has the shape of a semicubical parabola. When t increases, the involute moves from the first to the second quadrant. In terms of x and y, , and the coefficient  is found from the two leading terms. For t>0:

 >
 (4)

Now consider the second singular point t=0 in the original coordinate system.

 >
 (5)

The center is the point [-S(a, 0), 0], which corresponds to the point [0, 0] on the cubical parabola. The leading terms  and  indicate that the tangent line is vertical and that this is a return point, with both branches lying in the second quadrant in the coordinate system shifted by [-S(a, 0), 0].

In terms of x and y, , and to determine the next term, we need to analyze the two series expansions.  gives a  term and fixes .  gives a  term, but the coefficient doesn't match the coefficient at  in x. So the next term has to be  in order to match . For t>0, , which gives  plus higher order terms. No other terms contribute, and we can equate the coefficients at  and  in x and y:

 >
 (6)

We have obtained the coefficients in .  and  are negative, while for t<0,  has the opposite sign, and the branch corresponding to t<0 is the one which is closer to the vertical tangent.

This could have been done by using Groebner:-Basis to eliminate t from the two series and then using algcurves:-puiseux. But it is still necessary to determine the truncation order.

There is also a separate case a=0.

 >
 (7)

Now the singularity is an inflection point, and the involute has a vertical tangent and moves from the second to the fourth quadrant. In the fourth quadrant, , and we find  in the same way as before:

 >
 (8)

Finally let's consider the asymptotic behavior of an involute at infinity. Now we do have to investigate S(a, t). One possible way is to apply the binomial formula to   and integrate term by term:

 >
 (9)

This is the power series expansion of S(a, t) for large t, valid for . Substituting it into E(a, t), we obtain the required asymptotics.

 >
 (10)

In the x component, we get . In the y component, we get . Thus the involute approaches a horizontal asymptote when t goes to +infinity, and the constant term  gives the position of the asymptote:

 >
 (11)

That in fact extends to all positive . For the asymptotics at -infinity, first we compute the integral over [a, -a], this time using the power series for small t. For the integral from -a to -t, S(-a, -t) = -S(a, t), and we need to subtract the value found above:

 >
 (12)

For negative ,  and  are swapped.

This could have been done by converting S(a, t) into a difference of two integrals of hypergeometric type, for which Maple is able to find the asymptotics automatically.

 >
 >
 >

## 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)
 >

## Rotations of an icosahedron...

This is a toy example illustrating three possible ways to define a group.

An icosahedron:

```with(GroupTheory): with(Student[LinearAlgebra]): with(geom3d):

icosahedron(ii): vv := vertices(ii):

PLOT3D(POLYGONS(op(evalf(faces(ii))), TRANSPARENCY(.75)),
op(zip(TEXT, 1.1*evalf(vv), [`\$`(1..12)])), AXESSTYLE(NONE));
```

The group of rotations is generated by the rotation around the diagonal (1,4) and the rotation around the line joining the midpoints of the edges (1,2) and (3,4), by the angles 2*Pi/5 and Pi respectively.

Define the group by how the two rotations permute the 6 main diagonals of the icosahedron:

```gr := PermutationGroup({[[2, 5, 3, 4, 6]], [[1, 2], [5, 6]]});

IdentifySmallGroup(gr);
60, 5
```

Or define the group by the relations between the two rotations:

```gr2 := FPGroup([a, b], [[a\$5], [b\$2], [a, b, a, b, a, b]]);

IdentifySmallGroup(gr2);
60, 5
```

Finally, define a group with elements that are rotation matrices:

```m1 := RotationMatrix(2*Pi/5, Vector(op(4, vv) - op(1, vv))):
m2 := RotationMatrix(Pi, Vector(add(op(3..4, vv) - op(1..2, vv)))):
m1, m2 := op(evala(convert([m1, m2], radical))):

gr3 := CustomGroup([m1, m2], `.` = evala@`.`, `/` = evala@rcurry(`^`, -1), `=` = Equal);

IdentifySmallGroup(gr3);
60, 5
```
```AreIsomorphic(SmallGroup(60, 5), AlternatingGroup(5));
true
```

One question is how to find out that the group is actually A5 without looking up the group (60, 5) elsewhere.

Also, it doesn't matter for this example, but adding `1`=IdentityMatrix(3) to the CustomGroup definition gives an error.

## Directional derivatives of complex funct...

It can be interesting to consider a directional derivative of f(z) in the direction w:

`%ddiff(f(z), z, w) = %limit((f(z + w*h) - f(z))/(w*h), h = 0);`
```ddiff := proc (fz0, z, dir) local rule, fz, dfz, ans;
dfz := %ddiff(fz, z, dir)*dir;
rule :=
[abs(1, fz::anything) = (conjugate(fz)*dfz + fz*conjugate(dfz))/(2*abs(fz)*dfz),
signum(1, fz::anything) = (conjugate(fz)*dfz - fz*conjugate(dfz))/(2*abs(fz)*conjugate(fz)*dfz)];
ans := applyrule(rule, diff(fz0, z));
ans := value(ans);
ans := [ans, op(convert~(ans, [abs, argument, Re, Im, signum, conjugate]))];
op(1, sort(simplify(ans, size), length)) end proc;
```

For analytic functions the derivative is the same in any direction:

```ddiff(sqrt(Re(f(z))^2+Im(f(z))^2)*exp(I*argument(f(z))), z, w); # f(z) in disguise
d
--- f(z)
dz
```

For non-analytic functions that's no longer the case:

```ddiff(conjugate(z), z, w);
1
----------
2
signum(w)

ddiff(conjugate(f(z)), z, 1+I);
________
d
-I --- f(z)
dz

ddiff(abs(z), z, z);
1
---------
signum(z)

ddiff(ln(abs(z)), z, z);
1
-
z
```

Some of those derivates have simple geometric interpretations: the derivative of argument(z) in the direction z is zero, since argument(z) doesn't change when moving in the direction z from the point z; the derivative of abs(z) in the direction I*z is zero, since the direction is tangent to the circle abs(z)=constant; since signum(z) is a function of argument(z) only, its derivative in the direction z is zero as well.

Interestingly, the derivative taken twice in the direction z is zero for each of the six basic functions:

```map(fz -> ddiff(ddiff(fz, z, z), z, z), [abs, argument, Re, Im, signum, conjugate](z));
[0, 0, 0, 0, 0, 0]
```

Does that have some simple geometric interpretation as well?

 1 2 Page 1 of 2
﻿