The purpose of deflation is to restore quadratic convergence of Newton's method in a neighborhood of a singular isolated solution P. This is done by constructing an augemented polynomial system with a solution of strictly lower multiplicity projecting to P.
Apart from P, a point, one can pass various things as the second argument.
i1 : CC[x,y,z] o1 = CC [x..z] 53 o1 : PolynomialRing |
i2 : F = polySystem {x^3,y^3,x^2*y,z^2} o2 = F o2 : PolySystem |
i3 : P0 = point matrix{{0.000001, 0.000001*ii,0.000001-0.000001*ii}} o3 = P0 o3 : Point |
i4 : isFullNumericalRank evaluate(jacobian F,P0) o4 = false |
i5 : r1 = deflate (F,P0) o5 = 0 |
i6 : P1' = liftPointToDeflation(P0,F,r1) o6 = P0 o6 : Point |
i7 : F1 = F.Deflation#r1 o7 = F1 o7 : PolySystem |
i8 : P1 = newton(F1,P1') o8 = P1 o8 : Point |
i9 : isFullNumericalRank evaluate(jacobian F1,P1) o9 = false |
i10 : r2 = deflate (F1,P1) o10 = 1 |
i11 : P2' = liftPointToDeflation(P1,F1,r2) o11 = P2' o11 : Point |
i12 : F2 = F1.Deflation#r2 o12 = F2 o12 : PolySystem |
i13 : P2 = newton(F2,P2') o13 = P2 o13 : Point |
i14 : isFullNumericalRank evaluate(jacobian F2,P2) o14 = true |
i15 : P = point {take(coordinates P2, F.NumberOfVariables)} o15 = P o15 : Point |
i16 : assert(residual(F,P) < 1e-50) |
The object deflate is a method function with options.