AngouriMath

Navigation

DurandKerner


← Back to list of classes

Description

Summary

Every root of a square-free polynomial with whole coefficients, to the working precision,
by the Durand–Kerner iteration: each approximation moves by p(z_i) / prod_{j != i}
(z_i - z_j)
, which is Newton's step for the root it is nearest once the others are
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
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 of 1e-110 that no root has.
#1285

Members

























Angouri © 2019-2023 · Project's repo · Site's repo · Octicons · Transparency · 4378 pages online