REDUCE

16.65 SPECFN2: Package for special special functions

This package provides algebraic manipulations of generalized hypergeometric functions and Meijer’s G function. Generalized hypergeometric functions are simplified towards special functions and Meijer’s G function is simplified towards special functions or generalized hypergeometric functions.

Author: Victor Adamchik, with major updates by Winfried Neun.

The (generalised) hypergeometric functions

   (           |)
     a1,...,ap ||
pFq             |z
     b1,...,bq |

are defined in textbooks on special functions as

    (          || )     ∞                 n
      a1,...,ap|      ∑   (a1)n...(ap)n-z--
pFq   b1,...,bq||z   =     (b1)n...(bq)n n!
                      n=0

w where (a)n is the Pochhammer symbol

       n∏-1
(a )n =    (a + k )
       k=0

The function

     (  ||     )
  mn    | (ap)
G pq   z|| (bq)

has been studied by C. S. Meijer beginning in 1936 and has been called Meijer’s G function later on. The complete definition of Meijer’s G function can be found in [?]. Many well-known functions can be written as G functions, e.g. exponentials, logarithms, trigonometric functions, Bessel functions and hypergeometric functions.

Several hundreds of particular values can be found in [?].

16.65.1 REDUCE operator HYPERGEOMETRIC

The operator hypergeometric expects 3 arguments, namely the list of upper parameters (which may be empty), the list of lower parameters (which may be empty too), and the argument, e.g the input:

hypergeometric ({},{},z);

yields the output

 z  
e

and the input

hypergeometric ({1/2,1},{3/2},-x^2);

gives

 atan(abs(x))  
--------------  
    abs(x)

16.65.2 Extending the HYPERGEOMETRIC operator

Since hundreds of particular cases for the generalised hypergeometric functions can be found in the literature, one cannot expect that all cases are known to the hypergeometric operator. Nevertheless the set of special cases can be augmented by adding rules to the REDUCE system, e.g.

let {hypergeometric({1/2,1/2},{3/2},-(~x)^2) => asinh(x)/x};

16.65.3 REDUCE operator meijerg

The operator meijerg expects 3 arguments, namely the list of upper parameters (which may be empty), the list of lower parameters (which may be empty too), and the argument.

The first element of the lists has to be the list of the first n or m respective parameters, e.g. to describe

    (  ||  )
  10    | 1
G 11  x || 0

one has to write

 
MeijerG({{},1},{{0}},x); % and the result is:  
 
 sign( - x + 1) + sign(x + 1)  
------------------------------  
              2  

and for

    (    ||            )
  10  x2-|
G 02  4  || 1 + 1,1 - 1
               4     4

 
MeijerG({{}},{{1+1/4},1-1/4},(x^2)/4) * sqrt pi;  
 
 
                    2                    2  
 sqrt(pi)*sqrt(-----------)*sin(abs(x))*x  
                abs(x)*pi  
-------------------------------------------  
                     4  
 

Bibliography

[1]   A. P. Prudnikov, Yu. A. Brychkov, O. I. Marichev, Integrals and Series, Volume 3: More special functions, Gordon and Breach Science Publishers (1990).

[2]   R. L. Graham, D. E. Knuth, O. Patashnik, Concrete Mathematics, Addison-Wesley Publishing Company (1989).