\chapter{DEFINT: Definite Integration for REDUCE}
\label{DEFINT}
\typeout{{DEFINT: Definite Integration for REDUCE}}
{\footnotesize
\begin{center}
Kerry Gaskell and Winfried Neun \\
Konrad--Zuse--Zentrum f\"ur Informationstechnik Berlin \\
Takustra\"se 7 \\
D--14195 Berlin--Dahlem, Germany \\[0.05in]
e--mail: neun@zib.de \\[0.10in]
Stanley L. Kameny \\
Los Angeles, U.S.A.
\end{center}
}
\ttindex{DEFINT}
\REDUCE{}'s definite integration package is able to calculate the
definite integrals of many functions, including several special
functions. There are a number of parts of this package, including
contour integration. The innovative integration process is to
represent each function as a Meijer G-function, and then calculating
the integral by using the following Meijer G integration formula.
\begin{displaymath}
\int_{0}^{\infty} x^{\alpha-1} G^{s t}_{u v}
\left( \sigma x \ \Bigg\vert \ {( c_u) \atop (d_v)} \right)
G^{m n}_{p q} \left( \omega x^{l/k} \ \Bigg\vert \ {(a_p) \atop (b_q)}
\right) dx = k G^{i j}_{k l} \left( \xi \ \Bigg\vert \
{(g_k) \atop (h_l)} \right) \hspace{5mm} (1)
\end{displaymath}
The resulting Meijer G-function is then retransformed, either directly
or via a hypergeometric function simplification, to give
the answer.
The user interface is via a four argument version of the
\f{INT}\ttindex{INT} operator, with the lower and upper limits added.
\begin{verbatim}
load_package defint;
int(sin x,x,0,pi/2);
1
\end{verbatim}
\newpage
\begin{verbatim}
int(log(x),x,1,5);
5*log(5) - 4
int(x*e^(-1/2x),x,0,infinity);
4
int(x^2*cos(x)*e^(-2*x),x,0,infinity);
4
-----
125
int(x^(-1)*besselj(2,sqrt(x)),x,0,infinity);
1
int(si(x),x,0,y);
cos(y) + si(y)*y - 1
int(besselj(2,x^(1/4)),x,0,y);
1/4
4*besselj(3,y )*y
---------------------
1/4
y
\end{verbatim}
The DEFINT package also defines a number of additional transforms,
such as the Laplace transform\index{Laplace transform}\footnote{See
Chapter~\ref{LAPLACE} for an alternative Laplace transform with
inverse Laplace transform}, the Hankel
transform\index{Hankel transform}, the Y-transform\index{Y-transform},
the K-transform\index{K-transform}, the StruveH
transform\index{StruveH transform}, the Fourier sine
transform\index{Fourier sine transform}, and the Fourier cosine
transform\index{Fourier cosine transform}.
\begin{verbatim}
laplace_transform(cosh(a*x),x);
- s
---------
2 2
a - s
laplace_transform(Heaviside(x-1),x);
1
------
s
e *s
hankel_transform(x,x);
n + 4
gamma(-------)
2
-------------------
n - 2 2
gamma(-------)*s
2
fourier_sin(e^(-x),x);
s
--------
2
s + 1
fourier_cos(x,e^(-1/2*x^2),x);
2
i*s s /2
sqrt( - pi)*erf(---------)*s + e *sqrt(2)
sqrt(2)
----------------------------------------------
2
s /2
e *sqrt(2)
\end{verbatim}
It is possible to the user to extend the pattern-matching process by
which the relevant Meijer G representation for any function is found.
Details can be found in the complete documentation.
\noindent{\bf Acknowledgement:}
This package depends greatly on the pioneering work of Victor
Adamchik, to whom thanks are due.