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 Temporary directory for input and output files:/var/folders/j_/gx42s4z576z_vj47_ym0j5xm0000gn/T/M2-74631-0/1 The version of Bertini you have installed on your computer was used for this run. Bertini is under ongoing development by D. Bates, J. Hauenstein, A. Sommese, and C. Wampler. o3 = S o3 : NumericalVariety |
i4 : S#1_0#Points -- 1_0 chooses the first witness set in dimension 1 o4 = {{7.04287e-72-2.03471e-71*ii, -1.11324e-71+1.99008e-71*ii, ------------------------------------------------------------------------ -.269568+.0962813*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 => {{7.04287e-72-2.03471e-71*ii, -1.11324e-71+1.99008e-71*ii, -.269568+.0962813*ii}} Slice => | -.530752-.444061i .838626+1.11211i -.578245-1.75016i -.139469-.0251951i | WitnessDataFileName => /var/folders/j_/gx42s4z576z_vj47_ym0j5xm0000gn/T/M2-74631-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.