Title: Polynomials

1 GSL::Poly Class

1.1 Singleton methods

GSL::Poly::new(c0, c1, c2, ....)

This creates an instance of the GSL::Poly class, which represents a polynomial

c0 + c1 x + c2 x^2 + ....
GSL::Poly::complex_solve(c0, c1, c2, ....)
GSL::Poly::solve(c0, c1, c2, ....)

These methods find the complex roots of the polynomial equation,

c0 + c1 z + c2 z^2 + .... = 0

1.2 Instance Methods

GSL::Poly#eval(x)
This method evaluates the polynomial c[0] + c[1] x + c[2] x^2 + ... + c[len-1] x^{len-1} using Horner's method for stability.
GSL::Poly#complex_solve
GSL::Poly#solve

These methods find the complex roots of the quadratic equation,

c0 + c1 z + c2 z^2 + .... = 0

2 Quadratic and Cubic Equations

Ruby/GSL provides simple methods to solve quadratic or cubic equations, by just giving three coefficients, without creating GSL::Poly objects.

2.1 Quadratic Equations

GSL::Poly::solve_quadratic(a, b, c)
GSL::Poly::solve_quadratic([a, b, c])

These methods find the real roots of the quadratic equation,

a x^2 + b x + c = 0

The coefficients are given by 3 numbers or a Ruby array, or a GSL::Vector object. The roots are returned as a Ruby array.

Note that the order of the arguments are the same as the GSL function gsl_poly_solve_quadratic, different from those of the class methods GSL::Poly::new and GSL::Poly::solve.

GSL::Poly::complex_solve_quadratic(a, b, c)
GSL::Poly::complex_solve_quadratic([a, b, c])

These methods find the complex roots of the quadratic equation,

a z^2 + b z + z = 0

The coefficients are given by 3 numbers or a Ruby array, or a GSL::Vector. The roots are returned as a Ruby array of elements of two GSL::Complex objects.

2.2 Cubic Equations

GSL::Poly::solve_cubic(same as solve_quadratic)

These method find the real roots of the cubic equation,

x^3 + a x^2 + b x + c = 0
GSL::Poly::complex_solve_cubic(same as solve_cubic)

These method find the complex roots of the cubic equation,

z^3 + a z^2 + b z + c = 0
GSL::Poly::dd_init(xa, ya)
GSL::Poly::DividedDifferenceRepresentation#eval(x)
GSL::Poly::DividedDifferenceRepresentation#taylor(xp)

3 Extensions

GSL::Poly#conv
GSL::Poly#deconv
GSL::Poly#reduce
GSL::Poly#deriv
GSL::Poly#integ

back