# DifferentialRoot

DifferentialRoot[lde][x]

gives the holonomic function , specified by the linear differential equation lde[h,x].

DifferentialRoot[lde]

represents a pure holonomic function .

# Details  • Mathematical function, suitable for both symbolic and numerical manipulation; also known as holonomic function and D-finite function.
• The holonomic function defined by a DifferentialRoot function satisfies a holonomic differential equation with polynomial coefficients and initial values .
• DifferentialRoot can be used like any other mathematical function.
• FunctionExpand will attempt to convert DifferentialRoot functions in terms of special functions.
• The functions representable by DifferentialRoot include a large number of special functions.
• DifferentialRootReduce can convert most special functions to DifferentialRoot functions.
• Holonomic functions are closed under many operations, including:
• , constant multiple, integer power , sums and products , , composition with polynomial, rational, and algebraic functions convolution , derivatives and integrals
• DifferentialRoot is automatically generated by functions such as Integrate, DSolve, and GeneratingFunction.
• Functions such as Integrate, D, SeriesCoefficient, and DSolve work with DifferentialRoot inputs.
• DifferentialRoot can be evaluated to arbitrary numerical precision.
• DifferentialRoot automatically threads over lists.
• DifferentialRoot[lde,pred] represents a solution restricted to avoid cuts in the complex plane defined by pred[z], where pred[z] can contain equations and inequalities.

# Examples

open allclose all

## Basic Examples(2)

Define f to be the sin function:

Plot its result:

Evaluate numerically to any precision:

Compare the result with the built-in Sin function:

Solve a differential equation:

Numerical values:

## Scope(23)

### Numerical Evaluation(7)

Evaluate at machine precision:

Evaluate to high precision:

The precision of the output tracks the precision of the input:

DifferentialRoot takes complex number parameters and arguments:

DifferentialRoot takes inexact input parameters:

Evaluate DifferentialRoot efficiently at high precision:

DifferentialRoot threads elementwise over lists and matrices:

### Function Properties(5)

DifferentialRoot objects have all the standard features of a mathematical function:

Integrate the function:

Differentiate it:

Find its series expansion:

Plot it on the reals:

Plot it in the complex plane:

Simple exact values are generated automatically:

Use FunctionExpand to attempt to convert a DifferentialRoot object to a built-in mathematical function:

DifferentialRoot works on equations with rational coefficients:

Inhomogeneous holonomic equations are automatically transformed to higher-order homogeneous ones:

### Differentiation(4)

The derivative of DifferentialRoot is a DifferentialRoot function:

Differentiate a DifferentialRoot object with respect to a parameter:

Compute higher-order derivatives of a DifferentialRoot object:

Differentiate a DifferentialRoot object:

Specific values of :

Plot of :

### Integration(4)

The integral of a DifferentialRoot object is a DifferentialRoot object:

Compute higher-order integrals of a DifferentialRoot object:

Compute the definite integral of a DifferentialRoot object:

Integrate a DifferentialRoot object:

Specific values of :

Plot of :

### Series Expansions(3)

Calculate the series expansion of a DifferentialRoot object:

Find the  coefficient of the Taylor expansion of a DifferentialRoot object:

Calculate the first 9 coefficients:

Compare with the Sin function expansion coefficients:

Calculate the series expansion of a DifferentialRoot object with a parameter:

## Generalizations & Extensions(1)

Equations with holonomic constant terms are automatically lifted to polynomial coefficients:

## Applications(4)

Generate a DifferentialRoot object from a special function:

Integrate it:

DifferentialRoot objects have all the standard features of a mathematical function:

Find the coefficients of the series expansion of a DifferentialRoot object:

Calculate the first 5 coefficients of the expansion explicitly:

Compute arbitrary-order derivatives of a DifferentialRoot object:

Integrate the DifferentialRoot object:

Extract the differential equation and initial conditions of the function that is the integral of f:

Plot the function f, its integral and derivative functions:

Use DifferentialRoot to homogenize a differential equation:

Extract the homogenized equation:

Generate a DifferentialRoot object that is a combination of two mathematical functions:

Extract the differential equation and initial conditions that this function obeys:

## Properties & Relations(5)

DifferentialRootReduce generates DifferentialRoot objects:

DSolve generates a DifferentialRoot object if the solution is not available in known functions:

GeneratingFunction may generate a DifferentialRoot object:

Integrate returns a DifferentialRoot object for general holonomic functions:

D returns a DifferentialRoot object for general holonomic functions:

## Possible Issues(3)

DifferentialRoot takes only linear differential equations with polynomial coefficients: DifferentialRoot will not evaluate if the initial values are given at a singular point: The branch cut structure of a built-in function may differ from the automatically computed branch cut structure:

For some regions of the complex plane, the value of f differs from corresponding built-in function value:

For other regions, DifferentialRoot will give the same result:

## Neat Examples(1)

Solve a differential equation that is unsolved in known mathematical functions:

Calculate the numerical values of this solution:

Plot this solution:

Differentiate this solution: