[][src]Function bacon_sci::roots::muller_polynomial

pub fn muller_polynomial<N: ComplexField>(
    initial: (N, N, N),
    poly: &Polynomial<N>,
    tol: <N as ComplexField>::RealField,
    n_max: usize
) -> Result<Complex<<N as ComplexField>::RealField>, String>

Use Mueller's method on a polynomial. Note this usually requires complex numbers.

Givin three initial guesses of a polynomial root, use Muller's method to approximate within tol.

Returns

Ok(root) when a root has been found, Err on failure

Params

initial Triplet of initial guesses

poly the polynomial to solve the root for

tol the tolerance of relative error between iterations

n_max Maximum number of iterations

Examples

use bacon_sci::polynomial::Polynomial;
use bacon_sci::roots::muller_polynomial;
fn example() {
  let mut polynomial = Polynomial::new();
  polynomial.set_coefficient(2, 1.0);
  polynomial.set_coefficient(0, -1.0);
  let solution = muller_polynomial((0.0, 1.5, 2.0), &polynomial, 0.0001, 1000).unwrap();
}