next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Bertini :: bertiniPosDimSolve

bertiniPosDimSolve -- a main method that is used to produce witness sets

Synopsis

Description

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. Bertini (1) writes the system to temporary files, (2) invokes Bertini's solver with TrackType => 1, (3) Bertini uses a cascade homotopy to find witness supersets in each dimension, (4) removes extra points using a membership test or local dimension test, (5) deflates singular witness points, and finally (6) decomposes using a combination of monodromy and a linear trace test

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 = {{9.83944e-68-8.625e-70*ii, 9.79349e-68+1.82104e-68*ii, .352544-.003583*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 => true
                Points => {{9.83944e-68-8.625e-70*ii, 9.79349e-68+1.82104e-68*ii, .352544-.003583*ii}}
                Slice => | .676227+.312984ii -.430765+.527252ii .795595-.72831ii -.277873+.259612ii |
                WitnessDataFileName => /var/folders/46/9b86vqxj4hjcngvy7kd7sb140000gn/T/M2-38830-0/1/witness_data
                                     3      2      2       2     3      2
                Equations => ideal (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

Ways to use bertiniPosDimSolve :

For the programmer

The object bertiniPosDimSolve is a method function with options.