Root
Root[f,k]
represents the exact k root of the polynomial equation f[x]0.
Root[{f1,f2,…},{k1,k2,…}]
represents the last coordinate of the exact vector {a1,a2,…} such that ai is the ki root of the polynomial equation fi[a1,…,ai-1,x]0.
Root[{f,x0}]
represents the exact root of the general equation f[x]0 near x=x0.
Root[{f,x0,n}]
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.
Examples
open allclose allBasic Examples (3)
Scope (12)
Some exact values are generated automatically:
Real root of a triangular system of equations:
Real roots of an exp-log function:
Roots of an analytic function in a bounded region:
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:
Generalizations & Extensions (2)
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:
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:
Properties & Relations (8)
Extract the polynomial from a Root object:
Use ToRadicals to attempt to convert a Root object to radical 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:
Simplify combinations of Root objects:
Reduce an equation for a parameter in a Root object:
Use RootApproximant to generate Root objects from numbers:
Possible Issues (5)
Series at branch points may not be valid in all directions:

Canonicalization is only possible for parameter‐free 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:

Text
Wolfram Research (1996), Root, Wolfram Language function, https://reference.wolfram.com/language/ref/Root.html (updated 2019).
BibTeX
BibLaTeX
CMS
Wolfram Language. 1996. "Root." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2019. https://reference.wolfram.com/language/ref/Root.html.
APA
Wolfram Language. (1996). Root. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Root.html