DEtools
hyperode
return the nth order ODE having a given hypergeometric pFq or MeijerG function as solution
Calling Sequence
Parameters
Description
Examples
References
hyperode(H, y(x), n, [S1, S2, ..., Sn])
H
-
hypergeometric function; can be hypergeom⁡...,...,f⁡x or MeijerG⁡...,...,f⁡x, or a product of the form g⁡x⁢H
y(x)
dependent variable of the ODE; can be any unknown function of one variable
n
(optional) integer; differential order of the ODE to be returned
[S1, ..., Sn]
(optional) list with expressions depending on x; solutions of the ODE to be returned
Hypergeometric functions pFq⁡a1,...,ap,b1,...,bq,f⁡x, or their generalization known as MeijerG functions, can be defined in different ways. One possible way is to define them as the solutions to some linear ODEs. In connection with that approach, the hyperode routine receives as input a hypergeometric function H as a parameter, where H is constructed using one of hypergeom or MeijerG, as either
H([...], [...], f(x)), where f⁡x is an arbitrary expression depending on x, or
the product of an arbitrary expression g⁡x times H([...], [...], f(x)).
Using this input, hyperode returns the general nth order ODE having as a solution that hypergeometric function H or that product of H times g⁡x.
By identifying the general ODE underlying the definition of a hypergeometric function, this command can be of help when studying properties of these relevant functions and facilitate the understanding of related algorithms. In other cases, this ODE representation of pFq or MeijerG opens the way to computations (for example, differential elimination) that can only be performed with polynomial differential objects. See dpolyform, casesplit, DifferentialAlgebra, and rifsimp.
The ODE returned by hyperode, having a solution y⁡x=g⁡x⁢pFq⁡a1,...,ap,bi,...,bq,f⁡x (where pFq is expressed using hypergeom) is built by using the formula
∏i=1p⁡x⁢D+ai⁢y⁡x−D⁡y⁡x⁢∏i=1q⁡x⁢D+bi−1⁢y⁡x=0
where D is the differential operator ddx, followed by a change of variables
x=f⁡t,y⁡x=u⁡tg⁡x
and finally by the renaming of the variables according to
t→x,⁢u→y.
The output in this case is a linear ODE where the differential order is the largest of p and q+1.
The ODE returned by hyperode, when the input is a MeijerG generalized hypergeometric function, is built using the same process, but the formula used in the first step is:
−1p−m−n⁢x⁢∏i=1p⁡x⁢D−ai+1−∏i=1q⁡x⁢D−bi⁢y⁡x=0
where in above we assume, without loss of generality, that p is less than or equal to q, and ai and bi represent, respectively, the parameters entering the first and second lists of parameters in MeijerG. The output in this case is a qth order linear ODE.
When the differential order of the ODE to be returned is not indicated, the one implied by the given pFq or MeijerG function is used. When the differential order is indicated as an extra argument, and provided it is greater than the one implied by the hypergeometric function, the ODE is constructed in the same way as just outlined except that before proceeding, the lists [a,...], [b,...] are augmented by introducing into both of them the necessary number of additional parameters, all equal to zero.
Since the transformation shown above with arbitrary f⁡x and g⁡x represents the structure invariance group for the linear ODEs (that is, it is enough to map any linear ODE into any other one of the same differential order), then by keeping both f⁡x and g⁡x arbitrary, the ODE returned is "the most general linear ODE of a given order, written in such a way that its solution is expressed in terms of the product of a hypergeometric function (pFq or MeijerG) times an arbitrary function g(x)." Therefore, any linear ODE and its solution in terms of a hypergeometric function can be obtained from this general form by appropriately choosing f and g (see the last example).
When an optional list of additional ODE solutions [S1x,S2x,...,Snx] is given, the returned ODE is built by first using the formula explained above, and then applying to it operators of the form
Fn⁡x−D
for each Sn⁡x, where the functions Fn⁡x are adjusted so that in addition to
y⁡x=g⁡x⁢hypergeom⁡a,...,b,...,f⁡x
for all Sn⁡x,
y⁡x=Sn⁡x
is also a solution of the returned ODE.
Note: This building process raises the differential order of the returned ODE by n.
with(DEtools):
PDEtools[declare](y(x), prime=x);
y⁡x⁢will now be displayed as⁢y
derivatives with respect to⁢x⁢of functions of one variable will now be displayed with '
The general linear ODE family having as solution "2F1" (two indices in the first list and one index in the other list)
hypergeom([a,b],[c],x);
hypergeom⁡a,b,c,x
is of second order since the number of operands of the first list is two, and the number of operands of the second list plus one is not greater than two. This ODE is known as the hypergeometric ODE (or Gauss ODE) and is given by
hyperode((2),y(x)) = 0;
y⁢a⁢b+a+b+1⁢x−c⁢y'+x2−x⁢y''=0
The meaning of "1F0" can be determined by looking at the solution of the corresponding linear ODE (which is of order max( 1, 0+1 ) = 1).
hypergeom([a],[],x);
hypergeom⁡a,,x
hyperode((4),y(x));
a⁢y+x−1⁢y'
dsolve((5));
y=c__1⁢x−1−a
Hence, up to a constant c__1 (which may depend on a), 1F0 is equal to the right-hand side of the ODE solution above. An alternative approach to this result is to first convert 1F0 to an infinite sum and then perform the summation:
convert(hypergeom([a],[],x), Sum, x) assuming abs(x)<1;
∑_k1=0∞⁡pochhammer⁡a,_k1⁢x_k1_k1!
value((7)) assuming abs(x)<1;
11−xa
Equivalently, but perhaps a more black-box approach, would be a one-step conversion.
convert(hypergeom([a],[],x), StandardFunctions);
1−x−a
Consider the following statements in order to determine the meaning of the "0F0" hypergeometric function.
hypergeom([],[],x);
hypergeom⁡,,x
hyperode((10),y(x));
y−y'
dsolve((11));
y=c__1⁢ⅇx
In particular, consider the following "0F1",
hypergeom([],[1],x^2/4);
hypergeom⁡,1,x24
hyperode((13),y(x));
−x⁢y''+y⁢x−y'
dsolve((14));
y=c__1⁢BesselI⁡0,x+c__2⁢BesselK⁡0,x
or use the one-step conversion routine.
convert((13),StandardFunctions);
BesselI⁡0,x
The general third order ODE equivalent to the second order hypergeometric ODE is obtained by departing from the general hypergeometric function: "3F2", in turn obtained from 2F1 by adding one arbitrary parameter to each of the two lists.
hypergeom([a,b, r],[c, s],x);
hypergeom⁡a,b,r,c,s,x
hyperode((17),y(x)) = 0;
Test these results by using odetest.
odetest(y(x)=(17), (18));
0
The next third order ODE has as solutions both
hypergeom([1/3,2/7],[3/5], x);
hypergeom⁡27,13,35,x
and ⅇx.
hyperode((20),y(x), [exp(x)]) = 0;
odetest( y(x)=(20), (21));
odetest( y(x)=exp(x), (21));
hyperode can be used in the same way with (generalized hypergeometric) MeijerG functions as input
MeijerG( [[a],[b]], [[c],[d]], x);
MeijerG⁡a,b,c,d,x
hyperode((24), y(x)) = 0;
Comparing this output with the one for a pFq function
hyperode( hypergeom( [a,b], [c],x), y(x) ) = 0;
it is apparent that, for some values of a, b, c, and d, there is a relation between the pFq and the more general MeijerG functions. This relation is actually given by:
hypergeom([a,b],[c],f(x));
hypergeom⁡a,b,c,f⁡x
(27) = convert( (27), MeijerG);
hypergeom⁡a,b,c,f⁡x=Γ⁡c⁢MeijerG⁡1−a,−b+1,,0,1−c,−f⁡xΓ⁡a⁢Γ⁡b
Finally, the most general second order linear ODE, can be written in terms of two functions
PDEtools[declare](f(x),g(x));
f⁡x⁢will now be displayed as⁢f
g⁡x⁢will now be displayed as⁢g
f(x),g(x);
f,g
such that the ODE solution is written in terms of f and g as:
sol := y(x) = g(x) * hypergeom([a,b],[c],f(x));
sol≔y=g⁢hypergeom⁡a,b,c,f
Such a form of the general 2nd order linear ODE is obtained as follows:
hyperode(rhs(sol),y(x)) = 0;
f '6⁢g4⁢b−f⁢g3⁢g'⁢f '5⁢a−f⁢g3⁢g'⁢f '5⁢b+g'⁢g3⁢f '5⁢c+f⁢f⁢g⁢g'⁢f ''−f⁢g⁢f '⁢g''+2⁢f⁢g'2⁢f '−g'⁢g⁢f '2−g'⁢f ''⁢g+g⁢f '⁢g''−2⁢g'2⁢f '⁢g2⁢f '3⁢y+g4⁢f '5⁢f⁢a+g4⁢f '5⁢f⁢b−f '5⁢g4⁢c−f '3⁢g3⁢f⁢f⁢g⁢f ''+2⁢f⁢g'⁢f '−g⁢f '2−g⁢f ''−2⁢g'⁢f '⁢y'+f '4⁢g4⁢f⁢f−1⁢y''=0
ode := collect(isolate( (32), diff(y(x),x,x)), diff, normal);
ode≔y''=−y⁢g'g+y'⁢f ''f '+y⁢g''g−b⁢a⁢y⁢f '2f⁢f−1+f⁢a+f⁢b+f−c⁢y⁢g'g⁢f⁢f−1−f⁢a+f⁢b+f−c⁢y'f⁢f−1⁢f '−2⁢y⁢g'2g2+2⁢y'⁢g'g
Consider for instance some particular values of f and g.
f=(x -> x+1/x), g=(x -> 1);
f=x↦x+1x,g=x↦1
collect( eval(ode,{(34)}), diff, normal);
The following is the solution to this ODE.
eval(sol, {(34)});
y=hypergeom⁡a,b,c,x+1x
odetest( (36), (35) );
This is an example of an ODE family with radicals and its solution in terms of hypergeometric functions.
f=(x -> x^(2/3)+1), g=(x -> 1/(x^(2/3)+1));
f=x↦x23+1,g=x↦1x23+1
collect( eval(ode,{(38)}), diff, normal);
y''=−2⁢x⁢a+2⁢x⁢b+7⁢x+2⁢x13⁢a+2⁢x13⁢b−2⁢x13⁢c+3⁢x13⁢y'3⁢x43⁢x23+1−4⁢x23⁢a⁢b+x23⁢a+x23⁢b+x23+a⁢b+a+b−c+1⁢y9⁢x23+12⁢x43
eval(sol, {(38)});
y=hypergeom⁡a,b,c,x23+1x23+1
odetest((40), (39));
Marsden, J.E.; Sirovich, L.; and Antman, S.S. eds. Texts in Applied Mathematics. 56 vols. New York: Springer-Verlag, 1991. Vol. 8: Hypergeometric Functions and Their Applications.
Mathai, A.M. A Handbook of Generalized Special Functions for Statistical and Physical Sciences. Oxford: Clarendon Press, 1993.
See Also
dchange
DEtools[LCLM]
dsolve
equinv
intfactor
odeadvisor
odetest
Ore_algebra/annihilators
PDEtools
PDEtools[dpolyform]
redode
symgen
Download Help Document