meijerG

Meijer G-function

Description

example

meijerG(a,b,c,d,z) returns the Meijer G-Function. meijerG is element-wise in z. The input parameters a, b, c, and d are vectors that can be empty, as in meijerG([], [], 3.2, [], 1).

Examples

collapse all

syms x
meijerG(3, [], [], 2, 5)
ans =
    25

Call meijerG when z is an array. meijerG acts element-wise.

a = 2;
z = [1 2 3];
meijerG(a, [], [], [], z)
ans =
    0.3679    1.2131    2.1496

Convert numeric input to symbolic form using sym, and find the Meijer G-function. For certain symbolic inputs, meijerG returns exact symbolic output using other functions.

meijerG(sym(2), [], [], [], sym(3))
ans =
3*exp(-1/3)
meijerG(sym(2/5), [], sym(1/2), [], sym(3))
ans =
(2^(4/5)*3^(1/2)*gamma(1/10))/80

For symbolic variables or expressions, meijerG returns an output in terms of simple or special functions.

syms a b c d z
f = meijerG(a,b,c,d,z)
f =
(gamma(c - a + 1)*(1/z)^(1 - a)*hypergeom([c - a + 1, d - a + 1],...
 b - a + 1, 1/z))/(gamma(b - a + 1)*gamma(a - d))

Substitute values for the variables by using subs, and convert values to double by using double.

fVal = subs(f, [a b c d z], [1.2 3 5 7 9])
fVal =
(266*9^(1/5)*hypergeom([24/5, 34/5], 14/5, 1/9))/(25*gamma(-29/5))
double(fVal)
ans =
   5.7586e+03

Calculate fVal to higher precision using vpa.

vpa(fVal)
ans =
5758.5946416377834597597497022199

Differentiate the Meijer G-function by using diff.

syms a b c d z
mG = meijerG(a, b, c, d, z);
diffmG = diff(mG)
diffmG =
(gamma(c - a + 1)*(a - 1)*hypergeom([c - a + 1, d - a + 1],...
 b - a + 1, 1/z))/(z^2*gamma(b - a + 1)*gamma(a - d)*(1/z)^a)...
 - (gamma(c - a + 1)*(1/z)^(1 - a)*(c - a + 1)*(d - a + 1)...
*hypergeom([c - a + 2, d - a + 2], b - a + 2, 1/z))...
/(z^2*gamma(b - a + 1)*gamma(a - d)*(b - a + 1))

Show relations between meijerG and simpler functions for given parameter values.

Show that when a, b, and d are empty, and c = 0, then meijerG reduces to exp(-z).

syms z
meijerG([], [], 0, [], z)
ans =
exp(-z)

Show that when a, b, and d are empty, and c = [1/2 -1/2], then meijerG reduces to 2Kv(1,2z1/2).

meijerG([], [], [1/2 -1/2], [], z)
ans =
2*besselk(1, 2*z^(1/2))

Plot the real and imaginary values of the Meijer G-function for values of b and z, where a = [-2 2] and c and d are empty. Fill the contours by setting Fill to on.

syms b z
f = meijerG([-2 2], b, [], [], z);

subplot(2,2,1)
fcontour(real(f),'Fill','on')
title('Real Values of Meijer G')
xlabel('b')
ylabel('z')

subplot(2,2,2)
fcontour(imag(f),'Fill','on')
title('Imag. Values of Meijer G')
xlabel('b')
ylabel('z')

Input Arguments

collapse all

Input, specified as a number or vector, or a symbolic number, variable, vector, function, or expression.

Input, specified as a number or vector, or a symbolic number, variable, vector, function, or expression.

Input, specified as a number or vector, or a symbolic number, variable, vector, function, or expression.

Input, specified as a number or vector, or a symbolic number, variable, vector, function, or expression.

Input, specified as a number or vector, or a symbolic number, variable, vector, function, or expression.

More About

collapse all

Meijer G-Function

The Meijer G-function meijerG([a1,…,an],[an+1,…,ap],[b1,…,bm],[bm+1,…,bq],z) is a general function that includes other special functions as particular cases, and is defined as

Gp,qm,n(a1,,apb1,,bq|z)=12πi(j=1mΓ(bjs))(j=1nΓ(1aj+s))(j=m+1qΓ(1bj+s))(j=n+1pΓ(ajs))zsds.

Algorithms

For the Meijer G-function meijerG([a1,…,an],[an+1,…,ap],[b1,…,bm],[bm+1,…,bq],z), for ai∊(a1,…,an) and bj∊(b1,…,bm), no difference ai − bj should be a positive integer.

The Meijer G-function involves a complex contour integral with one of the following types of integration paths:

  • The contour goes from - i ∞ to i ∞ so that all poles of Γ(bjs), j = 1, …, m lie to the right of the path, and all poles of Γ(1ak+s), k = 1, …, n lie to the left of the path. The integral converges if , |arg(z)| < c π. If |arg(z)| = c π, c ≥ 0, the integral converges absolutely when p = q and (ψ) < - 1, where Ψ=(j=1qbj)(i=1pai). When pq, the integral converges if you choose the contour so that the contour points near i ∞ and - i ∞ have a real part σ satisfying (qp)σ>(ψ)+1qp2.

  • The contour is a loop beginning and ending at infinity and encircling all poles of Γ(bjs), j = 1, …, m moving in the negative direction, but none of the poles of Γ(1ak+s), k = 1, …, n. The integral converges if q ≥ 1 and either p < q or p = q and |z| < 1.

  • The contour is a loop beginning and ending at - ∞ and encircling all poles of Γ(1ak+s), k = 1, …, n moving in the positive direction, but none of the poles of Γ(bj+s), j = 1, …, m. The integral converges if p ≥ 1 and either p > q or p = q and |z| > 1.

The integral represents an inverse Laplace transform or, more specifically, a Mellin-Barnes type of integral.

For a given set of parameters, the contour chosen in the definition of the Meijer G-function is the one for which the integral converges. If the integral converges for several contours, all contours lead to the same function.

The Meijer G-function satisfies a differential equation of order max(p, q) with respect to a variable z:

((1))m+npz(i=1p(zddzai1))j=1q(zddzbj))Gp,qm,n(a1,,apb1,,bp|z)=0.

If p < q, this differential equation has a regular singularity at z = 0 and an irregular singularity at z = ∞. If p = q, the points z = 0 and z = ∞ are regular singularities, and there is an additional regular singularity at z = (−1)m + n - p.

The Meijer G-function represents an analytic continuation of the hypergeometric function [1]. For particular choices of parameters, you can express the Meijer G-function through the hypergeometric function. For example, if no two of the bh terms, h = 1, …, m, differ by an integer or zero and all poles are simple, then

Gp,qm,n(a1,,apb1,,bp|z)=h=1m(j=1m,jhΓ(bjbh))(j=1nΓ(1+bhaj))(j=m+1qΓ(1+bhbj))(j=n+1pΓ(ajbh))zbhpFq1(Ah;Bh;(1)pmnz).

Here p < q or p = q and |z| < 1. Ah denotes

Ah=1+bha1,,1+bhap.

Bh denotes

Bh=1+bhb1,,1+bhb(h1),1+bhbh+1,,1+bhbq.

Meijer G-functions with different parameters can represent the same function.

  • The Meijer G-function is symmetric with respect to the parameters. Changing the order inside each of the following lists of vectors does not change the resulting Meijer G-function: [a1, …, an], [an + 1, …, ap], [b1, …, bm], [bm + 1, …, bq].

  • If z is not a negative real number and z ≠ 0, the function satisfies the following identity:

    Gp,qm,n(a1,,apb1,,bq|z)=Gq,pn,m(1b1,,1bp1a1,,1ap|1z).

    .

  • If 0 < n < p and r = a1 - ap is an integer, the function satisfies the following identity:

    Gp,qm,n(a1,a2,,ap1,apb1,b2,,bq1,bq|z)=Gp,qm,n(ap,a2,,ap1,a1b1,b2,,bq1,bq|z).

    .

  • If 0 < m < q and r = b1 - bq is an integer, the function satisfies the following identity:

    Gp,qm,n(a1,a2,,ap1,apb1,b2,,bq1,bq|z)=(1)γGp,qm,n(a1,a2,,ap1,apbq,b2,,bq1,b1|z).

    .

According to these rules, the meijerG function call can return meijerG with modified input parameters.

References

[1] Luke, Y. L., The Special Functions and Their Approximations. Vol. 1. New York: Academic Press, 1969.

[2] Prudnikov, A. P., Yu. A. Brychkov, and O. I. Marichev, Integrals and Series. Vol 3: More Special Functions. Gordon and Breach, 1990.

[3] Abramowitz, M., I. A. Stegun, Handbook of Mathematical Functions. 9th printing. New York: Dover Publications, 1970.

See Also

Introduced in R2017b