> | read "HermiteCT.mm"; |
> | with(HermiteCT); |
Calling sequence:
HermiteReduction(H, y)
Input: H, a hyperexponential function in y;
y, a variable name;
Output: [u, r, T], u and r are rational functions in y and T a hyperexponential function
with certificate differential-reduced such that
H = Dy(u*T) + r*T,
where r is the residual form of the shell of H.
Example 1 for HermiteReduction
> | f1 := 1/(y-1)^2; |
> | HermiteReduction(f1, y); |
Example 2 for HermiteReduction
> | f2 := sqrt(y^2+1)/(y-1)^2; |
> | HermiteReduction(f2, y); |
Calling sequence:
HermiteTelescoping(H, x, y, Dx, 'T')
Input: H, a bivariate hyperexponential function;
x, y, two variable names;
Dx, a operator name.
Output: L, a linear differential operator in Dx over F(x) and
the fifth argument 'T' is a bivariate hyperexponential
function such that
L(x, Dx)(H) = Dy(T).
T is of the form [r, exp(int(udx + vdy)]
with r a rational function and v differential-reduced w.r.t. y.
Example 1 for HermiteTelescoping
> | h1 := diff(sqrt(x-2*y)*exp(x^2*y), y); |
> | ZT1 := DETools[Zeilberger](h1, x, y, Dx); |
> | HT1 := HermiteTelescoping(h1, x, y, Dx, 'T1'); |
The estimated order of minimal telescopers is 1
Check whether two methods get the same minimal telescoper (up to a univariate rational function in F(x)).
> | degree(normal(ZT1[1]/HT1), Dx); |
> | T1; |
Example 2 for HermiteTelescoping
> | h2 := sqrt(x-2*y)*exp(x^2*y); |
> | ZT2 := DETools[Zeilberger](h2, x, y, Dx); |
> | HT2 := HermiteTelescoping(h2, x, y, Dx, 'T2'); |
The estimated order of minimal telescopers is 1
Check order 1
> | degree(normal(ZT2[1]/HT2), Dx); |
Example 3 for HermiteTelescoping
> | h3 := (1+x+4*x*y)/(11+x+y^2+x*y); |
> | ZT3 := DETools[Zeilberger](h3, x, y, Dx): |
> | HT3 := HermiteTelescoping(h3, x, y, Dx, 'T3'); |
The estimated order of minimal telescopers is 2
Check order 1
Check order 2
> | degree(normal(ZT3[1]/HT3), Dx); |
Example 4 for HermiteTelescoping
> | h4 := 1/sqrt(y*(y-1)*(y-x)); |
> | ZT4 := DETools[Zeilberger](h4, x, y, Dx); |
> | HT4 := HermiteTelescoping(h4, x, y, Dx, 'T4'); |
The estimated order of minimal telescopers is 2
Check order 1
Check order 2
> | degree(normal(ZT4[1]/HT4), Dx); |
Example 5 for HermiteTelescoping
> | h5 := sqrt(x-2*y)*exp(x^2*y); |
> | ZT5 := DETools[Zeilberger](h5, x, y, Dx); |
> | HT5 := HermiteTelescoping(h5, x, y, Dx, 'T5'); |
The estimated order of minimal telescopers is 1
Check order 1
> | degree(normal(ZT5[1]/HT5), Dx); |