Macaulay2 » Documentation
Packages » NumericalSchubertCalculus :: LRtriple
next | previous | forward | backward | up | index | toc

LRtriple -- uses Littlewood-Richardson homotopy algorithm to solve a Schubert problem

Synopsis

Description

LRtriple applies the Littlewood-Richardson homotopies to solve a generic instance of a Schubert problem defined by at least three Schubert conditions. The flags defining the instance are generated in the routine.

Use the method parseTriplet to parse the three strings f, p, and s into proper Macaulay2 polynomials, solution lists, and complex matrices.

The Schubert problem [2 4 6]^3 on $G(3,6)$ has two solutions. This example computes the solutions to an instance given by random flags.

i1 : R := ZZ; n := 6; m := matrix{{3, 2, 4, 6}};

              1        4
o3 : Matrix ZZ  <--- ZZ
i4 : result := LRtriple(n,m);
i5 : stdio << "the fixed flags :\n" << result_0;
the fixed flags :
 -4.08248290463863E-01  -1.85037170770859E-17  3.97812324059320E-01   9.79174839149694E-02 -3.14031586278321E-01  -1.77692247250931E-01  8.72558320358186E-02   5.55057765241127E-02  3.26603807820814E-01   4.50079520070478E-01 -1.21477444123812E-01   4.47892420160762E-01
 -3.31646271829620E-01   2.38070193531614E-01 -3.33688927682635E-01  -4.41919858253321E-02  1.88919891065188E-01   2.27346320870824E-01 -4.44853393347985E-01  -2.96270804351182E-01 -2.68017149858233E-01   4.17865005709478E-01  2.51229213826536E-01   1.93451859210120E-01
 -3.83273496319134E-01   1.40599052934127E-01 -4.18504865460909E-01   1.82476392974900E-01 -6.40678637658166E-01   2.36261384607933E-02  9.94880240507409E-02   1.58337849859311E-01 -4.72950872095731E-02  -4.27535007632162E-02  2.93899098035654E-03  -4.18114815999641E-01
  4.01140073193088E-01   7.58505658865559E-02 -2.36582711732953E-01   1.72836943189620E-01 -4.04708999156962E-01  -1.07343253658322E-01 -3.74682062675373E-01   1.15784231762851E-01 -1.14710174394788E-01  -2.49371301578811E-01 -1.03153948113123E-01   5.76541024749319E-01
  1.35340093932427E-02   4.08023892996979E-01 -2.71251275529851E-01  -6.61593552387677E-02  2.11836190247706E-01  -2.15567268248658E-01  6.36537592748278E-01   2.76418271402020E-01 -2.69424234570330E-01   8.22850649989294E-02  8.55910480493980E-02   3.09454285127493E-01
 -3.67664943735471E-01   1.77451840831984E-01  2.80633567514338E-01   5.17550799722571E-01  1.76260380326836E-01  -2.71443831475986E-01 -6.71993903613725E-02  -1.69618081610741E-01 -1.58819347923215E-01  -5.10216650142325E-01  2.46667136784666E-01   4.79007839571318E-02

THE MOVED FLAG :
  1  1  1  1  1  1
 -1 -1 -1 -1 -1  0
  1  1  1  1  0  0
 -1 -1 -1  0  0  0
  1  1  0  0  0  0
 -1  0  0  0  0  0

THE 3-SOLUTION PLANES :
 -1.11978157975915E+00   1.65613772077393E-01  0.00000000000000E+00   0.00000000000000E+00  0.00000000000000E+00   0.00000000000000E+00
  1.00000000000000E+00   0.00000000000000E+00  0.00000000000000E+00   0.00000000000000E+00  0.00000000000000E+00   0.00000000000000E+00
  0.00000000000000E+00   0.00000000000000E+00 -3.75221192076092E-01  -2.48041653266659E-01  0.00000000000000E+00   0.00000000000000E+00
  0.00000000000000E+00   0.00000000000000E+00  1.00000000000000E+00   0.00000000000000E+00  0.00000000000000E+00   0.00000000000000E+00
  0.00000000000000E+00   0.00000000000000E+00  0.00000000000000E+00   0.00000000000000E+00 -6.23616597635860E-01  -2.18599169648558E+00
  0.00000000000000E+00   0.00000000000000E+00  0.00000000000000E+00   0.00000000000000E+00  1.00000000000000E+00   0.00000000000000E+00

 -2.45448902320671E-01  -1.02626547024311E-01  0.00000000000000E+00   0.00000000000000E+00  0.00000000000000E+00   0.00000000000000E+00
  1.00000000000000E+00   0.00000000000000E+00  0.00000000000000E+00   0.00000000000000E+00  0.00000000000000E+00   0.00000000000000E+00
  0.00000000000000E+00   0.00000000000000E+00 -1.36521846024660E+00   5.40175955796651E-01  0.00000000000000E+00   0.00000000000000E+00
  0.00000000000000E+00   0.00000000000000E+00  1.00000000000000E+00   0.00000000000000E+00  0.00000000000000E+00   0.00000000000000E+00
  0.00000000000000E+00   0.00000000000000E+00  0.00000000000000E+00   0.00000000000000E+00 -1.28868981690887E+00   6.08007127143010E-01
  0.00000000000000E+00   0.00000000000000E+00  0.00000000000000E+00   0.00000000000000E+00  1.00000000000000E+00   0.00000000000000E+00
i6 : stdio << "polynomial system solved :\n" << result_1;
polynomial system solved :
 6 3

+(-2.22031736978857E-01 + 3.18789771979949E-01*i)*x11*x32*x53
+(-6.17422879466825E-01 - 9.60784463860935E-02*i)*x11*x32
+(-1.61810550546247E-01 + 1.08504019387186E-01*i)*x11*x53
+(-1.57955128990380E-01 + 3.34968485755594E-01*i)*x32*x53
+(-3.74696526626732E-01 - 9.99730706347352E-03*i)*x11
+(-1.84709768939814E-01 + 3.62947612331143E-01*i)*x32
+(-1.44595312861631E-01 + 1.19035248438782E-01*i)*x53
+(-2.86542298065088E-01 + 2.86096288784835E-01*i);

+( 8.42059732147426E-01 + 3.39910304104641E-02*i)*x11*x32*x53
+( 9.05100164926549E-01 + 2.94497407778889E-02*i)*x11*x32
+( 3.51820718787900E-01 + 6.70277596934115E-02*i)*x11*x53
+( 1.33744938329095E-01 - 5.82345002438941E-03*i)*x32*x53
+( 6.05161081977061E-01 + 2.14195097892559E-02*i)*x11
+( 1.23633363417116E-01 + 1.40843859182061E-02*i)*x32
+( 1.03549820073609E-01 - 7.79413307564618E-02*i)*x53
+( 1.74053131549760E-01 - 1.43377559277007E-01*i);

+( 1.19042617826994E-01 + 3.34483475553423E-02*i)*x11*x32*x53
+(-3.23842703713701E-01 - 2.55133309039113E-01*i)*x11*x32
+( 4.85663839563644E-01 + 5.64101617459871E-02*i)*x11*x53
+( 1.96719924543530E-01 + 2.12527754874998E-01*i)*x32*x53
+(-3.97899137772641E-01 - 7.96444590159542E-01*i)*x11
+(-3.06177374356630E-02 - 1.73096159671485E-01*i)*x32
+( 5.26340292766507E-01 - 8.13707548071123E-02*i)*x53
+(-1.20517493699459E-01 - 8.06023766456248E-01*i);

+(-7.26841776132968E-01 - 1.39339586961160E-01*i)*x11*x32*x53
+(-5.72841803432976E-01 - 3.02898132054218E-01*i)*x11*x32
+(-6.99419107949223E-01 - 4.43094367516545E-01*i)*x11*x53
+(-5.36534750824741E-01 - 5.06082109214979E-01*i)*x32*x53
+(-5.44984576154230E-01 - 6.02383441523054E-01*i)*x11
+(-3.45200716768154E-01 - 5.47254493845745E-01*i)*x32
+(-6.81729875269734E-01 - 5.40086737117702E-01*i)*x53
+(-4.12666744241273E-01 - 7.67335042360796E-01*i);

+(-3.36003336771691E-01 + 4.39449075450039E-01*i)*x11*x32*x53
+(-3.11588823087300E-01 + 1.70571569957293E-01*i)*x11*x32
+(-3.50092653925388E-01 + 9.98991969928704E-02*i)*x11*x53
+( 8.93111359067309E-02 + 8.83124645506282E-02*i)*x32*x53
+(-7.44439523933786E-01 - 5.82411185729712E-02*i)*x11
+( 1.41508162164850E-01 - 4.47870840208402E-02*i)*x32
+(-1.14269366264579E-01 - 5.61647977516906E-02*i)*x53
+(-2.68431378789617E-01 - 2.95933339843714E-02*i);

+(-9.61093933093429E-02 - 8.10505054733194E-01*i)*x11*x32*x53
+(-4.89316629840530E-01 - 4.33934277072278E-01*i)*x11*x32
+( 1.29309747019464E-01 - 4.37976591954737E-01*i)*x11*x53
+(-3.10945872263800E-01 - 5.88323486643750E-01*i)*x32*x53
+( 1.83522450602465E-01 - 7.32565449651871E-01*i)*x11
+(-6.48563773259940E-01 - 5.14568173716295E-01*i)*x32
+( 4.88264433532052E-02 - 3.70066088587247E-01*i)*x53
+( 5.04752436689806E-02 - 7.00956613197506E-01*i);

ROOT REFINING PARAMETERS
  1. output during the iterations    :  no
  2. deflate isolated singularities  :  yes
  3. tolerance for error on the root :  1.000E-08
  4. tolerance for the residual      :  1.000E-08
  5. tolerance for singular roots    :  1.000E-08
  6. maximum number of iterations    :  3
i7 : stdio << "solutions :\n" << result_2;
solutions :

2 3
===========================================================================
solution 1 :    start residual :  6.412E-15   #iterations : 1   success
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
 x11 : -1.11978157975915E+00   1.65613772077393E-01
 x32 : -3.75221192076093E-01  -2.48041653266659E-01
 x53 : -6.23616597635846E-01  -2.18599169648558E+00
== err :  3.894E-15 = rco :  5.719E-02 = res :  5.551E-16 = complex regular ==
solution 2 :    start residual :  2.040E-15   #iterations : 1   success
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
 x11 : -2.45448902320671E-01  -1.02626547024311E-01
 x32 : -1.36521846024660E+00   5.40175955796650E-01
 x53 : -1.28868981690887E+00   6.08007127143011E-01
== err :  4.767E-16 = rco :  2.379E-01 = res :  2.498E-16 = complex regular ==
===========================================================================
A list of 2 solutions has been refined :
Number of regular solutions     : 2.
Number of singular solutions    : 0.
Number of real solutions        : 0.
Number of complex solutions     : 2.
Number of clustered solutions   : 0.
Number of solutions at infinity : 0.
Number of failures              : 0.
===========================================================================
Frequency tables for correction, residual, and condition numbers :
FreqCorr :  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 : 2
FreqResi :  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 : 2
FreqCond :  1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 : 2
Small correction terms and residuals counted to the right.
Well conditioned and distinct roots counted to the left.

THE SOLUTIONS :
2 3
===========================================================================
solution 1 :
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
 x11 : -1.11978157975915E+00   1.65613772077393E-01
 x32 : -3.75221192076093E-01  -2.48041653266659E-01
 x53 : -6.23616597635846E-01  -2.18599169648558E+00
== err :  3.894E-15 = rco :  5.719E-02 = res :  5.551E-16 ==
solution 2 :
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
 x11 : -2.45448902320671E-01  -1.02626547024311E-01
 x32 : -1.36521846024660E+00   5.40175955796650E-01
 x53 : -1.28868981690887E+00   6.08007127143011E-01
== err :  4.767E-16 = rco :  2.379E-01 = res :  2.498E-16 ==

TIMING INFORMATION for Root refining
The elapsed time in seconds was                  0.000425000 =  0h 0m 0s  0ms
User time in seconds was                         0.000382000 =  0h 0m 0s  0ms
System CPU time in seconds was                   0.000043000 =  0h 0m 0s  0ms
Non-I/O page faults was                                  27
I/O page faults was                                       0
Signals delivered was                                     0
Swaps was                                                 0
Total context switches was                                0

TIMING INFORMATION for resolving a Schubert problem
The elapsed time in seconds was                  0.008244000 =  0h 0m 0s  8ms
User time in seconds was                         0.008046000 =  0h 0m 0s  8ms
System CPU time in seconds was                   0.000198000 =  0h 0m 0s  0ms
Non-I/O page faults was                                 159
I/O page faults was                                       0
Signals delivered was                                     0
Swaps was                                                 0
Total context switches was                                0

Seed used in random number generators : 24787.
PHCv2.4.77 released 2020-06-12

Ways to use LRtriple :

For the programmer

The object LRtriple is a method function with options.