Polynomial roots

The roots function solves polynomial equations of the form p1xn+...+pnx+pn+1=0. Polynomial equations contain a single variable with nonnegative exponents. To find the roots of other types of equations, use fzero.




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 3x2+2x2.


collapse all

Roots of Quadratic Polynomial

Solve the equation $3x^2-2x-4=0$.

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

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


Roots of Quartic Polynomial

Solve the equation $x^4 - 1 = 0$.

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 x2+1, and the vector [3.13 -2.21 5.99] represents the polynomial 3.13x22.21x+5.99.

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

More About

collapse all


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


The roots function considers p to be a vector with n+1 elements representing the nth 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.

See Also

| |

Introduced before R2006a

Was this topic helpful?