MATLAB Function Reference
roots

Polynomial roots

Syntax

• ```r = roots(c)
```

Description

```r = roots(c) ``` returns a column vector whose elements are the roots of the polynomial `c`.

Row vector `c` contains the coefficients of a polynomial, ordered in descending powers. If `c` has `n+1` components, the polynomial it represents is .

Remarks

Note the relationship of this function to `p = poly(r)`, which returns a row vector whose elements are the coefficients of the polynomial. For vectors, `roots` and `poly` are inverse functions of each other, up to ordering, scaling, and roundoff error.

Examples

The polynomial is represented in MATLAB as

• ``````p = [1 -6 -72 -27]
``````

The roots of this polynomial are returned in a column vector by

• ```r = roots(p)
r =
12.1229
-5.7345
-0.3884
```

Algorithm

The algorithm simply involves computing the eigenvalues of the companion matrix:

• ```A = diag(ones(n-2,1),-1);
A(1,:) = -c(2:n-1)./c(1);
eig(A)
```

It is possible to prove that the results produced are the exact eigenvalues of a matrix within roundoff error of the companion matrix `A`, but this does not mean that they are the exact roots of a polynomial with coefficients within roundoff error of those in `c`.

`fzero`, `poly`, `residue`