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.