# 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 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:

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  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:

Introduced in 1996
(3.0)
|
Updated in 2007
(6.0)
2008
(7.0)
2012
(9.0)
2019
(12.0)