next | previous | forward | backward | up | top | index | toc | Macaulay2 website
NumericalAlgebraicGeometry :: deflate

deflate -- first-order deflation

Synopsis

Description

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.

The option Variable specifies the base name for the augmented variables.
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)	

Caveat

Needs more documentation!!!

See also

Ways to use deflate :

For the programmer

The object deflate is a method function with options.