H(t) = \gamma t^d T + (1-t)^d S
where S and T are square systems (number of equations = number of variables) of polynomials over CC, t is in the interval [0,1] and d = tDegree.Here is an example with regular solutions at the ends of all homotopy paths:
i1 : R = CC[x,y]; |
i2 : S = {x^2-1,y^2-1}; |
i3 : T = {x^2+y^2-1, x*y}; |
i4 : solsS = {(1,-1),(1,1),(-1,1),(-1,-1)}; |
i5 : track(S,T,solsS) o5 = {{-4.40616e-16, -1}, {1, 1.22819e-15}, {4.40616e-16, 1}, {-1, -1.22819e-15}} o5 : List |
Another outcome of tracking a path is divergence (established heuristically). In that case the divergent paths are marked with an I (status is set to Infinity).
i6 : R = CC[x,y]; |
i7 : S = {x^2-1,y^2-1}; |
i8 : T = {x^2+y^2-1, x-y}; |
i9 : solsS = {(1,-1),(1,1),(-1,1),(-1,-1)}; |
i10 : track(S,T,solsS,gamma=>0.6+0.8*ii) o10 = {[M,t=.999998], {.707107, .707107}, [M,t=.999998], {-.707107, -.707107}} o10 : List |
Some divergent paths as well as most of the paths ending in singular (multiplicity>1) or near-singular (clustered) solutions are marked with an M (status is set to MinStepFailure).
i11 : R = CC[x,y]; |
i12 : S = {x^2-1,y^2-1}; |
i13 : T = {x^2+y^2-1, (x-y)^2}; |
i14 : solsS = {(1,-1),(1,1),(-1,1),(-1,-1)}; |
i15 : track(S,T,solsS) o15 = {[M,t=.999998], [M,t=.999998], [M,t=.999998], [M,t=.999998]} o15 : List |
Tracking in the projective space uses the homotopy corresponding to an arc of a great circle on a unit sphere in the space of homogeneous polynomial systems of a fixed degree. In particular, this is done for certified homotopy tracking (see C. Beltran and A. Leykin, "Certified numerical homotopy tracking", Experimental Mathematics 21(1): 69-83 (2012)):
i16 : R = CC[x,y,z]; |
i17 : S = {x^2-z^2,y^2-z^2}; |
i18 : T = {x^2+y^2-z^2, x*y}; |
i19 : solsS = {(1,-1,1),(1,1,1),(-1,1,1),(-1,-1,1)}; |
i20 : track(S,T,solsS,Predictor=>Certified,Normalize=>true) o20 = {{.00000107266, -.70712, .70712}, {.707125, -1.48993e-7, .707107}, {-.00000107266, .70712, .70712}, {-.707125, 1.48993e-7, --------------------------------------------------------------------------------------------------------------------------- .707107}} o20 : List |
Note that the projective tracker is invoked either if the target system is a homogenous system or if Projectivize=>true is specified.
Unspecified optional arguments (with default values null) have their actual values taken from a local hashtable of defaults controlled by the functions getDefault and setDefault.