Main Content

Polynomial roots

`r = roots(`

returns
the roots of the polynomial represented by `p`

)`p`

as
a column vector. Input `p`

is a vector containing `n+1`

polynomial
coefficients, starting with the coefficient of *x*^{n}.
A coefficient of `0`

indicates an intermediate power
that is not present in the equation. For example, ```
p = [3
2 -2]
```

represents the polynomial $$3{x}^{2}+2x-2$$.

The `roots`

function solves polynomial equations
of the form $${p}_{1}{x}^{n}+\mathrm{...}+{p}_{n}x+{p}_{n+1}=0$$.
Polynomial equations contain a single variable with nonnegative exponents.

Use the

`poly`

function to obtain a polynomial from its roots:`p = poly(r)`

. The`poly`

function is the inverse of the`roots`

function.Use the

`fzero`

function to find the roots of nonlinear equations. While the`roots`

function works only with polynomials, the`fzero`

function is more broadly applicable to different types of equations.

The `roots`

function considers `p`

to
be a vector with `n+1`

elements representing the `n`

th
degree characteristic polynomial of an `n`

-by-`n`

matrix, `A`

.
The roots of the polynomial are calculated by computing the eigenvalues
of the companion matrix, `A`

.

A = diag(ones(n-1,1),-1); A(1,:) = -p(2:n+1)./p(1); r = eig(A)

The results produced are the exact eigenvalues of a matrix within
roundoff error of the companion matrix, `A`

. However,
this does not mean that they are the exact roots of a polynomial whose
coefficients are within roundoff error of those in `p`

.