# roots

Polynomial roots

The `roots` function solves polynomial equations of the form ${p}_{1}{x}^{n}+...+{p}_{n}x+{p}_{n+1}=0$. Polynomial equations contain a single variable with nonnegative exponents. To find the roots of other types of equations, use `fzero`.

## Description

example

````r = roots(p)` returns the roots of the polynomial represented by `p` as a column vector.`p` is a vector containing `n+1` polynomial coefficients, starting with the coefficient of xn. 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$.```

## Examples

collapse all

### Roots of Quadratic Polynomial

Solve the equation .

Create a vector to represent the polynomial, then find the roots.

```p = [3 -2 -4]; r = roots(p) ```
```r = 1.5352 -0.8685 ```

### Roots of Quartic Polynomial

Solve the equation .

Create a vector to represent the polynomial, then find the roots.

```p = [1 0 0 0 -1]; r = roots(p) ```
```r = -1.0000 + 0.0000i 0.0000 + 1.0000i 0.0000 - 1.0000i 1.0000 + 0.0000i ```

## Input Arguments

collapse all

### `p` — Polynomial coefficientsvector

Polynomial coefficients, specified as a vector. For example, the vector `[1 0 1]` represents the polynomial ${x}^{2}+1$, and the vector `[3.13 -2.21 5.99]` represents the polynomial $3.13{x}^{2}-2.21x+5.99$.

Data Types: `single` | `double` | `int8` | `int16` | `int32` | `int64` | `uint8` | `uint16` | `uint32` | `uint64`
Complex Number Support: Yes

collapse all

### Tips

• Use the `poly` function to obtain a polynomial from its roots: `p = poly(r)`. The `poly` function is the inverse of the `roots` function.

### Algorithms

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`.