Re: Converting a 3F2 to elementary functions

• To: mathgroup at smc.vnet.net
• Subject: [mg58189] Re: Converting a 3F2 to elementary functions
• From: Paul Abbott <paul at physics.uwa.edu.au>
• Date: Tue, 21 Jun 2005 06:03:38 -0400 (EDT)
• Organization: The University of Western Australia
• References: <d9632c\$q2i\$1@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```In article <d9632c\$q2i\$1 at smc.vnet.net>, carlos at colorado.edu wrote:

> In a fluid-mechanics application I need the 3F2 hypergeometric
> function (parameter m is a positive integer)
>
> g32[m_,x_]:= x^2*HypergeometricPFQ[{1,2*m-1,1},{m+1/2,2},x^2];
>
> For small m this converts (via FunctionExpand and Simplify) to
> elementary functions:
>
> g32[1,x]=   ArcSin[x]^2
> g32[2,x]=   (3*(x*Sqrt[1-x^2]+(-1+2*x^2)*ArcSin[x]))/(4*x*Sqrt[1-x^2])
> g32[3,x]=   (-5*(x*Sqrt[1-x^2]*(-3-20*x^2+20*x^4)+3*
>             (1+6*x^2-24*x^4+16*x^6)*ArcSin[x]))/(192*x^3*(1-x^2)^(3/2))
> g32[4,x]=   (7*(x*Sqrt[1-x^2]*(45+180*x^2+1324*x^4-3008*x^6+1504*x^8)+
>             15*(-3-10*x^2-80*x^4+480*x^6-640*x^8+256*x^10)*ArcSin[x]))/
>             (23040*x^5*(1-x^2)^(5/2))
>
> The conversion time grows quickly, however, as m increases:
>  m=1: 0.05 sec, m=2: 0.92 sec, m=3: 22.7 sec, m=4: 35 min
> so for m=5 I estimate several hours.
>
> Question: would there be a faster built-in way? (I would like
> to go up to m ~ 12)

Yes.

I suspect that this computation is slow, not because of a problem with
the evaluation of the 3F2, but with a set of 2F1's generated for
integral m. To see this, consider a generalization of your function:

g32[m_,n_][x_]:= x^2 HypergeometricPFQ[{1,2 m-1,1},{n+1/2,2},x^2]

This evaluates very quickly for integral m. For example try

g32[11,n][x]

However, FunctionExpand on the resulting expression, involving 2F1's of
the form

HypergeometricPFQ[{i, i}, {n + j/2}, x^2]

is _very_ slow. I do not know why the evaluation of these 2F1's is so
slow.

There is an alternative approach that is _much_ faster. Consider the
function

f[m_][z_] := HypergeometricPFQ[{1, 2 m - 1}, {m + 1/2}, z]

The (indefinite) integral of this function is equivalent to g32:

FunctionExpand[Integrate[f[m][z], z]]

z HypergeometricPFQ[{1, 1, 2 m - 1}, {2, m + 1/2}, z]

Evaluating f[m][z] for integral m is very quick, and integrating the
resulting expression is acceptably fast. For example, with m = 11, here
is the computation:

[1] Compute and simplify the integrand:

Collect[f[11][z], {ArcSin[_]}, Simplify[#, z > 0] & ]

[2] Map the integration over each term, and simplify:

FullSimplify[#, x > 0] & /@
(Collect[Integrate[#, z] & /@ %, {ArcSin[_]},
Simplify[#, z > 0] & ] /. z -> x^2)

[3] Since we've used indefinite integration, the result can differ from
the correct result by an arbitrary constant. Use Series expansion to
eliminate this constant:

% - Normal[% + O[x]]

This is the result that you're after.

[4] Here is a routine that puts this all together:

g[m_ /; m > 1][x_] := Module[{z, int, ans},
int = Collect[f[m][z], {ArcSin[_]}, Simplify[#, z > 0] & ];
ans = FullSimplify[#, x > 0] & /@ (Collect[Integrate[#, z] & /@ int,
{ArcSin[_]}, Simplify[#, z > 0] & ] /. z -> x^2);
Factor /@ (ans - Normal[ans + O[x]])]

Cheers,
Paul

--
Paul Abbott                                      Phone: +61 8 6488 2734
School of Physics, M013                            Fax: +61 8 6488 1014
The University of Western Australia         (CRICOS Provider No 00126G)
AUSTRALIA                               http://physics.uwa.edu.au/~paul
http://InternationalMathematicaSymposium.org/IMS2005/

```

• Prev by Date: Re: Re: can anyone solve this equation?
• Next by Date: Re: Re: usage messages in packages
• Previous by thread: Converting a 3F2 to elementary functions
• Next by thread: Re: Converting a 3F2 to elementary functions