Macaulay2 » Documentation
Packages » NumericalAlgebraicGeometry :: deflate
next | previous | forward | backward | up | index | toc

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 augmented polynomial system with a solution of strictly lower multiplicity projecting to P.

Apart from P, an instance of the type 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.