represents the exact k^(th) root of the polynomial equation f[x]0.


represents the last coordinate of the exact vector {a1,a2,} such that ai is the ki^(th) root of the polynomial equation fi[a1,,ai-1,x]0.


represents the exact root of the general equation f[x]0 near x=x0.


represents n roots of the equation f[x]0 near x=x0.

Details and Options

  • f must be a Function object such as (#^5-2#+1)&.
  • Root[f,k] is automatically reduced so that f has the smallest possible degree and smallest integer coefficients.
  • The ordering used by Root[f,k] takes real roots to come before complex ones, and takes complex conjugate pairs of roots to be adjacent.
  • The coefficients in the polynomial f[x] can involve symbolic parameters.
  • For linear and quadratic polynomials f[x], Root[f,k] is automatically reduced to explicit rational or radical form.
  • For other polynomials, ToRadicals can be used to convert to explicit radicals.
  • In Root[{f1,f2,},{k1,k2,}], fi must be a Function object with i formal parameters, and fi[a1,,ai-1,x] should be a polynomial in x of degree at least ki.
  • If for all i, fi[x1,,xi] is a polynomial in x1,,xi with rational number coefficients, then RootReduce can be used to represent Root[{f1,f2,},{k1,k2,}] in the Root[f,k] form.
  • Root[{f,x0}] represents an exact root of the general equation f[x]0, which can be transcendental.
  • In Root[{f,x0}], x0 must be an approximate real or complex number such that exactly one root of f[x] lies within the numerical region defined by its precision.
  • Root[{f,x0,n}] represents n roots, counting multiplicity, that lie within the numerical region defined by the precision of x0.
  • N finds the approximate numerical value of a Root object.
  • Operations such as Abs, Re, Round, and Less can be used on Root objects.
  • Root[f,k] is treated as a numeric quantity if f contains no symbolic parameters.
  • Root by default isolates the complex roots of a polynomial using validated numerical methods. SetOptions[Root,ExactRootIsolation->True] will make Root use symbolic methods that are usually much slower.
  • In StandardForm, Root[] is printed as , where approx is a numerical approximation to the root. It still represents an exact number and can be evaluated to arbitrary precision.


open allclose all

Basic Examples  (3)

Solution to a quintic:

Numerical values:

Real solutions to an exp-log equation:

Real solution to a system of equations:

Scope  (12)

Some exact values are generated automatically:

Evaluate to high precision:

Roots of a polynomial:

Real root of a triangular system of equations:

Real roots of an exp-log function:

Roots of an analytic function in a bounded region:

A triple root:

Roots of a polynomial with symbolic coefficients:

Roots of a quadratic with symbolic coefficients:

When a, b, c and the roots are real, the roots are always ordered by their values:

The "standard" formulas for the roots of a quadratic do not guarantee the ordering of roots:

Find the series with respect to a parameter:

Complex components of roots:

Exact comparisons:

Generalizations & Extensions  (2)

Algebraic number coefficients are automatically lifted to integers:

An alternative way of representing the same number:

Find Puiseux series at branch points:

Options  (1)

ExactRootIsolation  (1)

The setting of ExactRootIsolation is reflected in the third argument of a Root object:

Root isolation is performed the first time the numerical value of the root is needed:

The symbolic complex root isolation method is usually slower than the validated numeric one:

The root isolation method may affect the ordering of nonreal roots:

Applications  (17)

Solve polynomial equations of any degree in closed form in terms of Root:

Solve the characteristic equation of a Hilbert matrix:

Using Eigenvalues:

Find the minimum of a parameterized polynomial:

Solve a constant coefficient differential equation of any degree:

Solve a constant coefficient difference equation of any degree:

Find a solution of a triangular system of equations:

Represent the solution in the Root[f,k] form:

Here, the Root[f,k] representation would involve a polynomial of degree 1000000:

Compute an approximate value of the solution:

Resolve a piecewise function:

Solve univariate exp-log equations and inequalities over the reals:

Solve univariate elementary function equations over bounded intervals and regions:

Solve univariate analytic equations over bounded intervals and regions:

Find real roots of high-degree sparse polynomials and algebraic functions:

Solve univariate transcendental optimization problems:

Integrate a piecewise function with an exp-log inequality condition:

Evaluate the hard hexagon entropy constant:

Solve Kepler's equation:

Compute the Laplace limit constant:

Plot a root as a function of a parameter:

Properties & Relations  (8)

Extract the polynomial from a Root object:

Use ToRadicals to attempt to convert a Root object to radical ^(th) roots:

This root of a cubic polynomial can be expressed in terms of cube roots:

Series expansions of implicit solutions to equations:

Use RootReduce to canonicalize algebraic numbers, including from operations:

From a triangular system:

Simplify combinations of Root objects:

Reduce an equation for a parameter in a Root object:

Use RootApproximant to generate Root objects from numbers:

Roots are numeric expressions:

Possible Issues  (5)

Series at branch points may not be valid in all directions:

Canonicalization is only possible for parameterfree roots:

Parameterized roots can have complicated branch cuts in the complex parameter plane:

A non-polynomial Root object may represent a cluster of distinct roots:

Numerical computation with a higher precision yields an approximation of one of the roots:

The choice of root stays the same for subsequent computations:

A larger setting for $MaxExtraPrecision can be needed for roots with noninteger coefficients:

Neat Examples  (1)

A high power of a Pisot number that is nearly an integer:

Wolfram Research (1996), Root, Wolfram Language function, (updated 2019).


Wolfram Research (1996), Root, Wolfram Language function, (updated 2019).


@misc{reference.wolfram_2020_root, author="Wolfram Research", title="{Root}", year="2019", howpublished="\url{}", note=[Accessed: 21-January-2021 ]}


@online{reference.wolfram_2020_root, organization={Wolfram Research}, title={Root}, year={2019}, url={}, note=[Accessed: 21-January-2021 ]}


Wolfram Language. 1996. "Root." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2019.


Wolfram Language. (1996). Root. Wolfram Language & System Documentation Center. Retrieved from