[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## Re: [Help-gsl] Polynomial root finding

**From**: |
Brian Gough |

**Subject**: |
Re: [Help-gsl] Polynomial root finding |

**Date**: |
Sat, 14 Jan 2006 18:09:10 +0000 |

Will Leckie writes:
>* When comparing the "precision" of the two quartic solvers, I find a*
>* very small (machine-level?) difference between the roots that they*
>* find, typically 10^-30, using gsl_complex_sub() to calculate the*
>* difference between roots.*
Hello,
The error on the root should be O(eps/|f'(x)|) for a single root.
>* So, my question is, what is my advantage in using the GSL*
>* gsl_poly_complex_solve() routine to solve my quartics? I have a*
>* feeling the GSL gsl_poly_complex_solve() routine is more robust to*
>* large and small coefficients in the polynomial, because I haven't*
>* taken too much care in looking out for those in my analytic code.*
The problem with the analytic approach is that it is complicated to
take cancellation error into account (ideally, the roots should be
computed in different orders depending on the relative sizes of the
terms in the solution to minimise cancellation error). If you look at
the cubic it is complicated enough already. Using the iterative
approach avoids this complexity and so should be more robust.
If you have some examples where gsl_poly_complex_solve fails you could
report them to address@hidden as a bug, with a small example program
as a test case. Thanks.
--
Brian Gough
Network Theory Ltd,
Publishing the GSL Manual --- http://www.network-theory.co.uk/gsl/manual/