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 bug-gsl@gnu.org 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/ _______________________________________________ Help-gsl mailing list Help-gsl@gnu.org http://lists.gnu.org/mailman/listinfo/help-gsl