Further work on $specint



I continue the work on $SPECINT. On the one hand I try to improve the existing
algorithm, on the other hand I try to extend $SPECINT further. 

1. 

First I added an algorithm to calculate more general integrals of the typ
t^v*(a+t)^w. The general result of this integral can be expressed in terms of
the Hypergeometric U function. In special cases this can be transformed to a
Gammaincomplete function or a sum of Hypergeometric 1F1 functions. For w=0 we
get the result in terms of a Gamma function. This case is allready implemented
in Maxima.

For v=0 and w<>0 we get results in terms of the Gammaincomplete function:

(%i6) radcan(specint(%e^(-s*t)*(a+t)^-1,t));
(%o6) gammaincomplete(0,a*s)*%e^(a*s)

Two more general cases which transform to 1F1 functions which simplifies to Erf
functions:

(%i7) radcan(specint(%e^(-s*t)*t^(-1/2)*(a+t)^-1,t));
(%o7) (%pi-%pi*erf(sqrt(a)*sqrt(s)))*%e^(a*s);

(%i8) radcan(specint(%e^(-s*t)*t^(1/2)*(a+t)^-1,t));
(%o8) (sqrt(a)*(%pi*erf(sqrt(a)*sqrt(s))-%pi)*sqrt(s)*%e^(a*s)+sqrt(%pi))
      /(sqrt(a)*sqrt(s))

2. 

Next I have implemented a first version to integrate functions containing the
Unit Step function. I used the existing function unit_step from orthopoly. The
algorithm works in principle, but I have to do further work to do it more
generally including sums of Unit Step functions.

Here some examples with the new code:

(%i13) specint(%e^(-s*t)*unit_step(t-a),t);
(%o13) %e^(a*s)/s

(%i15) radcan(specint(%e^(-s*t)*t*unit_step(t-a),t));
(%o15) (a*s+1)*%e^(a*s)/s^2

The following result can be shown to simplify to an Erf function:

(%i17) radcan(specint(%e^(-s*t)/sqrt(%pi*t)*unit_step(t-a),t));
(%o17) gammaincomplete(1/2,a*s)*%e^(2*a*s)/(sqrt(%pi)*sqrt(s))

For integrals with the Unit Step function it would be also nice to have an
algorithm to integrate general sums like (sum unit_step(t-n*a),n,0,inf).

3.

A next step to complete the integration of the tabulated integrals would be to
integrate expressions containing the Abs function. The algorithm should be not
to difficult to implement. I am working on it.

4.

It would be nice when the Hypergeometric functions and other special functions
would be simplifying functions. I think it is not a good idea to extend $SPECINT
to give more simple and equivalent results. A more natural way would be to have
simplifying routines for the functions themselfs.

An example is the following integral (with the new algorithm for t^v*(a+t)^w):

(%i18) specint(%e^(-s*t)*(t+a)^(-3/2),t);
(%o18) gammaincomplete(-1/2,a*s)*sqrt(s)*%e^(a*s);

This result can be expressed in terms of the Erfc function with the known
special value for the Gammaincomplete function:

gammaincomplete(-1/2,z)=2*e^-z/sqrt(z)-2*sqrt(%pi)*erfc(sqrt(z))

This could be the result of a simplifying routine for the Gammaincomplete
function. 

Dieter Kaiser