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

PieriHomotopies -- runs the Pieri homotopies to solve a general hypersurface problem

Synopsis

Description

This solves the Schubert intersection problem on $Gr(p,m+p)$ of the $p$-planes that meet $m\cdot p$ general $m$-planes. It is a simple Schubert problem $l_1,\dotsc,l_{mp}$, where each Schubert condition $l_i$ has codimension 1. This is less general than solveSimpleSchubert, which allows up to two of the $\ell_i$ to not have codimension 1

The example below computes the two lines that meet four given lines in projective 3-space.

To verify the first intersection condition, we concatenate the first input plane with the first output plane. The determinant of the concatenated matrix should have real and imaginary parts of the same magnitude as the machine precision.

i1 : (ipt, otp) := PieriHomotopies(2,2);
i2 : print ipt
{| -.5                 .361294+.0806396ii  |, | -.5                 .216008+.134438ii    |, | -.5                .284982+.222929ii   |, | -.5                 .22015-.484395ii   |}
 | .0560812+.496845ii  -.345688-.122686ii  |  | .425294-.262917ii   -.25443-.000255548ii |  | -.424034+.264943ii -.612614+.0126839ii |  | -.495841+.064355ii  -.407594-.169567ii |
 | -.312843+.390038ii  -.575119+.134847ii  |  | .378729+.326442ii   -.510118+.406777ii   |  | .356538-.350544ii  -.489129+.356105ii  |  | -.498392-.0400682ii -.307603+.337509ii |
 | -.499532+.0216369ii -.0303484+.615261ii |  | -.498042+.0442031ii -.517987+.42016ii    |  | -.487797-.109792ii -.348876-.0765384ii |  | -.0473766+.49775ii  .384254-.407219ii  |
i3 : print otp
{| 1                   0                |, | 1                 0                  |}
 | -.0995275-.303491ii .10685+.135117ii |  | .122055+2.67619ii .77208+.270864ii   |
 | -1.00317+1.13845ii  1                |  | .855829+3.01373ii 1                  |
 | 0                   1.04563+.64657ii |  | 0                 -.205684-.309834ii |
i4 : in0 = ipt_0

o4 = | -.5                 .361294+.0806396ii  |
     | .0560812+.496845ii  -.345688-.122686ii  |
     | -.312843+.390038ii  -.575119+.134847ii  |
     | -.499532+.0216369ii -.0303484+.615261ii |

                4          2
o4 : Matrix CC    <--- CC
              53         53
i5 : out0 = otp_0

o5 = | 1                   0                |
     | -.0995275-.303491ii .10685+.135117ii |
     | -1.00317+1.13845ii  1                |
     | 0                   1.04563+.64657ii |

                4          2
o5 : Matrix CC    <--- CC
              53         53
i6 : m = in0|out0

o6 = | -.5                 .361294+.0806396ii  1                  
     | .0560812+.496845ii  -.345688-.122686ii  -.0995275-.303491ii
     | -.312843+.390038ii  -.575119+.134847ii  -1.00317+1.13845ii 
     | -.499532+.0216369ii -.0303484+.615261ii 0                  
     ------------------------------------------------------------------------
     0                |
     .10685+.135117ii |
     1                |
     1.04563+.64657ii |

                4          4
o6 : Matrix CC    <--- CC
              53         53
i7 : det m

o7 = 1.39373833114133e-15-5.34558582120369e-18*ii

o7 : CC (of precision 53)

Ways to use PieriHomotopies :

For the programmer

The object PieriHomotopies is a method function with options.