Numerical solutions
In order to improve the quality roots, computed by eigensolvers, one can use Newton iterations for each root, assuming the roots have mutliplicity 1. Here are some functions to analyse and improve the numerical qauality of these roots.
AlgebraicSolvers.rel_error — FunctionVector of relative errors of P at the points X
AlgebraicSolvers.alpha_beta — Functionalpha, beta quantities for Newton convergence to an approximate zero.
- If alpha < 0.125, then the approximate zero is within 2*beta from Xi and Newton methods converges to it from Xi quadratically.
- If alpha < 0.02, then Newton method converges from all points in the ball of center Xi and radius 2*beta.
AlgebraicSolvers.newton_improve! — Functionnewton_improve!(Xi::Matrix, P, X=variables(P), eps::Float64=1.e-12, Nit::Int64 = 20)Improve the roots Xi of the system P by Newton iteration.
Ximatrix of n x r roots where n is the number of coordinates of the roots and r the number of rootsPis the (square) system of polynomialsXthe array of variablesepsthreshold for stoping the iteration when the relative error is smaller.Nitis the maximal number of iterations per root.