Durand-Kerner with derivative in denominator

50 Views Asked by At

The correction term for Durand-Kerner root finding method is

$w_k = -\frac{f(z_k)}{\prod_{j\not=k}(z_k - z_j)}$

Wikipedia Talk page mentions that it is also possible to use derivative in denominator, instead of the above product.

How to form such derivative? All I have are coefficients of the polynomial and the approximations of the roots. How to come up with coefficients of the derivative so I can evaluate it with Horner scheme like I do it for evaluation of polynomial (the $f(z_k)$)?

Am I correctly assuming that the derivative is looks perhaps like $g'(x)$ where $g(x) = \prod(z_k - z_j)$?

PS: I tried to implement the expression by Bo Jacoby from the Talk page but I cannot get it to work: I tried to sum all the products of all the approximations but one and put the result into denominator but it doesn't seem to work that way...

1

There are 1 best solutions below

0
On BEST ANSWER

Yes, you assume correctly that the update can also be written as $$ w_k=-\frac{f(z_k)}{g'(z_k)}. $$

And correct, the derivative of $g$ can be written as sum of products according to its construction as product of linear factors $$ g(x)=(x-z_1)…(x-z_n) $$ (note that the leading coefficient of $g$ is $1$, so that this must also hold for $f$) $$ g'(x)=\sum_{k=1}^n\;\prod_{j\ne k}(x-z_j). $$

However, for small to medium degrees ($\deg f < 70$ or so) there is no gain in going the route via the construction of $g$ and $g'$. The standard evaluation of the products and of the value of $g'$ have about the same number of operations, and in the second case there is the overhead of constructing $g$.

For larger degrees one can use Karatsuba or FFT based methods to speed up the multi-point evaluation of $g'$ so that this way becomes faster. (But then the question is of how viable numerical results in general are due to the high degree.)