Function Repository Resource:

MeijerGToHypergeometricPFQ

Source Notebook

Express MeijerG expressions in terms of HypergeometricPFQ

Contributed by: Jan Mangaldan

ResourceFunction["MeijerGToHypergeometricPFQ"][expr]

converts MeijerG expressions in expr to a form involving HypergeometricPFQ.

ResourceFunction["MeijerGToHypergeometricPFQ"][expr,f]

wraps f around any HypergeometricPFQ head in the result.

Details

ResourceFunction["MeijerGToHypergeometricPFQ"] uses Slater's theorem to expand out the Meijer G-function to a sum of generalized hypergeometric functions.

Examples

Basic Examples (3) 

A Meijer G-function:

In[1]:=
expr = MeijerG[{{1}, {3}}, {{2/3, 1/5}, {4}}, z]
Out[1]=

Expand in terms of generalized hypergeometric functions:

In[2]:=
res = ResourceFunction["MeijerGToHypergeometricPFQ"][expr]
Out[2]=

Verify that the two expressions are equivalent:

In[3]:=
res == expr // FunctionExpand // FullSimplify
Out[3]=

Scope (2) 

A generalized Meijer G-function:

In[4]:=
expr = MeijerG[{{}, {1}}, {{1/8, 3/8, 5/8}, {0}}, x/4, 1/4]
Out[4]=

Generate the hypergeometric representation:

In[5]:=
ResourceFunction["MeijerGToHypergeometricPFQ"][expr]
Out[5]=

Use MeijerGReduce to convert a special function to its equivalent MeijerG representation:

In[6]:=
expr = MeijerGReduce[AiryAi[z], z]
Out[6]=

The result after conversion with MeijerGToHypergeometricPFQ does not have HypergeometricPFQ terms due to autoevaluation:

In[7]:=
ResourceFunction["MeijerGToHypergeometricPFQ"][expr]
Out[7]=

Wrap the HypergeometricPFQ heads in Inactive to prevent evaluation:

In[8]:=
ResourceFunction["MeijerGToHypergeometricPFQ"][expr, Inactive]
Out[8]=

Properties and Relations (3) 

FunctionExpand always tries to convert to simpler functions whenever possible:

In[9]:=
FunctionExpand[MeijerG[{{3/4}, {}}, {{0, 1/2, 3/4}, {}}, z, 1/4]]
Out[9]=

MeijerGToHypergeometricPFQ performs a less drastic conversion:

In[10]:=
ResourceFunction["MeijerGToHypergeometricPFQ"][
 MeijerG[{{3/4}, {}}, {{0, 1/2, 3/4}, {}}, z, 1/4], Inactive]
Out[10]=

If Inactive is not supplied as the second argument, the resulting HypergeometricPFQ expressions might still autoevaluate:

In[11]:=
ResourceFunction["MeijerGToHypergeometricPFQ"][
 MeijerG[{{3/4}, {}}, {{0, 1/2, 3/4}, {}}, z, 1/4]]
Out[11]=

Possible Issues (3) 

MeijerG expressions that autoevaluate cannot be directly converted:

In[12]:=
ResourceFunction["MeijerGToHypergeometricPFQ"][
 MeijerG[{{1/2}, {}}, {{0}, {0}}, x]]
Out[12]=
In[13]:=
MeijerG[{{1/2}, {}}, {{0}, {0}}, x]
Out[13]=

Wrap MeijerG in Inactive and use Inactive as the second argument to prevent evaluation:

In[14]:=
ResourceFunction["MeijerGToHypergeometricPFQ"][
 Inactive[MeijerG][{{1/2}, {}}, {{0}, {0}}, x], Inactive]
Out[14]=

Use Activate to see the simpler expression:

In[15]:=
Activate[%]
Out[15]=

Piecewise results can be returned in some cases:

In[16]:=
ResourceFunction["MeijerGToHypergeometricPFQ"][
 MeijerG[{{1/2}, {1/3}}, {{1/5}, {1/7}}, z, 1/10]]
Out[16]=

Logarithmic cases will not be converted:

In[17]:=
ResourceFunction["MeijerGToHypergeometricPFQ"][
 MeijerG[{{}, {2}}, {{1/2, 3/2}, {}}, z]]
Out[17]=

Version History

  • 1.0.0 – 23 March 2021

Source Metadata

Related Resources

License Information