Section 10: Region of Convergence of Algebraic Power Series

$$ \newcommand{\bint}{\displaystyle{\int\hspace{-10.4pt}\Large\mathit{8}}} \newcommand{\res}{\displaystyle{\text{Res}}} $$

The reader is asked to review the sections in sequential order as each succeeding section builds on a previous section.

In this section we go over in detail a method of determining the region of convergence of annular power expansions in concentric rings around the origin. This method is described here: On the Branching Geometry of Algebraic Functions

Background

In previous sections we described the geometry of an algebraic function: Setting the resultant, $R(f,f_w)$ equal to zero identifies the singular points of the function in the $z$-plane, and we can then sort the values in order of increasing absolute value thereby creating a set of concentric rings around the origin between which the function is analytic and splits or ramifies into branches of varying cycles. Around the origin and each singular point, the function also ramifies. Using the Newton Polygon algorithm, we can compute power expansions at a point. And using Laurent's expansion theorem applied to algebraic functions, likewise compute power expansions of the function in the annular regions between rings. This section is about computing power expansions in these rings. But both methods do not help us determine the region of convergence of these series. In this section we go over both a geometric method to compute the convergence domain of these ring expansions and Mathematica code to implement the algorithm.

This is described in the following sections:

  1. Compute singular points and rings,
  2. Determine annular regions,
  3. Compute annular monodromies,
  4. Compute singular monodromies,
  5. Determine support,
  6. Compute branch continuations over singular points and construct branch continuation table,
  7. Compute branch continuations over poles,
  8. Numeric confirmation of convergence domains of power expansions,
And we will analyze $$ \begin{equation} \begin{aligned} f(z,w)&=(-z^2+z^3)\\ &+(-4 z+3 z^2)w\\ &+(-z^3-9 z^4)w^2\\ &+(-2+8 z+4 z^2-4 z^3)w^3\\ &+(6-8 z^2+7 z^3+8 z^4)w^4 \end{aligned} \label{equation:equation20} \end{equation} $$ to demonstrate these steps.

  1. Computation of rings and singular points
  2. The singularities of the function are easily computed with the NSolve. However, NSolve will include multiple roots and these will interfere with the construction of ring and annular regions. We therefore delete duplicates. But before we do, we must have a way of comparing floating point numbers. Either we can extract a defined number of digits of the number as is done further below or we can set the precision of the singular points to the same value. This allows Mathematica to make exact comparisons. The code below uses the later approach:

    Mathematica code

    workingPrecision=75;
    theFunction = (-z^2 + z^3) + (-4 z + 3 z^2) w + (-z^3 - 9 z^4) w^2 + (-2 + 8 z + 4 z^2 - 4 z^3) w^3 + (6 - 8 z^2 + 7 z^3 + 8 z^4) w^4
    theSingularPoints = (z /. NSolve[Resultant[theFunction, D[theFunction, w], w] == 0, z, WorkingPrecision -> workingPrecision]);
    thePoles = NSolve[Coefficient[theFunction, w^functionOrder] == 0, z, WorkingPrecision -> workingPrecision];
    singularPrecision=Precision[theSingularPoints];
    polePrecision=Precision[thePoles];
    newPrecision=Min[singularPrecision,polePrecision];
    theSingularPoints=SetPrecision[theSingularPoints,newPrecision];
    thePoles=SetPrecision[thePoles,newPrecision];
    theSingularPoints = Sort[DeleteDuplicates[theSingularPoints, Abs[#1] <= Abs[#2] &];
    thePoles = Sort[DeleteDuplicates[thePoles], Abs[#1] <= Abs[#2] &];

    Once we have the list of distinct singular points and identified the poles, we can construct a table of ring and singular points. In the table below, regular singular points are in blue and poles are in red. $r_i$ is a ring number: if the non-zero singular points are arranged in order of increasing absolute values, then those with the smallest absolute value are on ring $1$. Those with the next larger absolute value are on ring $2$ and so forth. $r_0$ is the origin.

    Table 1: Rings and singular points
    $r_i$Radius$s_i$Singularity
    $r_{1}$0.00919971$s_{1}$-0.00919971
    $r_{2}$0.597463$s_{2}$-0.597463
    $r_{3}$0.632598$s_{3}$0.632598
    $r_{4}$0.692915$s_{4}$0.692915
    $r_{5}$0.81757$s_{5}$0.644655 - 0.502832 I
    $s_{6}$0.644655 + 0.502832 I
    $r_{6}$0.85077$s_{7}$0.296412 - 0.797464 I
    $s_{8}$0.296412 + 0.797464 I
    $r_{7}$0.855943$s_{9}$-0.0728759 - 0.852835 I
    $s_{10}$-0.0728759 + 0.852835 I
    $r_{8}$0.859144$s_{11}$-0.859144
    $r_{9}$0.86077$s_{12}$-0.86077
    $r_{10}$0.87273$s_{13}$0.72046 - 0.492539 I
    $s_{14}$0.72046 + 0.492539 I
    $r_{11}$0.901619$s_{15}$-0.901619
    $r_{12}$0.960847$s_{16}$0.859329 - 0.429862 I
    $s_{17}$0.859329 + 0.429862 I
    $r_{13}$0.966603$s_{18}$0.966603
    $r_{14}$1.19237$s_{19}$-1.16276 - 0.264081 I
    $s_{20}$-1.16276 + 0.264081 I
    $r_{15}$1.29612$s_{21}$-1.29612
    $r_{16}$1.30354$s_{22}$-1.30354
    $r_{17}$1.4026$s_{23}$0.280488 - 1.37427 I
    $s_{24}$0.280488 + 1.37427 I

    Additonally, we need to calculate for each singular point, a circular integration path that we will use later to compute the monodromy. We choose this path such that the radius is smaller than the distance to the nearest singular point while remaining in the bordering rings.

  3. Computation of annular regions
  4. The regions between successive rings become the annular regions. In practice, we make the regions slightly smaller than the actual values of $r_i$ so that we can later integrate over the perimeter of the regions without integrating too close to a singular point. For convenience, the last region, $r_{18}$ is arbitrarily set to the value of the last ring plus $4$. $r_{18}$ is equivalent to an annulus around infinity.

    Table 2: Annular Regions
    $a_i$Annulus/Singularity
    0.
    $a_{1}${0.00005, 0.00914971}
    -0.00919971
    $a_{2}${0.00924971, 0.597413}
    -0.597463
    $a_{3}${0.597513, 0.632548}
    0.632598
    $a_{4}${0.632648, 0.692865}
    0.692915
    $a_{5}${0.692965, 0.81752}
    0.644655 - 0.502832 I
    0.644655 + 0.502832 I
    $a_{6}${0.81762, 0.85072}
    0.296412 - 0.797464 I
    0.296412 + 0.797464 I
    $a_{7}${0.85082, 0.855893}
    -0.0728759 - 0.852835 I
    -0.0728759 + 0.852835 I
    $a_{8}${0.855993, 0.859094}
    -0.859144
    $a_{9}${0.859194, 0.86072}
    -0.86077
    $a_{10}${0.86082, 0.87268}
    0.72046 - 0.492539 I
    0.72046 + 0.492539 I
    $a_{11}${0.87278, 0.901569}
    -0.901619
    $a_{12}${0.901669, 0.960797}
    0.859329 - 0.429862 I
    0.859329 + 0.429862 I
    $a_{13}${0.960897, 0.966553}
    0.966603
    $a_{14}${0.966653, 1.19232}
    -1.16276 - 0.264081 I
    -1.16276 + 0.264081 I
    $a_{15}${1.19242, 1.29607}
    -1.29612
    $a_{16}${1.29617, 1.30349}
    -1.30354
    $a_{17}${1.30359, 1.40255}
    0.280488 - 1.37427 I
    0.280488 + 1.37427 I
    $a_{18}${1.40265, 5.40255}
    Infinity

  5. Computation of annular monodromies
  6. Within the annular regions, the function ramifies into branches of various cycles with the total cycles equal to the degree of the function. One method of determining the branching is to integrate around each branch surface over $2\pi$ routes. If at the end of a circuit, the function returns to the same starting value, then we have identified a $1$-cycle branch. If a $4\pi$ route is needed to return to the same starting point, then we have identified a $2$-cycle branch. And so forth. This however requires a method of comparing approximate floating point numbers. As stated earlier, we could adjust the precision of the results and have Mathematica determine this but we choose a different approach: We extract a subset of digits of the number and discard the rest. If our accuracy level is much smaller than the smallest difference between branches and if the integration is done with a high level of working precision, then this method works extremely well.

    In the Mathematica code page is the listing for the function getDigits. This function takes a floating point number and a accuracy size and returns an integer representation of the number. For example, consider the following code:

    Mathematica code

    getDigits[1.3436849274 + 2.682037457 I, 6]
    {{{1, {1, 3, 4, 3, 6, 8}, 1}, {1, {2, 6, 8, 2, 0, 3}, 1}}}
    with the format $\{s, \{d_1, d_2, \cdots, d_n\}, e\}$ with $s$ being the sign of the number, $(d_1,d_2,\cdots,d_n)$ the digits of the number and $e$ being the number of digits to the left of the decimal place. Notice that we did not round the number.

    So that we can convert floating-point numbers to exact integer sequences and therefore make exact comparisons of numbers to a desired accuracy.

    Before we can determine monodromies, we need to establish reference marks. To illustrate this, we use the function $$ f(z,w)=-w^2+(z-2) (z+(-1-i))^2 (z+(-1+i))^2 $$ and the diagram in Figure 2. This function has singular points $\{2,1+i,1-i,\infty\}$. These form $3$ rings and $3$ annular regions in the $z$-plane where we include $\infty$ in the list of singular points even if the function is not singular there (ring 3 is not shown in the figure for clarity).

    As stated, to determine the branching, we integrate around annular regions and singular points beginning at reference points labeled 'arp' in the figure for annular regions and 'srp' for singular points. The thick dark circles are the rings separating the annular regions. The annular integration paths are shown as the red dashed circles. The blue dashed circles are the singular point integration paths. $\theta_m$ is the argument where the annular reference points are taken and is somewhat arbitrary. In the figure, the 'srp' points are taken at the argument of each singular point minus $\pi$. And it should be no surprise to readers of this blog how we effect the integration: we integrate the azimuthal equation over the integration paths around both the annular regions and singular points. For example, to effect the integration over the first annular region, we solve the two IVPs: $$ \frac{dw}{dt}=-\frac{f_z}{f_w}\frac{dz}{dt},\quad z(\theta_m)=arp1,\quad f(z(\theta_m),w)=0,\quad z(t)=|arp1|e^{it} $$ where $w_0$ is each of the two roots to $f(z(\theta_m),w)=0$ and $t$ runs from $\theta_m$ to $\theta_m+2\pi$. When we do this for the first ring, we obtain the following results for the two roots:

    Table 1: Integration results for ring 1
    $w_i$Starting valuleEnding value
    $w_1${{-1,{4,7,8,0,8},0},{-1,{1,1,7,6,5},1}}{{-1,{4,7,8,0,8},0},{-1,{1,1,7,6,5},1}}
    $w_2${{1,{4,7,8,0,8},0},{1,{1,1,7,6,5},1}}{{1,{4,7,8,0,8},0},{1,{1,1,7,6,5},1}}
    And looking carefully at the starting and ending values of each root we see $w_1$ goes back to $w_1$ meaning this is a $1$-cycle branch, and $w_2$ goes back to $w_2$. So that we have the local ring monodromy for the first ring as $\{\{1\}\},\{2\}\}$. However this is a very simple example to illustrate the algorithm. For more complicated functions, we will have to dynamically adjust the step size and working precision of the integration to achieve a $5$ digit accuracy. The following are actual results for computing the ring monodromy of a $10$-degree function. Deducing the ring monodromy for this ring is left as an exercise for the reader.
    Table 3: Ring integration results for $10$-degree function
    $w_i$Starting valuleEnding value
    1 (((-1,(1,0,5,0,8),1),((-1,(4,0,8,8,9),-1)) ((-1,(1,0,5,0,8),1),(-1,(4,0,8,8,9),-1))
    2 (((-1,(4,7,6,5,7),0),(-1,(1,9,8,2,8),-1)) ((1,(5,8,2,9,7),0),(1,(9,7,6,1,3),0))
    3 (((-1,(4,0,9,0,9),0),(1,(7,3,5,4,2),0)) ((-1,(4,0,9,0,9),0),(1,(7,3,5,4,2),0))
    4 (((-1,(2,5,8,4,2),0),(-1,(1,3,8,2,8),1)) ((-1,(4,7,6,5,7),0),(-1,(1,9,8,2,8),-1))
    5 (((-1,(2,3,9,4,1),0),(-1,(7,6,4,2,7),0)) ((-1,(2,3,9,4,1),0),(-1,(7,6,4,2,7),0))
    6 (((-1,(3,8,0,2,3),-1),(1,(7,0,9,5,3),-1)) ((-1,(2,5,8,4,2),0),(-1,(1,3,8,2,8),1))
    7 (((1,(5,8,2,9,7),0),(1,(9,7,6,1,3),0)) ((-1,(3,8,0,2,3),-1),(1,(7,0,9,5,3),-1))
    8 (((1,(9,5,0,3,7),0),(-1,(4,4,9,0,4),0)) ((1,(1,1,0,7,5),1),(-1,(5,2,0,1,7),-1))
    9 (((1,(1,1,0,7,5),1),(-1,(5,2,0,1,7),-1)) ((1,(1,1,4,4,9),1),(1,(6,2,4,2,6),0))
    10 (((1,(1,1,4,4,9),1),(1,(6,2,4,2,6),0)) ((1,(9,5,0,3,7),0),(-1,(4,4,9,0,4),0))

    We now review the task of coding the monodromy algorithm. To do this we use the the flowchart in Figure 2. The crucial step in the flowchart is the adjustment of accuracy and precision of the numerical integration: we start the integration with a step size of $1/1000$ and $20$ digits of precision. If the digit comparison fails to obtain a match, we increase the precision and decrease the step size and re-integrate until we have obtained a match at a desired accuracy or exceeded a step size of $1/50000$ and $50$ digits of precision. In practice, if the smallest annular size is greater than $1/20000$, then a random $10$ degree function can usually be successfully processed with this level of precision. Otherwise, the algorithm will terminate and further analysis will be needed to determine the cause of the failure.

    The following Mathematica code implements this algorithm:

    Mathematica code

    getRingMonodromy[ringNum_,baseComparisonAccuracy_]:=Module[{precisionArray,rnorm,zstart,theBaseValues,
    theBaseValueDigits,tStart,tEnd,branchValues,root,wstart,wstartDigits,wDeriv,posFoundFlag,
    numTries,theCentralTrace,theCentralTraceValueDigits,loopPos,loopPosVal,zStartPrecision,myazsol},
    precisionArray={{1/1000,20},{1/2000,20},{1/3000,20},{1/5000,30},{1/6000,30},{1/7000,30},
    {1/10000,40},{1/12000,40},{1/15000,40},{1/20000,50},{1/25000,55},{1/30000,55},{1/30000,60}};
    Print[Style["Analyzing ring ",Red],Style[ringNum,Red]];
    rnorm=radiiTable[[ringNum,(segmentsPerRing-1)/2+1]];
    zstart=rnorm Exp[I startingRingT];
    zStartPrecision=Precision[zstart];
    theBaseValues=w/.NSolve[theFunction==0/.z->zstart,w,WorkingPrecision->zStartPrecision-2];
    theBaseValues=Sort[theBaseValues,If[Re[#1]!=Re[#2],
    Re[#1] ,
    Im[#1] ]&];
    theBaseValueDigits=getDigits[theBaseValues,baseComparisonAccuracy];
    tStart=startingRingT;
    tEnd=startingRingT+2 \[Pi] ;
    branchValues={};
    wDeriv=w'[t]==((-(D[theFunction,z]/D[theFunction,w]) (I rnorm Exp[I t]))/.{w->w[t],z->rnorm Exp[I t]});
    For[root=1,root<=functionOrder,root++,
    wstart=theBaseValues[[root]];
    wstartDigits=getDigits[wstart,baseComparisonAccuracy]//First;
    posFoundFlag=False;
    numTries=1;
    While[posFoundFlag==False && numTries<=Length[precisionArray],
    myazsol=First[NDSolve[{wDeriv,w[tStart]==wstart},w,{t,tStart,tEnd},MaxSteps->2000000,
    MaxStepSize->precisionArray[[numTries,1]],WorkingPrecision->precisionArray[[numTries,2]]]];
    theCentralTrace[t_]=Evaluate[Flatten[w[t]/.myazsol]];
    theCentralTraceValueDigits=getDigits[theCentralTrace[tEnd],baseComparisonAccuracy]//First;
    loopPos=Position[theBaseValueDigits,theCentralTraceValueDigits]; If[Length[loopPos]!=1,
    Print["Error finding digits. Increasing precision ..."];
    ,
    loopPosVal=loopPos//First;
    branchValues=Append[branchValues,{wstartDigits,theBaseValueDigits[[loopPosVal[[1]]]]}];
    posFoundFlag=True;
    ];
    numTries++;
    ];
    If[posFoundFlag==False,
    Print["Position not found at end of ",Length[precisionArray], " attempts at increasing precision."];
    Abort[];
    ];
    ];
    branchValues
    ];

    An to optimize the code we use the Parallelize command for a multi-core processor application:

    Mathematica code

    AbsoluteTiming[ringData=Parallelize[Table[getRingMonodromy[n,5],{n,1,Length[ringRegions]}]];]

    Analyzing both the annular regions and singular points, we obtain the list of monodromies in Table 4.

    Table 4: Annular and Singular Monodromies
    $a_i$Annulus/SingularityMonodromy
    0.{{1, 3}, {2}, {4}}
    $a_{1}${0.00005, 0.00914971}{{1, 3}, {2}, {4}}
    -0.00919971{{1}, {2}, {3, 4}}
    $a_{2}${0.00924971, 0.597413}{{1, 2, 4}, {3}}
    -0.597463{{1}, {2}, {3, 4}}
    $a_{3}${0.597513, 0.632548}{{1, 2}, {3}, {4}}
    0.632598{{1, 2}, {3}, {4}}
    $a_{4}${0.632648, 0.692865}{{1}, {2}, {3}, {4}}
    0.692915{{1}, {2, 3}, {4}}
    $a_{5}${0.692965, 0.81752}{{1}, {2, 3}, {4}}
    0.644655 - 0.502832 I{{1}, {2}, {3}, {4}}
    0.644655 + 0.502832 I{{1}, {2}, {3}, {4}}
    $a_{6}${0.81762, 0.85072}{{1}, {2, 3}, {4}}
    0.296412 - 0.797464 I{{1}, {2}, {3, 4}}
    0.296412 + 0.797464 I{{1}, {2}, {3, 4}}
    $a_{7}${0.85082, 0.855893}{{1}, {2, 3}, {4}}
    -0.0728759 - 0.852835 I{{1}, {2, 3}, {4}}
    -0.0728759 + 0.852835 I{{1}, {2, 3}, {4}}
    $a_{8}${0.855993, 0.859094}{{1}, {2, 3}, {4}}
    -0.859144{{1}, {2, 3}, {4}}
    $a_{9}${0.859194, 0.86072}{{1, 4}, {2, 3}}
    -0.86077{{1}, {2}, {3}, {4}}
    $a_{10}${0.86082, 0.87268}{{1, 4}, {2, 3}}
    0.72046 - 0.492539 I{{1, 2}, {3}, {4}}
    0.72046 + 0.492539 I{{1, 2}, {3}, {4}}
    $a_{11}${0.87278, 0.901569}{{1}, {2, 3, 4}}
    -0.901619{{1, 2}, {3}, {4}}
    $a_{12}${0.901669, 0.960797}{{1, 3, 4, 2}}
    0.859329 - 0.429862 I{{1}, {2}, {3, 4}}
    0.859329 + 0.429862 I{{1}, {2}, {3, 4}}
    $a_{13}${0.960897, 0.966553}{{1, 3, 4, 2}}
    0.966603{{1}, {2, 3}, {4}}
    $a_{14}${0.966653, 1.19232}{{1, 2}, {3, 4}}
    -1.16276 - 0.264081 I{{1}, {2, 4}, {3}}
    -1.16276 + 0.264081 I{{1}, {2, 4}, {3}}
    $a_{15}${1.19242, 1.29607}{{1, 3}, {2, 4}}
    -1.29612{{1}, {2}, {3, 4}}
    $a_{16}${1.29617, 1.30349}{{1, 3}, {2}, {4}}
    -1.30354{{1}, {2}, {3}, {4}}
    $a_{17}${1.30359, 1.40255}{{1, 3}, {2}, {4}}
    0.280488 - 1.37427 I{{1, 2}, {3}, {4}}
    0.280488 + 1.37427 I{{1, 2}, {3}, {4}}
    $a_{18}${1.40265, 5.40255}{{1}, {2, 3}, {4}}
    Infinity{{1}, {2, 3}, {4}}

  7. Determining singular monodromies
  8. We compute singular monodromies using the same method to compute annular monodromies: we integrate the azimuthal equation over the singular integration paths of each singular point. The results of these calculations are shown in Table 5.

  9. Determining support
  10. A characteristic feature of algebraic functions is the effect a singular point has on the surrounding branches. With the exception of the origin, poles, and the point at infinity, the vast majority of singular points of a random function will ramify into a $2$-cycle branch. The remaining covering will be unramified. It is for this reason, annular branches are often analytically continuous across singular points with their associated power expansions having regions of convergence extending beyond the nearest singular point. And current methods of computing power expansions do not provide a means of determining the convergence region of the expansion in the general case. In this and subsequent sections, a geometric method is described to determine the region of convergence of algebraic power expansions.

    A necessary condition for extending a annular branch across a singular point is that the next annular region must contain a branch with the same cycle type. For example, if we are considering extending a $2$-cycle branch from $a_i$ to $a_{i+1}$ then $a_{i+1}$ must also contain a $2$-cycle branch. Likewise for other branches. Therefore, our first concern is to determine which branch continuations are supported across intervening singular points. Let's consider the first and second annular regions in Table 4. $a_1$ contains $\{1,3\},\{2\},\{4\}$ and $a_2$ contains $\{1,2,4\},\{3\}$. Since $a_2$ does not include a $2$-cycle branch, $\{1,3\}$ cannot be extended into $a_2$. However, there are single-cycle branches in $a_2$ so one of the single-cycle branches can be extended into $a_2$. Thus, we have continuation support for the $\{2\}$ and $\{4\}$ branches. When we do this analysis for all the annular regions, we obtain the results in Table 5. And one important point to note about Table 5 is the inclusion of support across poles however these continuations will include meromorphic branches. That is, one or more branches will include a pole.

    Table 5: Annular Branch Support
    $a_i$Annulus/SingularityMonodromySupport
    0.{{1, 3}, {2}, {4}}{}
    $a_{1}${0.00005, 0.00914971}{{1, 3}, {2}, {4}}{{2}, {4}}
    -0.00919971{{1}, {2}, {3, 4}}{}
    $a_{2}${0.00924971, 0.597413}{{1, 2, 4}, {3}}{{3}}
    -0.597463{{1}, {2}, {3, 4}}{}
    $a_{3}${0.597513, 0.632548}{{1, 2}, {3}, {4}}{{3}, {4}}
    0.632598{{1, 2}, {3}, {4}}{}
    $a_{4}${0.632648, 0.692865}{{1}, {2}, {3}, {4}}{{1}, {2}, {3}, {4}}
    0.692915{{1}, {2, 3}, {4}}{}
    $a_{5}${0.692965, 0.81752}{{1}, {2, 3}, {4}}{{1}, {2, 3}, {4}}
    0.644655 - 0.502832 I{{1}, {2}, {3}, {4}}{}
    0.644655 + 0.502832 I{{1}, {2}, {3}, {4}}{}
    $a_{6}${0.81762, 0.85072}{{1}, {2, 3}, {4}}{{1}, {2, 3}, {4}}
    0.296412 - 0.797464 I{{1}, {2}, {3, 4}}{}
    0.296412 + 0.797464 I{{1}, {2}, {3, 4}}{}
    $a_{7}${0.85082, 0.855893}{{1}, {2, 3}, {4}}{{1}, {2, 3}, {4}}
    -0.0728759 - 0.852835 I{{1}, {2, 3}, {4}}{}
    -0.0728759 + 0.852835 I{{1}, {2, 3}, {4}}{}
    $a_{8}${0.855993, 0.859094}{{1}, {2, 3}, {4}}{{2, 3}}
    -0.859144{{1}, {2, 3}, {4}}{}
    $a_{9}${0.859194, 0.86072}{{1, 4}, {2, 3}}{{1, 4}, {2, 3}}
    -0.86077{{1}, {2}, {3}, {4}}{}
    $a_{10}${0.86082, 0.87268}{{1, 4}, {2, 3}}{}
    0.72046 - 0.492539 I{{1, 2}, {3}, {4}}{}
    0.72046 + 0.492539 I{{1, 2}, {3}, {4}}{}
    $a_{11}${0.87278, 0.901569}{{1}, {2, 3, 4}}{}
    -0.901619{{1, 2}, {3}, {4}}{}
    $a_{12}${0.901669, 0.960797}{{1, 3, 4, 2}}{}
    0.859329 - 0.429862 I{{1}, {2}, {3, 4}}{}
    0.859329 + 0.429862 I{{1}, {2}, {3, 4}}{}
    $a_{13}${0.960897, 0.966553}{{1, 3, 4, 2}}{}
    0.966603{{1}, {2, 3}, {4}}{}
    $a_{14}${0.966653, 1.19232}{{1, 2}, {3, 4}}{{1, 2}, {3, 4}}
    -1.16276 - 0.264081 I{{1}, {2, 4}, {3}}{}
    -1.16276 + 0.264081 I{{1}, {2, 4}, {3}}{}
    $a_{15}${1.19242, 1.29607}{{1, 3}, {2, 4}}{{1, 3}, {2, 4}}
    -1.29612{{1}, {2}, {3, 4}}{}
    $a_{16}${1.29617, 1.30349}{{1, 3}, {2}, {4}}{{1, 3}, {2}, {4}}
    -1.30354{{1}, {2}, {3}, {4}}{}
    $a_{17}${1.30359, 1.40255}{{1, 3}, {2}, {4}}{{1, 3}, {2}, {4}}
    0.280488 - 1.37427 I{{1, 2}, {3}, {4}}{}
    0.280488 + 1.37427 I{{1, 2}, {3}, {4}}{}
    $a_{18}${1.40265, 5.40255}{{1}, {2, 3}, {4}}{}
    Infinity{{1}, {2, 3}, {4}}{}

    A second necessary condition for branch continuations is that the intervening singular points must support a sufficient number of single-cycle branches to continue the annular branch into the next annular region. Consider again Table 5 and the $\{1,2,4\}$ branch in $a_2$. Even if $a_3$ contained a $3$-cycle branch, we could not continue the branch into $a_3$ because the intervening singular point does not include three single-cycle branches to allow analytic continuation of each sheet of the $\{1,2,4\}$ branch into the next annular region.

    A sufficient condition for branch continuation is homomorphic continuation of each branch sheet across intervening singular points onto a branch in the next region having the same cycle sequence. Consider again the $\{1,2,4\}$ branch in $a_2$ above. In order to continue this branch into the next annular region, we must first have three single-cycle branches across the intervening singular points and then analytically continue this branch across those singular points onto another three cycle branch such as $\{3,4,1\}$ such that sheet $1$ of the branch in $a_2$ continues onto sheet $3$ in $a_3$, sheet $2$ in $a_2$ continues onto sheet $4$ of $a_3$ and sheet $4$ of $a_2$ continues onto sheet $1$ of $a_3$ or: $$ \begin{array}{cccc} 1 & 2 & 4 \\ \downarrow & \downarrow & \downarrow \\ 3 & 4 & 1 \end{array} $$

  11. Determining branch continuations over singular points and construction of branch continuation table
  12. In order to implement an algorithm to determine branch continuations, we first consider the simple case of the ring diagram in Figure 1 and this time include the branch continuation path to determine if a branch in $a_1$ continues across the singular point at $1+i$ and into $a_2$. The path we will construct is shown in Figure 2 as the red, blue, green, yellow and purple legs. And keep in mind, we will only consider such a path when support is established and the intervening singular points contain the required number of single-cycle branches.

    One immediate consequence of Figure 2 is the necessity of integrating the azimuthal equation five times, one for each leg of the continuation contour. And one concern of doing this is the gradual departure of the integration over the actual surface of the function as we travel from one leg to the next. We can minimize this effect by replacing the numerically determined value of the function at the end of each leg with the actual value of the function. For example, consider the integration over the red leg from point $a$ to point $f$: the numerical results at the end of the red leg at point $f$ will be slightly different from the actual value of the branch sheet at $f$. But we can easily determine the actual value of the function at point $f$ via NSolve[theFunction==0/.z->f,w]. NSolve gives us the four values of the function at point $f$ and we can compare those four values with the numerically-determined value from the integration results using getDigits with say $5$ digits of accuracy. And then substitute the actual value of the function for the starting point of the blue leg thus recovering any loss of precision caused by numerically solving the azimuthal equation. Likewise, at the end of the blue leg, make a similar substitution for the actual value of the function for the start of the green leg and so forth.

    We integrate over the continuation contour for each support and then compare the monodromy at point $a$ to the monodromy at point $b$ as discussed above thereby determining branch continuations and thus the region of convergence of the associated power expansions. When we do this analysis for the function above, we obtain the results in Table 6.

    Explanation of Table 6: Table 6 details the annular branching geometry of the function. In the fourth column we have the annular monodromies with arrows connecting the branch continuations. Some branches are restricted to a single annulus. First consider $a_1$ with branches $\{1,3\},\{2\},\{4\}$. It should be obvious now looking at column 3 that branch $\{1,3\}$ cannot be continued into $a_2$ since $a_2$ does not support the continuation. Less obvious is the fact that $\{4\}$ is also not continued. This is due to this branch impinging upon one of the singular branches of the intervening singular point. However, we find arrows connecting the $\{2\}$ branch to the $\{3\}$ branch in $a_2$ which in turn has an arrow to the $\{3\}$ branch in $a_3$ and then another to the $\{3\}$ in $a_4$. This indicates the $\{2\}$ branch in $a_1$ continues across three singular points into $a_4$.

    Now consider the power expansions for the three branches in $a_1$: $$ \begin{align*} \{1,3\}(z)&=(0. -1.41421 I) \sqrt{z}-2.875 z+(0. +13.3301 I) z^{3/2}+83.9648 z^2+\cdots \\ \{2\}(z)&=-0.25 z+0.0703125 z^2+0.020752 z^3+0.0039978 z^4+\cdots \\ \{4\}(z)&=0.333333 +4.66667 z-168.222 z^2+9523.5 z^3 +\cdots \\ \end{align*} $$ where we have listed only a few terms of the series to 6 digits of accuracy. In practice, $150$ terms of the series were computed to $300$ digits of accuracy. And according to the continuation analysis in Table 6, we find the region of convergence of the $\{1,3\}$ series is the punctured disc with radius equal to $r_1$ or approximately $0.00919971$. We label this region in the fifth column as $\{r_0,r_1\}$. Branch $\{4\}$ series has a similar region $\{r_0,r_1\}$ except it is not punctured. And the expansion of $\{2\}$ has a region of convergence $\{r_0,r_4\}$ shown by the arrows extending to $a_4$. The rest of column five lists the convergence regions of power expansions of the remaining annular branches. Continuations over poles are treated in $(7)$ below.

  13. Branch continuations over poles
  14. The method described above will include branch continuations which are contiguous with unramified pole sheets. We therefore need a method to identify these continuations as power expansions of the continuations will not converge beyond the pole. Consider the branch continuations in Table 6 between $a_5$ to $a_6$. Since the intervening singular points are poles, one or more of the branch continuations may be meromorphic, that is, contain a pole.

    In cases involving poles, we can determine which branch sheet is affected by the pole by computing the Puiseux expansion around each singular point and then computing the value of each series at the singularity reference point $c$ in Figure $2$. We use the following steps:

    1. Continue each branch sheet to point $c$ and sort the results,
    2. Compute the Puiseux expansion around the singular point and calculate the value of each series at point $c$,
    3. The Puiseux expansion around an unramified pole will contain singular terms such as $1/z$. These identify the pole series. Determine which pole series at point $c$ corresponds to the branch values computed at $c$. This identifies which branches are contiguous with the poles.
    Branches impinging upon a pole are indicated by a red pole sequence next to the continuation arrow in Table $6$. For example, consider branch $\{1\}$ in $a_5$ where we show in Table 5 the branch continuing into $a_6$. However, in this case, the branch continues through a pole. We identify pole sheets in the singular monodromy as red terms in the third column of Table 5. In the case of the poles between $a_5$ and $a_6$, only one sheet is polar. And to further identify how the pole sheets are affecting the branches, we have the red designation $\{a,b,c\}$ along a continuation arrow directly across from a pole. This indicates branch sheet $a$ of the indicated continuing branch is impinging upon the pole sheet $b$ of this singular point and continuing onto $c$ of the next annulus. In the case above, sheet $1$ of branch $\{1\}$ in $a_5$ is contiguous with pole sheet $1$ of this pole and continues onto branch sheet $1$ of branch $\{1\}$ in $a_6$.

    Another less confusing example is the continuation of $\{2,3\}$ in $a_9$ across the pole $0.8608$ onto $\{2,3\}$ of $a_{10}$ where we have the pole sequence $\{2,4,2\}$. Therefore, sheet $2$ of $\{2,3\}$ in $a_9$ is contiguous with pole sheet $4$ and continues onto sheet $2$ of $\{2,3\}$ in $a_{10}$.

    We will go over an actual computation in detail using the function above and the following table:

    Table 7: Data for continuations across poles
    RingNext CycleSheetSing ptpositionzStartzP
    5{1}10.644655 - 0.502832 I{{1}}0.635955 - 0.496046 I-0.00869988 + 0.00678591 I
    5{1}10.644655 + 0.502832 I{{1}}0.635955 + 0.496046 I-0.00869988 - 0.00678591 I
    5{2, 3}20.644655 - 0.502832 I{{3}}0.635955 - 0.496046 I-0.00869988 + 0.00678591 I
    5{2, 3}30.644655 - 0.502832 I{{2}}0.635955 - 0.496046 I-0.00869988 + 0.00678591 I
    5{2, 3}20.644655 + 0.502832 I{{2}}0.635955 + 0.496046 I-0.00869988 - 0.00678591 I
    5{2, 3}30.644655 + 0.502832 I{{3}}0.635955 + 0.496046 I-0.00869988 - 0.00678591 I
    5{4}40.644655 - 0.502832 I{{4}}0.635955 - 0.496046 I-0.00869988 + 0.00678591 I
    5{4}40.644655 + 0.502832 I{{4}}0.635955 + 0.496046 I-0.00869988 - 0.00678591 I
    9{1, 4}1-0.86077{{3}}-0.8602610.000508562
    9{1, 4}4-0.86077{{2}}-0.8602610.000508562
    9{2, 3}2-0.86077{{4}}-0.8602610.000508562
    9{2, 3}3-0.86077{{1}}-0.8602610.000508562
    16{1, 3}1-1.30354{{2}}-1.30110.00244001
    16{1, 3}3-1.30354{{1}}-1.30110.00244001
    16{2}2-1.30354{{4}}-1.30110.00244001
    16{4}4-1.30354{{3}}-1.30110.00244001

    Now consider $a_5$ in Table 6 as we attempt to continue the $\{1\}$, $\{2,3\}$ and $\{4\}$ branches across the two poles $0.6477\pm 0.5028i$: Looking at the first eight lines of Table 7, we are checking each sheet of each branch across each intervening singular point. Consider the first line of the table: we are checking sheet $1$ of cycle $\{1\}$ in $a_5$ across singular point $0.6477-0.5028i$. The sorted function values at point $c$ in Figure 2 for this singular point are $$ \begin{array}{cc} \{-1,\{1,0,1,0,2,6,4,2\},2\} & \{1,\{2,1,4,9,6,7,7,4\},2\} \\ \{-1,\{4,8,6,5,3,9,5,9\},0\} & \{-1,\{6,6,0,3,0,0,5,5\},0\} \\ \{-1,\{1,3,4,1,1,0,4,7\},0\} & \{1,\{6,2,4,4,8,0,8,8\},-1\} \\ \{1,\{4,9,7,1,8,1,3,9\},0\} & \{-1,\{4,2,3,2,2,3,3,6\},-1\} \\ \end{array} $$ And when we analytically extend sheet $1$ from $f$ to $c$ in Figure $2$, we find this branch is analytically continuous to the first index of the sorted function values. This is given by the $\{\{1\}\}$ term in the Position column. And the Puiseux expansion around this singular point is: $$ \begin{align*} w_1&=(-89.374-127.739 i) z^3-(8.0482+17.3987 i) z^2-(0.74754+2.73663 i) z-(0.509433+0.679311 i)+\cdots \\ w_2&=(-0.0981969-0.0637874 i) z^3+(0.1332142+0.0474570 i) z^2-(0.0674907+0.0870685 i) z-(0.135298-0.062163 i)+\cdots \\ w_3&=(-1.83543-0.64157 i) z^3-(0.254258+0.693144 i) z^2-(0.255712+0.366003 i) z+(0.492563-0.043778 i)+\cdots \\ w_4&=(8.4898+18.1918 i) z^2+(0.85129+3.32082 i) z+(0.236722+0.713111 i)-\frac{0.051484+0.250993 i}{z}+\cdots \end{align*} $$ and note $w_4$ has the singular term.

    First, recall, if we have a point on the singular integration path, $|s_i|+r_s e^{it}$ then the equivalent point translated by the singular point is $r_s e^{i(t-\pi)}$. These translated values are under the zP column. So that when we compute the value of each Puiseux series at the associated zP point or $-0.00869988 + 0.00678591 I$ , we obtain: $$ \begin{array}{ccc} w_1(zP): & \{-1,\{4,8,6,5,3,9,5,9\},0\} & \{-1,\{6,6,0,3,0,0,5,5\},0\} \\ w_2(zP): & \{-1,\{1,3,4,1,1,0,4,7\},0\} & \{1,\{6,2,4,4,8,0,8,8\},-1\} \\ w_3(zP): & \{1,\{4,9,7,1,8,1,3,9\},0\} & \{-1,\{4,2,3,2,2,3,3,6\},-1\} \\ w_4(zP): & \{-1,\{1,0,1,0,2,6,4,2\},2\} & \{1,\{2,1,4,9,6,7,7,4\},2\} \\ \end{array} $$ and note the value of the singular term $w_4(zP)$ is the first index of the function values at $c$ or equivalently the $1$ sheet. Therefore this sheet of branch $\{1\}$ is singular across this singular point and extends to the $\{1\}$ branch in $a_6$. This link from the $\{1\}$ branch in $a_5$ to index $1$ of the sorted values of the function at point $c$ and then to the $\{1\}$ branch in $a_6$ is given as the red links $\{1,1,1\}$ along the continuation arrow for this branch for this singular point. And when we do the same analysis for the conjugate singular point, we obtain the same links for the branch. A similar analysis is done for the remaining branches and remaining poles.

  15. Numeric confirmation of convergence domains of power expansions
  16. Consider the first annulus where we have the following power expansions generated by Newton Polygon: $$ \begin{align*} \{1,3\}(z)&= -1.4142136 I \sqrt{z}-2.8750000 z+13.330068 I z^{3/2}+83.964844 z^2-611.29164 I z^{5/2}+\cdots \\ \{2\}(z)&= -0.25000000 z+0.070312500 z^2+0.020751953 z^3+0.0039978027 z^4-0.10609412 z^5 +\cdots\\ \{4\}(z)&= 0.33333333+4.6666667 z-168.22222 z^2+9523.5000 z^3-658180.69 z^4 +\cdots\\ \end{align*} $$ And we would like to use the Root Test to numerically estimate the radius of convergence of the above series. The root test states that for a power series: $$ \sum_{1}^{\infty} a_n (z^{1/d})^n $$ the radius of convergence is $$ R<\frac{1}{\displaystyle\lim_{n\to\infty} \big(a_n\big)^{d/n}} $$

    We now compute $1024$ terms of $\{2\}(z)$ via Newton Polygon and plot the points $(1/n,\big(a_n\big)^{d/n})$. This gives us the plot shown in Figure 3.

    And we wish to extrapolate the points to $1/n=0$ using the built-in Mathematica function GetFunction. For example, using the last 1014 coefficients of the power expansion of this branch, GetFunction produces the function: $$ \begin{align*} f_{1014}(x)&=1.4423 -19.0293 x+2257.05 x^2-592894. x^3+1.27297*10^8 x^4-1.97089*10^{10} x^5\\ &+2.147*10^{12} x^6-1.62163*10^{14} x^7+8.28539*10^{15} x^8-2.72623*10^{17} x^9\\ &+5.20613*10^{18} x^{10}-4.37987*10^{19} x^{11} \end{align*} $$ where the notation $f_n$ means use the last $n$ coefficients of the series. A plot of $f_{1014}(x)$ superimposed on the data is shown in Figure 4 from which we obtain $\frac{1}{f(0)}=0.693339$. This agrees with the expected value of $0.692915$ to two digits.

    However, the power expansion may take time to settle down into its regular behavior. Table 8 gives the results if we use increasingly fewer terms of the series from $f_{873}(z)$ through $f_{273}(x)$.

    Table 8: Root Test Fit for $\{2\}(z)$
    FunctionResults
    $f_{873}$0.69321
    $f_{823}$0.693219
    $f_{773}$0.693173
    $f_{723}$0.693148
    $f_{673}$0.693164
    $f_{623}$0.693148
    $f_{573}$0.693131
    $f_{523}$0.693159
    $f_{473}$0.693142
    $f_{423}$0.693181
    $f_{373}$0.693171
    $f_{323}$0.693166
    $f_{273}$0.691716

    Next we perform the same analysis on the $2$-cycle branch, $\{1,3\}(z)$:

    Table 9: Root Test Fit for $\{1,3\}(z)$
    FunctionResults
    $f_{873}$0.0092068
    $f_{823}$0.00920652
    $f_{773}$0.00920582
    $f_{723}$0.00920597
    $f_{673}$0.00920552
    $f_{623}$0.00920595
    $f_{573}$0.00920553
    $f_{523}$0.00920617
    $f_{473}$0.00920713
    $f_{423}$0.00920681
    $f_{373}$0.00920653
    $f_{323}$0.00920627
    $f_{273}$0.00920767
    and the results for $\{4\}(z)$:
    Table 10: Root Test Fit for $\{4\}(z)$
    FunctionResults
    $f_{873}$0.00920222
    $f_{823}$0.00920311
    $f_{773}$0.00920313
    $f_{723}$0.00920283
    $f_{673}$0.00920256
    $f_{623}$0.0092028
    $f_{573}$0.00920311
    $f_{523}$0.00920294
    $f_{473}$0.0092034
    $f_{423}$0.00920325
    $f_{373}$0.0092031
    $f_{323}$0.00920297
    $f_{273}$0.00920367
    all of which agree quite well with Table 6.

    However in the case of annular Puiseux series, we encounter some complications which are interesting in themselves and we treat that subject in a separate section. Refer to Section 13: Analyzing the Annular Laurent Integrals.

No comments:

Post a Comment

Blog Archive