next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
PHCpack :: topWitnessSet

topWitnessSet -- returns a witness set and nonsolutions for the top dimensional solution set

Synopsis

Description

The method topWitnessSet constructs and embedding for the given polynomial system with the given dimension and then calls phcSolve for the computation of generic points on the solution set.

The computation of a witness set for the twisted cubic is illustrated below.
i1 : R = CC[x,y,z];
i2 : f = { x^2 - y, x^3 - z };
i3 : (w,ns) = topWitnessSet(f,1)
... calling phcEmbed ...
writing output to file /tmp/M2-7882-0/1PHCoutput
calling phc -c < /tmp/M2-7882-0/2PHCbatch > /tmp/M2-7882-0/3PHCsession
output of phc -c is in file /tmp/M2-7882-0/1PHCoutput
... calling phcSolve ...
using temporary files /tmp/M2-7882-0/4PHCinput and /tmp/M2-7882-0/4PHCoutput
... constructing a witness set ... 

o3 = ((dim=1,deg=3), {})

o3 : Sequence
i4 : dim(w)

o4 = 1
i5 : degree(w)

o5 = 3
i6 : toString equations(w)

o6 = {x^2-y+(-.874648+.484759*ii)*zz1, x^3-z+(.048529-.998822*ii)*zz1, zz1}
i7 : toString slice(w)

o7 = {(.49123-.87103*ii)*x+(.445807-.895129*ii)*y+(-.0953697+.995442*ii)*z
     +(.0354291+.999372*ii)*zz1+.993835-.110866*ii}
i8 : toString points(w)

o8 = VerticalList{{-.030517-.644344*ii, -.414248+.0393275*ii,
     .0379822+.265718*ii, 9.14817e-33-5.3926e-33*ii}, {-.751191+.40509*ii,
     .40019-.608599*ii, -.054082+.619287*ii, 3.09245e-33+1.31256e-33*ii},
     {1.71527+.597662*ii, 2.58496+2.05031*ii, 3.20853+5.06177*ii,
     -2.87176e-32-1.02038e-32*ii}}

A witness set for the twisted cubic consists of the original system, a random linear hyperplane to slice the space curve, and three generic points. Observe that the value for the last coordinate of all points equals (or is close to) zero. This last coordinate corresponds to the added slack variable. Solutions with nonzero value for the slack variable are called nonsolutions. In the example above, the list of nonsolutions returned in ns by topWitnessSet was empty.

Often the solution of the embedded system leads to solutions with nonzero slack variables as illustrated in the next example.
i9 : R = CC[x,y,z]; f = { (x^2-y)*(x-2), (x^3 - z)*(y-2), (x*y - z)*(z-2) }

        3     2              3      3                             2
o10 = {x  - 2x  - x*y + 2y, x y - 2x  - y*z + 2z, x*y*z - 2x*y - z  + 2z}

o10 : List
i11 : (w,ns) = topWitnessSet(f,1);
... calling phcEmbed ...
writing output to file /tmp/M2-7882-0/6PHCoutput
calling phc -c < /tmp/M2-7882-0/7PHCbatch > /tmp/M2-7882-0/8PHCsession
output of phc -c is in file /tmp/M2-7882-0/6PHCoutput
... calling phcSolve ...
using temporary files /tmp/M2-7882-0/9PHCinput and /tmp/M2-7882-0/9PHCoutput
... constructing a witness set ... 
i12 : dim(w)

o12 = 1
i13 : degree(w)

o13 = 3
i14 : #ns

o14 = 10

The example is constructed to contain not only the twisted cubic, but also at least one isolated point (2,2,2). This is reflected in the list of nonsolutions.

The nonsolutions may be used as start solutions in a cascade of homotopies to find generic points on lower dimensional components.

Ways to use topWitnessSet :