Solving Some Second Order Linear ODEs that Admit Hypergeometric 2F1, 1F1, and 0F1 Function Solutions
Description
Examples
This page presents a Maple set of routines - called hyper3 - implementing a systematic method for solving some second order homogeneous linear ODEs that admit non-Liouvillian hypergeometric 2F1, 1F1, and 0F1 function solutions. The implementation follows the presentation done in "On Solving second order linear ODEs admitting non-Liouvillian solutions." by L. Chan and E.S. Cheb-Terrab, Report for NSERC University research award, Department of Mathematics, Simon Fraser University, September 2001.
Given a second order homogeneous linear ODE
y⁢''=A⁡x⁢y⁢' +B⁡x⁢y
where y⁡x is the unknown and A and B are arbitrary functions of x, hyper3 constructs, whenever possible, a transformation of the form
x⁢→⁢a⁢xk⁢+⁢bc⁢xk+d,⁢yx⁢→⁢Px⁢yx
where a,b,c,d,k are constants (rational numbers or algebraic expression involving symbols) and P could be any function of x (no restrictions), such that the input DE can be recovered by applying this transformation to one of the 3 linear (seed) ODEs that admit hypergeometric 2F1, 1F1, or 0F1 function solutions. This hyper3 algorithm significantly supersedes the ones in Maple 7 and previous releases for computing hypergeometric solutions for second order linear ODEs. The approach used in hyper3 can also be extended to tackle higher order ODEs relatively easy.
Concerning the ODE seeds admitting 2F1, 1F1, and 0F1 function solutions, particular forms of them appear quite frequently in varied problems in mathematical physics.
The first ODE seed is
x⁢x−1⁢y⁢''+a+b+1⁢x−c⁢y⁢' +a⁢b⁢y=0
This is Gauss's hypergeometric equation. It has 3 regular singularities at 0, 1, and infinity, and admits the solution 2F1(a,b; c; x), in Maple written as hypergeom⁡a,b,c,x. This 2F1 seed include as particular cases the ODEs whose solution are Legendre, Jacobi, Gegenbauer, or Chebyshev polynomials as well as Elliptic integrals of the first or second kind and all arc-trigonometric functions.
The second ODE seed used by hyper3 is the confluent hypergeometric equation
x⁢y⁢''+c−x⁢y⁢' −a⁢y=0
which has a regular singularity at 0 and an irregular one at infinity; and whose solution is 1F1( a; c; x), in Maple written as hypergeom⁡a,c,x or KummerM⁡a,c,x. This 1F1 ODE includes as particular cases the ODEs whose solutions are, for example, the Kummer, Hermite, Laguerre, Cylinder, and Whittaker functions.
The third linear ODE seeds admits the solution 0F1( ; c; x), in Maple written as hypergeom⁡,c,x and is given by
c⁢y⁢' +x⁢y⁢''−y=0
This ODE has a regular singularity at 0 and also an irregular one at infinity. This 0F1 ODE includes as particular cases, for instance, the ODEs whose solutions are the Bessel, Hankel, Airy, Kelvin (all of these actually Bessel related), and all trigonometric functions.
The independent solutions to these three seed ODEs are of course known. Hence, once the equivalence under tr between an input ODE and one of these seed is resolved, (that is, the hyper3 routines find such a transformation tr) the solution to the input ODE is obtained by applying that transformation to the solution of the seed ODE.
Apart from the natural relevance these seeds have in mathematical physics problems, two other reasons motivate working with them.
They generate, through class transformations, ODE families with many of the members only admitting non-Liouvillian solutions - this is the case when these hypergeometric or special functions cannot be expressed in polynomial form or using elementary functions. Recall that for ODEs admitting Liouvillian solutions, you can use Kovacic's algorithm (See DEtools[kovacicsols].). This means hyper3 does not intersect with the target of Kovacic's algorithm (unless the hypergeometric solution admits a Liouvillian form) but mostly complements it by targeting a different problem (when the hypergeometric solution does not admit a Liouvillian form).
These three DEs are distinguished by types of singularities. This establishes a simple classification scheme of the DEs which in turn helps determine the correct seed.
None of the following 12 varied type of examples are solvable in Maple 7.
First set up the display scheme and the infolevel information to see where the solutions are obtained.
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 '
infolevel[dsolve] := 4;
infoleveldsolve≔4
Class 2F1
The following ODE has rational coefficients, no radicals, and no symbols. This ODE is mappable into "2F1".
ode[1] := diff(y(x),x,x) = 3/16*(x^2+10)*(4*x^6+16*x^4+23*x^2-10)/(x^2+2)^2/(x^2+5)^2/x^2*y(x);
ode1≔y''=3⁢x2+10⁢4⁢x6+16⁢x4+23⁢x2−10⁢y16⁢x2+22⁢x2+52⁢x2
sol[1] := dsolve(ode[1]);
Methods for second order ODEs: --- Trying classification methods --- trying a quadrature checking if the LODE has constant coefficients checking if the LODE is of Euler type trying a symmetry of the form [xi=0, eta=F(x)] checking if the LODE is missing 'y' -> Trying a Liouvillian solution using Kovacic's algorithm <- No Liouvillian solutions exists -> Trying a solution in terms of special functions: -> Bessel -> elliptic -> Legendre -> Whittaker -> hyper3: Equivalence to 1F1 under 'a power @ Moebius' -> hypergeometric -> heuristic approach -> hyper3: Equivalence to 2F1, 1F1 or 0F1 under 'a power @ Moebius' <- hyper3 successful: received ODE is equivalent to the 2F1 ODE pFq equation: _a*_b*y(x)+((_b+_a+1)*x-_c)*diff(y(x),x)+(x^2-x)*diff(y(x),x,x) = 0 Transformation resolving the equivalence: {x = 3/5*t^2/(t^2+2), y(x) = 1/t^(1/4)/(t^2+5)^(5/8)*u(t)} Values of hypergeometric parameters: [_a = 1/2, _b = 1/2], [_c = 3/4] <- hypergeometric successful <- special function solution successful
sol1≔y=c__1⁢hypergeom⁡12,12,34,3⁢x25⁢x2+10⁢x14⁢x2+558+c__2⁢hypergeom⁡34,34,54,3⁢x25⁢x2+10⁢x34⁢x2+558x2+214
These results can be tested as usual using odetest.
odetest(sol[1],ode[1]);
0
Fractional powers are also handled.
ode[2] := diff(y(x),x,x) = 1/196*x^(5/7)*(298/3*x-416/9*x^(9/7)-2385/49*x^(5/7))*y(x)/(x-x^(6/7))^2/(x+x^(6/7))^2;
ode2≔y''=x57⁢298⁢x3−416⁢x979−2385⁢x5749⁢y196⁢x−x672⁢x+x672
sol[2] := dsolve(ode[2]);
Methods for second order ODEs: --- Trying classification methods --- trying a symmetry of the form [xi=0, eta=F(x)] checking if the LODE is missing 'y' -> Trying an equivalence, under non-integer power transformations, to LODEs admitting Liouvillian solutions. -> Trying a Liouvillian solution using Kovacic's algorithm <- No Liouvillian solutions exists -> Trying a solution in terms of special functions: -> Bessel -> elliptic -> Legendre -> Whittaker -> hyper3: Equivalence to 1F1 under 'a power @ Moebius' -> hypergeometric -> heuristic approach -> hyper3: Equivalence to 2F1, 1F1 or 0F1 under 'a power @ Moebius' <- hyper3 successful: received ODE is equivalent to the 2F1 ODE pFq equation: _a*_b*y(x)+((_b+_a+1)*x-_c)*diff(y(x),x)+(x^2-x)*diff(y(x),x,x) = 0 Transformation resolving the equivalence: {x = t^(2/7), y(x) = 1/t^(45/98)/(t^(2/7)-1)^(103/84)*u(t)} Values of hypergeometric parameters: [_a = 2/3, _b = 3/2], [_c = 5/7] <- hypergeometric successful <- special function solution successful
sol2≔y=c__1⁢x4598⁢x27−110384⁢hypergeom⁡23,32,57,x27+c__2⁢x5398⁢x27−110384⁢hypergeom⁡2021,2514,97,x27
odetest(sol[2],ode[2]);
The following example is constructed here using the Maple PDEtools[dpolyform] command in such a way that it admits a JacobiP solution and has all coefficients rational and depending on three symbolic parameters a,b,c. Let the ODE solution be:
y(x)=JacobiP(a,b,c,1/x^2);
y=JacobiP⁡a,b,c,1x2
The differential polynomial form for this JacobiP function is given by:
PDEtools[dpolyform]( (9), no_Fn );
y''=−3⁢x4+−2⁢b+2⁢c⁢x2−2⁢b−2⁢c−1⁢y'x5−x−4⁢a⁢a+b+c+1⁢yx2⁢x4−1wherey≠0
ode[3] := op( [1,1], (10));
ode3≔y''=−3⁢x4+−2⁢b+2⁢c⁢x2−2⁢b−2⁢c−1⁢y'x5−x−4⁢a⁢a+b+c+1⁢yx2⁢x4−1
sol[3] := dsolve(ode[3]);
Methods for second order ODEs: --- Trying classification methods --- trying a quadrature checking if the LODE has constant coefficients checking if the LODE is of Euler type trying a symmetry of the form [xi=0, eta=F(x)] checking if the LODE is missing 'y' -> Trying a Liouvillian solution using Kovacic's algorithm <- No Liouvillian solutions exists -> Trying a solution in terms of special functions: -> Bessel -> elliptic -> Legendre -> Kummer -> hyper3: Equivalence to 1F1 under 'a power @ Moebius' -> hypergeometric -> heuristic approach -> hyper3: Equivalence to 2F1, 1F1 or 0F1 under 'a power @ Moebius' <- hyper3 successful: received ODE is equivalent to the 2F1 ODE pFq equation: _a*_b*y(x)+((_b+_a+1)*x-_c)*diff(y(x),x)+(x^2-x)*diff(y(x),x,x) = 0 Transformation resolving the equivalence: {x = 2*t^2/(t^2-1), y(x) = 1/(t^(-2*a))/((t^2-1)^a)*u(t)} Values of hypergeometric parameters: [_a = -a, _b = -b-a], [_c = -2*a-b-c] <- hypergeometric successful <- special function solution successful
sol3≔y=c__1⁢x−2⁢a⁢x2−1a⁢hypergeom⁡−a,−b−a,−2⁢a−b−c,2⁢x2x2−1+c__2⁢x2⁢a+2⁢b+2⁢c+2⁢x2−1−a−b−c−1⁢hypergeom⁡c+a+1,a+b+c+1,2+2⁢a+b+c,2⁢x2x2−1
odetest(sol[3],ode[3]);
An example having rational coefficients depending on two parameters a,b where the hypergeometric solution can be expressed in terms of Legendre functions:
ode[4] := diff(y(x),x,x) = 1/4*(3*x^8-18*x^6+(-16*a^2+27+16*b^2)*x^4+(32*a^2-32*b^2-12)*x^2-4+16*b^2)/x^2/(-1+x)^2/(x+1)^2/(-2+x^2)^2*y(x);
ode4≔y''=3⁢x8−18⁢x6+−16⁢a2+16⁢b2+27⁢x4+32⁢a2−32⁢b2−12⁢x2−4+16⁢b2⁢y4⁢x2⁢x−12⁢1+x2⁢x2−22
sol[4] := dsolve(ode[4]);
Methods for second order ODEs: --- Trying classification methods --- trying a quadrature checking if the LODE has constant coefficients checking if the LODE is of Euler type trying a symmetry of the form [xi=0, eta=F(x)] checking if the LODE is missing 'y' -> Trying a Liouvillian solution using Kovacic's algorithm <- No Liouvillian solutions exists -> Trying a solution in terms of special functions: -> Bessel -> elliptic -> Legendre -> Whittaker -> hyper3: Equivalence to 1F1 under 'a power @ Moebius' -> hypergeometric -> heuristic approach -> hyper3: Equivalence to 2F1, 1F1 or 0F1 under 'a power @ Moebius' <- hyper3 successful: received ODE is equivalent to the 2F1 ODE pFq equation: _a*_b*y(x)+((_b+_a+1)*x-_c)*diff(y(x),x)+(x^2-x)*diff(y(x),x,x) = 0 Transformation resolving the equivalence: {x = 1/2*t^2/(t^2-1), y(x) = 1/(t^(-b+1/2))/((t^2-2)^(1/2+1/2*b))*u(t)} Values of hypergeometric parameters: [_a = a+1/2, _b = -a+1/2], [_c = -b+1] <- hypergeometric successful <- special function solution successful
sol4≔y=c__1⁢x−b+12⁢x2−212+b2⁢hypergeom⁡a+12,−a+12,−b+1,x22⁢x2−2+c__2⁢xb+12⁢x2−1−b⁢x2−212+b2⁢hypergeom⁡b+a+12,b−a+12,1+b,x22⁢x2−2
odetest(sol[4],ode[4]);
Class 1F1
An example with pure rational coefficients:
ode[5] := diff(y(x),x,x) = 27*x*y(x)/(2*x+1)/(x-1)^4;
ode5≔y''=27⁢x⁢y2⁢x+1⁢x−14
sol[5] := dsolve(ode[5]);
Methods for second order ODEs: --- Trying classification methods --- trying a quadrature checking if the LODE has constant coefficients checking if the LODE is of Euler type trying a symmetry of the form [xi=0, eta=F(x)] checking if the LODE is missing 'y' -> Trying a Liouvillian solution using Kovacic's algorithm <- No Liouvillian solutions exists -> Trying a solution in terms of special functions: -> Bessel -> elliptic -> Legendre -> Whittaker -> hyper3: Equivalence to 1F1 under 'a power @ Moebius' <- hyper3 successful: received ODE is equivalent to the 1F1 ODE <- Whittaker successful <- special function solution successful
sol5≔y=c__1⁢WhittakerM⁡−12,12,4⁢x+2x−1⁢x−1+c__2⁢WhittakerW⁡−12,12,4⁢x+2x−1⁢x−1
odetest(sol[5],ode[5]);
The following ODE has rational coefficients, no radicals, and no symbols.
ode[6] := diff(y(x),x,x) = 1/36*(243+4*x^8+162*x^2+19*x^4)/(x^2+3)^2/x^2*y(x);
ode6≔y''=4⁢x8+19⁢x4+162⁢x2+243⁢y36⁢x2+32⁢x2
sol[6] := dsolve(ode[6]);
sol6≔y=c__1⁢WhittakerM⁡12,23,x23+1x+c__2⁢WhittakerW⁡12,23,x23+1x
odetest(sol[6],ode[6]);
Two examples from Kamke's book (2.16 and 2.215) involving symbolic powers:
ode[7] := diff(y(x),x,x) + (a*x^(2*c)+b*x^(c-1))*y(x)=0;
ode7≔y''+a⁢x2⁢c+b⁢xc−1⁢y=0
sol[7] := dsolve(ode[7]);
Methods for second order ODEs: --- Trying classification methods --- trying a symmetry of the form [xi=0, eta=F(x)] checking if the LODE is missing 'y' -> Trying an equivalence, under non-integer power transformations, to LODEs admitting Liouvillian solutions. -> Trying a Liouvillian solution using Kovacic's algorithm <- No Liouvillian solutions exists -> Trying a solution in terms of special functions: -> Bessel -> elliptic -> Legendre -> Whittaker -> hyper3: Equivalence to 1F1 under 'a power @ Moebius' <- hyper3 successful: received ODE is equivalent to the 1F1 ODE <- Whittaker successful <- special function solution successful
sol7≔y=c__1⁢WhittakerM⁡−I⁢ba⁢2⁢c+2,12⁢c+2,2⁢I⁢a⁢xc+1c+1⁢x−c2+c__2⁢WhittakerW⁡−I⁢ba⁢2⁢c+2,12⁢c+2,2⁢I⁢a⁢xc+1c+1⁢x−c2
odetest(sol[7],ode[7]);
ode[8] := x^2*diff(y(x),x,x) + (alpha*x^kappa+beta)*diff(y(x),x)*x + (rho*x^(2*kappa)+sigma*x^kappa+delta)*y(x);
ode8≔y''⁢x2+α⁢xκ+β⁢y'⁢x+ρ⁢x2⁢κ+σ⁢xκ+δ⁢y
sol[8] := dsolve(ode[8]);
sol8≔y=c__1⁢x−β2−κ2+12⁢ⅇ−α⁢xκ2⁢κ⁢WhittakerM⁡−β+κ−1⁢α−2⁢σ2⁢α2−4⁢ρ⁢κ,β2−2⁢β−4⁢δ+12⁢κ,α2−4⁢ρ⁢xκκ+c__2⁢x−β2−κ2+12⁢ⅇ−α⁢xκ2⁢κ⁢WhittakerW⁡−β+κ−1⁢α−2⁢σ2⁢α2−4⁢ρ⁢κ,β2−2⁢β−4⁢δ+12⁢κ,α2−4⁢ρ⁢xκκ
odetest(sol[8],ode[8]);
An ODE example with powers where the exponents are algebraic (constant) expressions depending on a parameter n:
ode[9] := diff(y(x),x,x) = (11/4 - x^(2*n) - 2*x^n)*n^2/(x^n+1)^2*x^(2*n-2)*y(x) + (n-1)/x*diff(y(x),x);
ode9≔y''=114−x2⁢n−2⁢xn⁢n2⁢x2⁢n−2⁢yxn+12+n−1⁢y'x
sol[9] := dsolve(ode[9]);
sol9≔y=c__1⁢WhittakerM⁡0,2,2⁢I⁢xn+1+c__2⁢WhittakerW⁡0,2,2⁢I⁢xn+1
odetest(sol[9],ode[9]);
The solution for Example 9 above can be entirely expressed using Bessel functions. Therefore, the solution is also of type hypergeometric 0F1.
combine( convert(sol[9], Bessel), power);
y=32⁢c__1⁢2⁢I⁢xn+152⁢BesselJ⁡2,xn+1xn+12−c__2⁢BesselK⁡2,I⁢xn+1⁢2⁢I⁢xn+152π⁢xn+12
Class 0F1
This example with rational coefficients is mappable into "0F1". This means that its solution can be entirely expressed using Bessel functions.
ode[10] := diff(y(x),x,x) = 1/20/x^2*(405*x^6-5670*x^4+58604*x^2+13720)/(3*x^2-14)^3*y(x);
ode10≔y''=405⁢x6−5670⁢x4+58604⁢x2+13720⁢y20⁢x2⁢3⁢x2−143
sol[10] := dsolve(ode[10]);
Methods for second order ODEs: --- Trying classification methods --- trying a quadrature checking if the LODE has constant coefficients checking if the LODE is of Euler type trying a symmetry of the form [xi=0, eta=F(x)] checking if the LODE is missing 'y' -> Trying a Liouvillian solution using Kovacic's algorithm <- No Liouvillian solutions exists -> Trying a solution in terms of special functions: -> Bessel -> elliptic -> Legendre -> Whittaker -> hyper3: Equivalence to 1F1 under 'a power @ Moebius' -> hypergeometric -> heuristic approach -> hyper3: Equivalence to 2F1, 1F1 or 0F1 under 'a power @ Moebius' <- hyper3 successful: received ODE is equivalent to the 0F1 ODE pFq equation: y(x)-x*diff(y(x),x,x)-diff(y(x),x)*_c = 0 Transformation resolving the equivalence: {x = 14/5*t^2/(3*t^2-14), y(x) = 1/(3*t^3-14*t)^(1/2)*u(t)} Values of hypergeometric parameters: [], [_c = 1] <- hypergeometric successful <- special function solution successful
sol10≔y=c__1⁢3⁢x3−14⁢x⁢hypergeom⁡,1,14⁢x215⁢x2−70+c__2⁢3⁢x3−14⁢x⁢BesselK⁡0,2⁢x23⁢x2−14⁢705
convert(sol[10],Bessel);
odetest(sol[10],ode[10]);
Some examples solvable by ~hyper3~ by reformulating the problem into one solvable using power @ Moebius transformations
The hyper3 routines can solve a restricted but well defined problem as explained in the Description section. Nonetheless, there are some cases where the information gathered when tackling the problem is enough to solve it even when it is not of form shown in the Description section. We called this process of "indirect equivalence" in that a simple additional change of variables makes the problem fit the one hyper3 can solve. Two different type of ODE examples illustrating this situation - written in normal form to avoid superfluous variations - where the equivalence transformation tr is not of the form "power @ Moebius", but the routines solve the ODE are as follows.
ode[11] := diff(y(x),x,x) = (x+1)/(x-1)^5*y(x);
ode11≔y''=1+x⁢yx−15
sol[11] := dsolve(ode[11]);
Methods for second order ODEs: --- Trying classification methods --- trying a quadrature checking if the LODE has constant coefficients checking if the LODE is of Euler type trying a symmetry of the form [xi=0, eta=F(x)] checking if the LODE is missing 'y' -> Trying a Liouvillian solution using Kovacic's algorithm <- No Liouvillian solutions exists -> Trying a solution in terms of special functions: -> Bessel -> elliptic -> Legendre -> Whittaker -> hyper3: Equivalence to 1F1 under 'a power @ Moebius' -> hypergeometric -> heuristic approach -> hyper3: Equivalence to 2F1, 1F1 or 0F1 under 'a power @ Moebius' <- hyper3 successful: indirect Equivalence to 0F1 under ``^ @ Moebius`` is resolved pFq equation: y(x)-x*diff(y(x),x,x)-diff(y(x),x)*_c = 0 Transformation resolving the equivalence: {x = 1/36*(1+t)^3/(t-1)^3, y(x) = 1/(1+t)*u(t)} Values of hypergeometric parameters: [], [_c = 4/3] <- hypergeometric successful <- special function solution successful
sol11≔y=c__1⁢1+x⁢hypergeom⁡,43,1+x336⁢x−13+c__2⁢hypergeom⁡,23,1+x336⁢x−13⁢x−1
odetest(sol[11],ode[11]);
ode[12] := diff(y(x),x,x) = (x+1)*(x-2)/(x-1)^6*y(x);
ode12≔y''=1+x⁢−2+x⁢yx−16
sol[12] := dsolve(ode[12]);
Methods for second order ODEs: --- Trying classification methods --- trying a quadrature checking if the LODE has constant coefficients checking if the LODE is of Euler type trying a symmetry of the form [xi=0, eta=F(x)] checking if the LODE is missing 'y' -> Trying a Liouvillian solution using Kovacic's algorithm <- No Liouvillian solutions exists -> Trying a solution in terms of special functions: -> Bessel -> elliptic -> Legendre -> Whittaker -> hyper3: Equivalence to 1F1 under 'a power @ Moebius' -> hypergeometric -> heuristic approach -> hyper3: Equivalence to 2F1, 1F1 or 0F1 under 'a power @ Moebius' <- hyper3 successful: indirect Equivalence to 0F1 under ``^ @ Moebius`` is resolved pFq equation: _a*y(x)+(x-_c)*diff(y(x),x)-x*diff(y(x),x,x) = 0 Transformation resolving the equivalence: {x = 1/16*I*2^(1/2)*(-5+t)^2/(t-1)^2, y(x) = 1/(-5+t)/exp(1/4*I*2^(1/2)*(t-3)/(t-1)^2)*u(t)} Values of hypergeometric parameters: [_a = 3/4-9/64*I*2^(1/2)], [_c = 3/2] <- hypergeometric successful <- special function solution successful
sol12≔y=c__1⁢hypergeom⁡34−9⁢I⁢264,32,I16⁢2⁢−5+x2x−12⁢−5+x⁢ⅇI4⁢2⁢x−3x−12+c__2⁢x−1⁢hypergeom⁡14−9⁢I⁢264,12,I16⁢2⁢−5+x2x−12⁢ⅇI4⁢2⁢x−3x−12
odetest(sol[12],ode[12]);
See Also
Airy
arc-trigonometric functions
Bessel
Chebyshev
combine
convert
Cylinder
DEtools
DEtools[kovacicsols]
dsolve
dsolve,algorithms
dsolve,education
dsolve,references
Elliptic
Gegenbauer
Hankel
Hermite
hypergeom
Jacobi
Kelvin
Kummer
Laguerre
Legendre
odetest
PDEtools
PDEtools[dpolyform]
trigonometric functions
Whittaker
Download Help Document