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.alpha_betaFunction

alpha, 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.
source
AlgebraicSolvers.newton_improve!Function
newton_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.

  • Xi matrix of n x r roots where n is the number of coordinates of the roots and r the number of roots
  • P is the (square) system of polynomials
  • X the array of variables
  • eps threshold for stoping the iteration when the relative error is smaller.
  • Nit is the maximal number of iterations per root.
source