Writes the system to temporary files
Invokes Bertini’s solver with TRACKTYPE: 1. Bertini uses a cascade homotopy to find witness supersets in each dimension, removes extra points using a membership test or local dimension test, deflates singular witness points, then factors using a combination of monodromy and a linear trace test
Stores output of Bertini in temporary file
Parses and outputs the solutions
The method bertiniPosDimSolve calls Bertini to find a numerical irreducible decomposition of the zero-set of F. The decomposition is returned as the NumericalVariety NV. Witness sets of NV contain approximations to solutions of the system F=0.
i1 : R = QQ[x,y,z] o1 = R o1 : PolynomialRing |
i2 : F = {(y^2+x^2+z^2-1)*x,(y^2+x^2+z^2-1)*y}
3 2 2 2 3 2
o2 = {x + x*y + x*z - x, x y + y + y*z - y}
o2 : List
|
i3 : S = bertiniPosDimSolve F o3 = S o3 : NumericalVariety |
i4 : S#1_0#Points -- 1_0 chooses the first witness set in dimension 1
o4 = {{-6.30271e-72-1.04447e-71*ii, 4.87739e-72-1.27795e-71*ii,
------------------------------------------------------------------------
.498229+.347753*ii}}
o4 : VerticalList
|
Each WitnessSet is accessed by dimension and then list position.
i5 : S#1 --first specify dimension
o5 = {[dim=1,deg=1]}
o5 : List
|
i6 : peek oo_0 --then list position
o6 = WitnessSet{ComponentNumber => 0 }
IsIrreducible => null
Points => {{-6.30271e-72-1.04447e-71*ii, 4.87739e-72-1.27795e-71*ii, .498229+.347753*ii}}
Slice => | -.212935+.272321i .17863-.837047i -1.03286-.771769i .395774+.389505i |
WitnessDataFileName => /var/folders/j_/gx42s4z576z_vj47_ym0j5xm0000gn/T/M2-30589-0/1/witness_data
3 2 2 2 3 2
Equations => {x + x*y + x*z - x, x y + y + y*z - y}
|
In the example, we find two components, one component has dimension 1 and degree 1 and the other has dimension 2 and degree 2. We get the same results using symbolic methods.
i7 : PD=primaryDecomposition( ideal F)
2 2 2
o7 = {ideal(x + y + z - 1), ideal (y, x)}
o7 : List
|
i8 : dim PD_0 o8 = 2 |
i9 : degree PD_0 o9 = 2 |
i10 : dim PD_1 o10 = 1 |
i11 : degree PD_1 o11 = 1 |
Variables must begin with a letter (lowercase or capital) and can only contain letters, numbers, underscores, and square brackets.