Accelerating the pace of engineering and science

# meijerG

The Meijer G function

### Use only in the MuPAD Notebook Interface.

This functionality does not run in MATLAB.

## Syntax

```meijerG([[a1, …, an], [an + 1, …, ap]], [[b1, …, bm], [bm + 1, …, bq]], z)
meijerG([a1, …, an], [an + 1, …, ap], [b1, …, bm], [bm + 1, …, bq], z)
meijerG(m, n, [a1, …, ap], [b1, …, bq], z)
```

## Description

meijerG( [[ a1, …, an], [ an + 1, …, ap]], [[ b1, …, bm], [ bm + 1, …, bq]] , z) represents the Meijer G function.

The following calls are equivalent:

meijerG( [ a1, …, an], [ an + 1, …, ap], [ b1, …, bm], [ bm + 1, …, bq] , z), and

meijerG(m, n, [ a1, …, an, an + 1, …, ap], [ b1, …, bm, bm + 1, …, bq] , z).

meijerG( [[ a1, …, an], [ an + 1, …, ap]], [[ b1, …, bm], [ bm + 1, …, bq]] , z) represents the Meijer G function . The function is defined as

,

where 0 ≤ mq and 0 ≤ np. The parameters ai, bj and the argument z can be complex numbers. The integral represents an inverse Laplace transform or, more specifically, a Mellin-Barnes type of integral. See the Algorithms section for more details.

If m = 0, m = q, n = 0, n = p, p = 0, or q = 0, you can pass empty parameter lists to meijerG: [a1, …, an] = [], [an + 1, …, ap] = [], [b1, …, bm] = [], or [bm + 1, …, bq] = [].

No pair of parameters ai - bj, i = 1, …, n. j = 1, …, m, should differ by a positive integer. Thus, no pole of coincides with any pole of . Otherwise, meijerG returns an error.

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 parameters 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, the function satisfies the following identity: .

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

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

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

If at least one of the arguments is a floating-point number and all other arguments can be converted to floating-point numbers, the function returns a floating-point value.

Particular choices of parameters can reduce the Meijer G function to simpler special or elementary functions. Most special functions can be derived from the Meijer G function. In many cases, you can rewrite results involving meijerG in terms of more elementary functions using simplify or Simplify. See Example 3.

The call meijerG([[], []], [[], []], x) returns 0.

## Environment Interactions

When called with floating-point arguments, this function is sensitive to the environment variable DIGITS, which determines the numerical working precision.

## Examples

### Example 1

For exact or symbolic arguments, the meijerG function returns meijerG:

`meijerG([[1],[]], [[],[2]],x)`

`meijerG([[1], [1/2]], [[], [1/2]], PI + I)`

For floating-point arguments, meijerG returns floating-point values:

```meijerG([[1], []], [[1], [1/2]], 3.0),
meijerG([[PI], [2]], [[], [3]], 4.0),
meijerG([[I+1,2], []], [[1/(I+1), 1/2],[]], 0.5*I)```

### Example 2

The functions diff and float handle expressions involving the Meijer G function:

`diff(meijerG([[a], [b]], [[c], [d]], x), x)`

Differentiating a Meijer G function with respect to one of its parameters a1, …, bq does not generally result in Meijer G functions. Such derivatives are not implemented:

`diff(meijerG([a], [b], [c], [d], z), a)`

You can evaluate the expressions involving meierG numerically using float:

```meijerG([[1], []], [[2], [sqrt(PI)]], 3) ~=
float(meijerG([[1], []], [[2], [sqrt(PI)]], 3))```

`delete z:`

### Example 3

Particular choices of parameters can reduce the Meijer G function to simpler special or elementary functions. Use simplify or Simplify to obtain such a representation:

`simplify(meijerG([[], []], [[0], []], z))`

`simplify(meijerG([[1], []], [[1/2], [0]], z))`

`simplify(meijerG([[], []], [[1/2, -1/2], []], z))`

You can verify these relations numerically:

```z:= float(PI+I):
meijerG([[], []], [[0], []], z) = exp(-z);```

`meijerG([[1], []], [[1/2], [0]],z) = float(sqrt(PI)*erf(sqrt(z)))`

`meijerG([[], []], [[1/2, -1/2], []], z) = 2*besselK(1, 2*sqrt(z))`

## Parameters

 a1, …, ap The 'first list of parameters': arithmetical expressions b1, …, bq The 'second list of parameters': arithmetical expressions z The 'argument': an arithmetical expression m, n Integers satisfying 0 ≤ m ≤ q, 0 ≤ n ≤ p or symbolic expressions.

## Return Values

Arithmetical expression.

z

## Algorithms

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 , j = 1, …, m, lie to the right of the path, and all poles of , 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 . When pq, the integral converges if you choose the contour so that the contour points near i ∞ and - i ∞ have a real part σ satisfying .

• The contour is a loop beginning and ending at infinity and encircling all poles of , j = 1, …, m, moving in the negative direction, but none of the poles of , 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 , k = 1, …, n, moving in the positive direction, but none of the poles of , j = 1, …, m. The integral converges if p ≥ 1 and either p > q or p = q and |z| > 1.

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. To avoid confusion, 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:

.

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 (for details, see Luke in the references). 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, all poles are simple, and

,

where p < q or p = q and |z| < 1. The symbols Ah, Bh denote

and

.

## References

• Y.L. Luke, "The Special Functions and Their Approximations", Vol. 1, Academic Press, New York, 1969.

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

• M. Abramowitz and I.A. Stegun, "Handbook of Mathematical Functions", Dover Publications, New York, 9th printing, 1970.