# A problem in the real Schubert calculus

Jonathan Hauenstein and Frank Sottile
Return to the main page for alphaCertified.
We use alphaCertified to study one geometric problem from the point of view of some conjectures in the real Schubert calculus. General results in the Schubert calculus of enumerative geometry tell us that there will be exactly 126 four-dimensional linear subspaces of C8 that meet each of eight general three-dimensional linear subspaces nontrivially, in a one-dimensional linear subspace. The Shapiro Conjecture [S00] (now Theorem of Mukhin, Tarasov, and Varchenko[MTV]) asserts that if the three-planes are chosen in a specified way, then all solution planes will be real. The specified way is a follows. Let γ(t) be the (parametrized) moment curve in C8
γ(t) = (1, t, t1, t2, t3, t4, t5, t6, t7).
The three-plane F3(t) that osculates γ at a point γ(t) is the three-plane spanned by this vector γ(t), as well as its first and second derivatives. Then our three-planes are the osculating three-planes F3(ti) for eight real numbers t0, t1, t2, t3, t4, t5, t6, t7.
We also tested closely related problems, where the eight numbers t0, …, t7 are not real, but are the roots of a polynomial with real coefficients. That is, some number a are real and the rest come in b complex conjugate pairs, where a+2b=8. Write this in short hand as arbc. The frequency table below presents the results of our investigation, which was intended to see if there was a lower bound on the number of real solutions, depending on the real scheme (arbc) of the points t0, …, t7. It does appear to be the case that there are non-trivial lower bounds for this Schubert problem. This is the largest problem that was investigated of this type (and the only one using numerical software), here is more on this question.
 (W)8 = 126 on Gr(4;8) type # real solutions 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 124 126 total 8r0c 1000 1000 6r1c 6 6 10 88 616 830 554 1888 1832 1747 2916 2744 4160 3187 3589 2732 2383 1846 3150 1409 5135 1222 917 814 675 681 697 930 868 2020 671 648 1023 236 408 734 262 380 346 196 162 270 155 110 416 100 77 174 61 72 103 63 56 42 133 52 50 182 76 69 2021 59000 4r2c 2614 3771 2497 1512 3285 1579 1378 1074 974 567 848 523 650 338 268 235 377 183 239 105 89 72 74 83 64 69 55 64 46 41 44 23 23 31 13 14 20 7 11 14 3 10 15 4 3 8 6 5 6 3 2 1 9 4 1 3 4 1 38 24000 2r3c 8896 4479 1667 1620 1079 721 2586 595 478 215 292 188 163 106 63 56 62 27 55 29 16 16 11 15 3 4 7 6 7 7 6 2 3 5 1 1 2 2 1 1 1 2 1 1 1 1 23500 0r4c 19134 1585 606 287 361 158 123 32 35 28 40 28 20 7 4 12 2 8 1 6 2 4 1 1 1 1 2 3 2 1 1 1 1 1 1 23500

Directions
Before you begin, you will need to have a working binary of Bertini and alphaCertified on your machine along with the GMP library.
• Solve for a random complex instance by running Bertini with input file ShapiroOrig.bertini.
>: bertini ShapiroOrig.bertini
Using a single processor, this computation takes many hours.
The output file of interest is nonsingular_solutions, which will be the start points for the parameter homotopy.
• Rename nonsingular_solutions as start. These will be the start points for the parameter homotopy used to solve the real instances.
>: mv nonsingular_solutions start
• Set the number of real points to utilize in ShapiroInstance.c++ by setting the preprocessor directive NUMREAL to the number of real points to utilize (that is, the a in arbc).
• Create the executable Shapiro.out by compiling ShapiroInstance.c++ using the header file Complex.h. This executable creates the input files needed to solve for a random instance.
>: g++ -o Shapiro.out ShapiroInstance.c++ -lgmp
• Run Shapiro.out. This creates Shapiro.bertini, which is a parameter homotopy to compute numerical solutions for a random instance, and Shapiro.poly, which is the polynomial system used to certify the solutions. For example, Shapiro.bertini and Shapiro.poly.
>: ./Shapiro.out
• Use the parameter homotopy described in Shapiro.bertini to compute the numerical solutions.
>: bertini Shapiro.bertini
The output file of interest is nonsingular_solutions, which is part of the input for alphaCertified. Here is nonsingular_solutions for the running example.
• We now use alphaCertified to certify the number of real solutions. This is accomplished by running alphaCertified with the polynomial system described in Shapiro.poly using the points contained in nonsingular_solutions created by Bertini in the last step. The configurations in settings tell alphaCertified to utilize 256-bit precision. We recommend capturing the output for perusal.
>: alphaCertified Shapiro.poly nonsingular_solutions settings > output
• Here is output for the running example. Perusing it, we see that alphaCertified certified that 16 of the solutions are real.
• Bertini and alphaCertified both create a halo of small files, which may be removed using the short shell script scour.sh.
>: sh scour.sh
Assuming that we have the start points and created Shapiro.out, the following bash session computes and certifies the solutions for a random instance.
>: ./Shapiro.out
>: bertini Shapiro.bertini
>: alphaCertified Shapiro.poly nonsingular_solutions settings > output
>: sh scour.sh

 [MTV] E. Mukhin, V. Tarasov, A. Varchenko, The B  and M. Shapiro conjecture in real algebraic geometry and the Bethe ansatz, Annals of Mathematics, 170 (2009), 863—991. [S00] F. Sottile, Real Schubert Calculus: Polynomial systems and a conjecture of Shapiro and Shapiro, Experimental Mathematics, 9 (2000), 161—182. [S10] F. Sottile, Frontiers of Reality in Schubert Calculus, Bulletin of the American Mathematical Society, 47 (2010), 31—71.

Return to the main page for alphaCertified.
Last modified: Wed Nov 3 18:28:32 CDT 2010