Generic properties of dispersion relations for discrete periodic operators

Ngoc Thanh Do, Peter Kuchment, and Frank Sottile.
This page describes some details of the numerical computation using Bertini in the article Generic properties of dispersion relations for discrete periodic operators.

Let us first recall the matrix A1,...α9,z1,z2) = A:=(aij), for i,j=1,2.
    a11 = α2 + α3 + α5 + α6 + α9 + 2α1 + 2α4 - α1( z1 + z1-1 ) - α4( z2 + z2-1 )
    a12 = -( α2z2 + α3z1 + α6z2-1 + α9z1-1 + α5 )
    a21 = -( α2z2-1+ α3z1-1 + α6z2 + α9z1 + α5 )
    a22 = α2 + α3 + α5 + α6 + α9 + 2α7 + 2α8 - α7( z2 + z2-1 ) - α8( z1 + z1-1 )
There are four equations. The first is the characteristic equation for the eigenvalues λ of the matrix A1,...α9,z1,z2). Then there are two implicit equations for ∂λ/∂zi for i=1,2. The fourth equation is the Hessian determinant for the second (implicit) partial derivatives of λ with respect to the zi.
    Implicit differentiation represents the implicit derivative as a rational expression of the parameters and variables. Since our formulation is that these implicit derivatives vanish, we only take the numerators of the rational expressions. This may introduce some extraneous solutions. We used a Maple script, Bertini.maple to generate these equations, and to write an input file Bertini_input for the computation in bertini. Running the file Bertini.maple creates the input file Bertini_input, we also have what this run dumps to a VT100 terminal, in Bertini_output.

    To run the computation in bertini, you need to
  • Download an executable file of the bertini software.
  • Create a directory in which to run bertini–it creates many auxillary files in the directory in which it is run.
    Move the file Bertini_input into that directory, and rename it input.
  • This will create many files, and may take several days to a week to run, so it is best to run it on a server. Bertini also dumps information to the screen, so you want to capture the stdout (standard output) to look at later.
  • We will later discuss some of the output files.
    Slightly better may be to use this version. It differs from Bertini_input in its header, which sets some parameters of the continuation, as well as a RandomSeed of 1545157539. These parameters were discovered by trial and error, and the RandomSeed was saved from a run that had no failures.
We ran this many times with different random seeds, and every time there were no numerical issues, the output was essentially the same. This is why we claim that the output is robust.
    Arguably the most important line in the input file is TrackType: 1;—this tells Bertini to compute what is called a numerical irreducible decomposition. While we will not describe exactly how that proceeds, suffice to say that, if the computation proceeds properly, for each irreducible component X of the variety defined by our four equations, it computes a general linear section of X, that is, the points of the intersection of X with a linear subspace of complimentary dimension. (This is also called a witness set for X and the points are witness points The number of such points, multiplied by the multiplicity of X is the degree of X.) In favorable circumstances, such as this, it is able to determine the scheme-theoretic multiplicity of X as well.
    The output of running Bertini contains many files. We have links to some, which we describe. The first is the captured Screen_output.txt. This tells the curious user how the computation is progressing. Bertini uses an equation-by-equation method called regeneration to compute these linear slices of the irreducible components X.
    Important for us, is the last few lines of that, which may be found in Summary.txt. This contains two tables. First, this one
   
Witness Set Decomposition
dimensioncomponentsclassifiedunclassified
9 3 18 0
8 7 775 0
and then this one
   
Decomposition by Degree
Dimension 9: 3 classified components

degree 2: 1 component
degree 8: 2 components
 
Dimension 8: 7 classified components

degree 1: 1 component
degree 3: 2 components
degree 8: 3 components
degree 744: 1 component
    The most important output file is main_data. This contains all the witness points for all the components above, and is the source of some claims made in our paper. Below we display the first 25 lines of it. It explains there are 12 variables. (Note that t is the variable for the eigenvalue λ.) The rank is the dimension of the linear span of the four equations. Then the file presents the witness points (we show only the first of 793), first by dimension, and each is classified by its path number (this is an internal pointer), and its component number—note that Bertini is 0-based. Next is an estimation of the condition number of this approximate solution, and finally, the 12 components of that approximate solution, one on each line with the first floating point number the real part and the second the imaginary part. Notice that for this point, |z[2]| is about 10-20, which is effectively zero. Lastly, it gives the multiplicity of this point, and the number of "Deflations" needed, which is a procedure for computing with a point of multiplicity greater than one.
Number of variables: 12
Variables:  t a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] z[1] z[2]
Rank: 4

----------DIMENSION 9----------

NONSINGULAR SOLUTIONS
---------------
Path number: 0
Component number: 0
Estimated condition number: 6.101364e+02
-0.721967331326454350653548737497e0 0.245382113873441570720180379817e0
0.139140675649982955399270550328e-1 0.899661766157386873340415809307e-2
0.352352660478687112873077430449e-2 0.164079643334363109653114859131e-1
0.365861627668185770763481734720e0 0.485838019801433375424192985841e0
0.616030595687168833992359893895e0 0.164538621532066982344457189873e0
-0.184476187404225760204257942500e0 0.527115733289102182329616332174e0
0.435396083833439500495979826611e0 0.262772085789842067482880415987e0
0.123683258840626653497702159177e0 0.500005970670088960248689249507e0
-0.289254855815383953177237050991e0 0.297500236855863550190577797153e0
0.300249665937637624027578378002e0 -0.588353927461884108734482644219e0
0.298355499992708501682809502380e0 0.109663916819274410102181744076e0
-0.107392521374849912053676749297e-19 0.100809888856741708943880081927e-19
Multiplicity: 1
Deflations needed: 0
Return to the main page.

Work of Do and Kuchment supported by the National Science Foundation under Grant DMS-1517938.
Work of Sottile supported by the National Science Foundation under Grant DMS-1501370.

Last modified: Sat Aug 17 17:32:49 CDT 2019