Re: Converting a 3F2 to elementary functions
- To: mathgroup at smc.vnet.net
- Subject: [mg58200] Re: Converting a 3F2 to elementary functions
- From: carlos at colorado.edu
- Date: Wed, 22 Jun 2005 01:55:42 -0400 (EDT)
- References: <d9632c$q2i$1@smc.vnet.net><d98q4r$epb$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi Paul: I followed a variation of your recommendation, using series matching and avoiding any built-ins: H3F2ElementaryForm[m_,x_]:= Module[{g32m,P,Q,PQ,mp,mneg,cs,c,cgs,v,eqs, sol,Pm,Qm,PmN,PmD,QmN,QmD,PQm}, g32m[mm_,xx_]:= xx*HypergeometricPFQ[{1,2*mm-1,1},{mm+1/2,2},xx]; P[mm_,xx_]:=Sum[p[j]*xx^(2*j-2),{j,1,2*mm-3}]/((1-xx^2)^(mm-2)*(xx^2)^(mm-2)); Q[mm_,xx_]:=Sum[q[j]*xx^(2*j-2),{j,1,2*mm-2}]/(xx*(1-xx^2)^(mm-2+1/2)*(xx^2)^(mm-2)); mp=6*m-8; mneg=2*m-4; PQ=P[m,x]+Q[m,x]*ArcSin[x]; PQ=Simplify[PQ]; cs=Normal[Series[PQ,{x,0,mp}]]; c=CoefficientList[x^mneg*cs,x]; cgs=Normal[Series[g32m[m,x^2],{x,0,mp}]]; cg=CoefficientList[x^mneg*cgs,x]; v=Flatten[Join[{Table[p[j],{j,1,2*m-3}],Table[q[j],{j,1,2*m-2}]}]]; eqs={}; For[i=1,i<=Length[cg],i++, If [c[[i]]==cg[[i]],Continue[]]; AppendTo[eqs,c[[i]]==cg[[i]]] ]; Print["no of eqs & vars=",{Length[eqs],Length[v]}]; sol=Solve[eqs,v]; (*Print[sol];*) Pm=P[m,x]/.sol[[1]]; Qm=Q[m,x]/.sol[[1]]; PmN=Numerator[Pm]; QmN=Numerator[Qm]; PmD=Denominator[Pm]; QmD=Denominator[Qm]; PQm=(Factor[PmN]/PmD)+(Factor[QmN]/QmD)*ArcSin[x]; Return[PQm]]; ClearAll[p,q,m,x,y]; mmax=12; g32tab=Table[0,{mmax}]; g32tab[[1]]=ArcSin[x]^2; For [m=2,m<=mmax,m++, PQm=H3F2ElementaryForm[m,x]; g32tab[[m]]=PQm; g32tab[[m]]=PQm ]; Print[g32tab]; This is reasonably fast. On a mac G4 laptop I timed it at 0.15, 0.72, 0.68, 02.28, 1.65, 5.27, 3.48, 12.16, 25.02, 12.0 sec for m=2,3,...12 I projected the original method at 10^34 years for m=12. Cant wait that long, paper is due next month. Many thanks.