Converting other representations to holonomic

Converting hypergeometric functions

sympy.holonomic.holonomic.from_hyper(func, x0=0, evalf=False)[source]

Converts a hypergeometric function to holonomic. func is the Hypergeometric Function and x0 is the point at which initial conditions are required.

Examples

>>> from sympy.holonomic.holonomic import from_hyper, DifferentialOperators
>>> from sympy import symbols, hyper, S
>>> x = symbols('x')
>>> from_hyper(hyper([], [S(3)/2], x**2/4))
HolonomicFunction((-x) + (2)*Dx + (x)*Dx**2, x, 1, [sinh(1), -sinh(1) + cosh(1)])

Converting Meijer G-functions

sympy.holonomic.holonomic.from_meijerg(func, x0=0, evalf=False, initcond=True, domain=QQ)[source]

Converts a Meijer G-function to Holonomic. func is the G-Function and x0 is the point at which initial conditions are required.

Examples

>>> from sympy.holonomic.holonomic import from_meijerg, DifferentialOperators
>>> from sympy import symbols, meijerg, S
>>> x = symbols('x')
>>> from_meijerg(meijerg(([], []), ([S(1)/2], [0]), x**2/4))
HolonomicFunction((1) + (1)*Dx**2, x, 0, [0, 1/sqrt(pi)])

Converting symbolic expressions

sympy.holonomic.holonomic.expr_to_holonomic(func, x=None, x0=0, y0=None, lenics=None, domain=None, initcond=True)[source]

Converts a function or an expression to a holonomic function.

Parameters:

func:

The expression to be converted.

x:

variable for the function.

x0:

point at which initial condition must be computed.

y0:

One can optionally provide initial condition if the method isn’t able to do it automatically.

lenics:

Number of terms in the initial condition. By default it is equal to the order of the annihilator.

domain:

Ground domain for the polynomials in \(x\) appearing as coefficients in the annihilator.

initcond:

Set it false if you don’t want the initial conditions to be computed.

See also

meijerint._rewrite1, _convert_poly_rat_alg, _create_table

Examples

>>> from sympy.holonomic.holonomic import expr_to_holonomic
>>> from sympy import sin, exp, symbols
>>> x = symbols('x')
>>> expr_to_holonomic(sin(x))
HolonomicFunction((1) + (1)*Dx**2, x, 0, [0, 1])
>>> expr_to_holonomic(exp(x))
HolonomicFunction((-1) + (1)*Dx, x, 0, [1])