Next: , Previous: Evaluating Polynomials, Up: Polynomial Manipulations


27.2 Finding Roots

Octave can find the roots of a given polynomial. This is done by computing the companion matrix of the polynomial (see the compan function for a definition), and then finding its eigenvalues.

— Function File: roots (v)

For a vector v with N components, return the roots of the polynomial

          v(1) * z^(N-1) + ... + v(N-1) * z + v(N)
     

As an example, the following code finds the roots of the quadratic polynomial

          p(x) = x^2 - 5.
     
          c = [1, 0, -5];
          roots(c)
          =>  2.2361
          => -2.2361
     

Note that the true result is +/- sqrt(5) which is roughly +/- 2.2361.

     
     
See also: compan.

— Function File: compan (c)

Compute the companion matrix corresponding to polynomial coefficient vector c.

The companion matrix is

               _                                                        _
              |  -c(2)/c(1)   -c(3)/c(1)  ...  -c(N)/c(1)  -c(N+1)/c(1)  |
              |       1            0      ...       0             0      |
              |       0            1      ...       0             0      |
          A = |       .            .   .            .             .      |
              |       .            .       .        .             .      |
              |       .            .           .    .             .      |
              |_      0            0      ...       1             0     _|
     

The eigenvalues of the companion matrix are equal to the roots of the polynomial.

     
     
See also: poly, roots, residue, conv, deconv, polyval, polyderiv, polyinteg.