Re: Hypergeometric Function
- To: mathgroup at christensen.Cybernetics.NET
- Subject: [mg208] Re: [mg189] Hypergeometric Function
- From: bob Hanlon <hanlon at pafosu2.hq.af.mil>
- Date: Sun, 20 Nov 1994 20:48:20 (EDT)
> Message-Id: <9411180713.AA03873 at christensen.cybernetics.net.>
> Date: 17 Nov 1994 13:55:12 -0500
> From: Joel Storch <Joel_Storch at qmlink.draper.com>
> Subject: [mg189] Hypergeometric Function
> To: mathgroup at christensen.cybernetics.net
>
> Subject: Time:1:54 PM
> OFFICE MEMO Hypergeometric Function Date:11/17/94
>
> When performing the definite integral: Integrate[Sin[a
> x]*(Cos[x])^b,{x,0,Pi/2}] , Mathematica returned a result involving the
> generalized Hypergeometric function - "HyperGeometricpFq".
> When I tried to evaluate the result numerically (for specified a,b), it
> returned the symbolic form i.e. it did not produce a numerical value.
> What additional steps must be performed to enable a numerical
evaluation
> ? (Incidently, the second edition of Wolframs text does not contain any
> reference to the Generalized Hypergeometric Function).
>
The generalized hypergeometric function HypergeometricPFQ (3F2 in this
case) even with unit argument is not handled very effectively by
Mathematica. Cases for which closed forms exist are not reduced; and
often those that do reduce are left containing multiple Gamma functions
that should reduce further. For example,
In[1]:=
example1 = (a*Pi*Gamma[1 + b]
HypergeometricPFQ[{1/2, (1 + b)/2, 1 + b/2},
{(3 - a + b)/2, (3 + a + b)/2}, 1])/
(4*2^b*Gamma[3/2 - a/2 + b/2]*Gamma[3/2 + a/2 + b/2]) /.
{a -> 1/2, b -> 1} // Simplify
Out[1]=
1 3 7 9
Pi HypergeometricPFQ[{-, 1, -}, {-, -}, 1]
2 2 4 4
------------------------------------------
7 9
16 Gamma[-] Gamma[-]
4 4
It is shown below that this has the value 2(-1 + Sqrt[2])/3.
In[2]:=
example2 = (a*Pi*Gamma[1 + b]
HypergeometricPFQ[{1/2, (1 + b)/2, 1 + b/2},
{(3 - a + b)/2, (3 + a + b)/2}, 1])/
(4*2^b*Gamma[3/2 - a/2 + b/2]*Gamma[3/2 + a/2 + b/2]) /.
{a -> 1} // Simplify
Out[2]=
Sqrt[Pi] Gamma[1 + b]
------------------------------
b b 3 + b
2 2 Gamma[1 + -] Gamma[-----]
2 2
This can be reduced significantly by using the duplication formula for
Gamma functions:
In[3]:=
example2 //. {Gamma[1 + b] -> Gamma[2 + b] / (1 + b),
Gamma[2 + b] ->
2^(b + 3/2) Gamma[1 + b/2] Gamma[(3 + b)/2] / Sqrt[2Pi] }
Out[3]=
1
-----
1 + b
The method for handling the definite integral of interest is to use known
results for special cases and use numerical integration whenever necessary.
In[4]:=
simplifyCos = {
Cos[(((n_ /; EvenQ[n]) + x_) Pi)/2] -> (-1)^(n/2) Cos[x Pi/2],
Cos[((n_ + x_) Pi)/2] -> (-1)^((n+1)/2) Sin[x Pi/2] };
In[5]:=
g::usage = "g[a, b] is the definite integral of (Sin[a x] Cos[x]^b)
on the interval {0, Pi/2}.";
g[a_ /; N[a] == 0, b_] := 0;
g[a_, b_ /; N[b] == 0] := (1 - Cos[a Pi/2])/a //. simplifyCos;
g[a_, b_] := (1 + b g[a - 1, b -1])/(a + b) /;
IntegerQ[a] && a > 0 || IntegerQ[b] && b > 0;
(* Gradshteyn & Ryzhik, 2.537.1 *)
g[a_Integer, b_] := -g[-a, b];
g[a_, b_] :=
Module[{n = (a - b - 2)/2},
(-1)^n Sum[Binomial[n, i] (-1)^i 2^i / (b + i + 1), {i, 0, n}]
] /; EvenQ[a - b] && a - b >= 2;
(* Gradshteyn & Ryzhik, 3.632.3 *)
g[a_, b_] :=
Module[{
intgrl = (a*Pi*Gamma[1 + b]
HypergeometricPFQ[{1/2, (1 + b)/2, 1 + b/2},
{(3 - a + b)/2, (3 + a + b)/2}, 1])/
(4*2^b*Gamma[3/2 - a/2 + b/2]*Gamma[3/2 + a/2 + b/2])
},
If[ NumberQ[a] && NumberQ[b] && !NumberQ[N[intgrl]],
intgrl = NIntegrate[Sin[a x] Cos[x]^b, {x, 0, Pi/2}]
];
intgrl
];
Examples:
In[14]:=
Table[StringForm["g[``, b] = ``", n, g[n, b] // Simplify],
{n, 0, 3}] // TableForm
Out[14]//TableForm=
g[0, b] = 0
1
g[1, b] = -----
1 + b
2
g[2, b] = -----
2 + b
2 b
1 + -----
1 + b
g[3, b] = ---------
3 + b
In[15]:=
Table[StringForm["g[``, b] = ``", b + 2n, g[b + 2n, b] // Simplify],
{n, 3}] // TableForm
Out[15]//TableForm=
1
g[2 + b, b] = -----
1 + b
b
g[4 + b, b] = ------------
2
2 + 3 b + b
1 4 4
g[6 + b, b] = ----- - ----- + -----
1 + b 2 + b 3 + b
In[16]:=
Table[StringForm["g[a, ``] = ``", n, g[a, n] // Simplify],
{n, 0, 3}] // TableForm
Out[16]//TableForm=
a Pi 2
2 Sin[----]
4
g[a, 0] = ------------
a
a Pi
a + Sin[----]
2
g[a, 1] = -------------
2
-1 + a
2 a Pi
-2 + a + 2 Cos[----]
2
g[a, 2] = ---------------------
3
-4 a + a
3 a Pi
7 a - a + 6 Sin[----]
2
g[a, 3] = ----------------------
2 4
-9 + 10 a - a
For the first example above (example1):
In[17]:=
g[1/2, 1] // Simplify
Out[17]=
2 (-1 + Sqrt[2])
----------------
3
When necessary, the numerical integration is applied:
In[18]:=
g[3.4, 2.1]
Out[18]=
0.416192
------------------------
Bob Hanlon
hanlon at pafosu2.hq.af.mil