| GNU Scientific Library Reference Manual - Third Edition (v1.12) by M. Galassi, J. Davies, J. Theiler, B. Gough, G. Jungman, P. Alken, M. Booth, F. Rossi Paperback (6"x9"), 592 pages, 60 figures ISBN 0954612078 RRP £24.95 ($39.95) |
6.5 General Polynomial Equations
The roots of polynomial equations cannot be found analytically beyond the special cases of the quadratic, cubic and quartic equation. The algorithm described in this section uses an iterative method to find the approximate locations of roots of higher order polynomials.
- Function: gsl_poly_complex_workspace * gsl_poly_complex_workspace_alloc (size_t n)
- This function allocates space for a
gsl_poly_complex_workspacestruct and a workspace suitable for solving a polynomial with n coefficients using the routinegsl_poly_complex_solve.The function returns a pointer to the newly allocated
gsl_poly_complex_workspaceif no errors were detected, and a null pointer in the case of error.
- Function: void gsl_poly_complex_workspace_free (gsl_poly_complex_workspace * w)
- This function frees all the memory associated with the workspace w.
- Function: int gsl_poly_complex_solve (const double * a, size_t n, gsl_poly_complex_workspace * w, gsl_complex_packed_ptr z)
- This function computes the roots of the general polynomial
P(x) = a_0 + a_1 x + a_2 x^2 + ... + a_{n-1} x^{n-1} using
balanced-QR reduction of the companion matrix. The parameter n
specifies the length of the coefficient array. The coefficient of the
highest order term must be non-zero. The function requires a workspace
w of the appropriate size. The n-1 roots are returned in
the packed complex array z of length 2(n-1), alternating
real and imaginary parts.
The function returns
GSL_SUCCESSif all the roots are found. If the QR reduction does not converge, the error handler is invoked with an error code ofGSL_EFAILED. Note that due to finite precision, roots of higher multiplicity are returned as a cluster of simple roots with reduced accuracy. The solution of polynomials with higher-order roots requires specialized algorithms that take the multiplicity structure into account (see e.g. Z. Zeng, Algorithm 835, ACM Transactions on Mathematical Software, Volume 30, Issue 2 (2004), pp 218--236).
| ISBN 0954612078 | GNU Scientific Library Reference Manual - Third Edition (v1.12) | See the print edition |