AngouriMath
AngouriMath.Functions.Algebra.NumericalSolving
Classes within the AngouriMath.Functions.Algebra.NumericalSolving namespace
DurandKerner
Summary
Every root of a square-free polynomial with whole coefficients, to the working precision,
by the Durand–Kerner iteration: each approximation moves byp(z_i) / prod_{j != i} , which is Newton's step for the root it is nearest once the others are
(z_i - z_j)
close to theirs, so the iteration converges to all the roots at once and quadratically at
the end.
Remarks
All the roots or none: a sum over the roots of a polynomial that is missing one is a wrong
answer, so where the iteration does not settle, or settles on two approximations too close
to tell apart, there is no answer. A square-free polynomial has no repeated root, so two
approximations that close mean the iteration has not separated them.
The coefficients are real, so the non-real roots come in conjugate pairs, and a root whose #1285
imaginary part is smaller than half the separation that was checked is real: were it not,
it and its conjugate would be closer together than that. It is written as a real number
then, rather than as one with an imaginary part of1e-110 that no root has.
NewtonSolver
Angouri © 2019-2023 · Project's repo · Site's repo · Octicons · Transparency · 4405 pages online