More on enhanced laplace transforms



Hello,
 I have developed a very primitive extension to the laplace transform 
routines to deal with the kinds of discontinuous functions often taught 
in basic ODE courses.

The direct routine (i.e., taking the Laplace transform using some 
unit_step functions) is a simple wrapper around the 'specint' program in 
maxima (thanks to Dieter Kaiser for alerting me about this routine and 
its use in Laplace transforms).

The inverse routine is a pretty sloppy hack and only seems to work for 
linear combinations of polynomials and unit_step functions.

Expressions involving  direct transforms including exponential and trig 
functions are just too complicated for the present version.  The 
transforms have to be massaged first to get rid of expressions like 
exp(A*s) in the denominators, etc.

To save writing, the direct routine is called 'lap(f)' where f is a 
function of t, and
 the inverse routine is ilap(F) where F is a function of s.

Examples:
(%i26) f: sum(unit_step(t-i)*(t+1)^i,i,1,3);

(%o26) (t+1)*ustep(t-1)+(t+1)^2*ustep(t-2)+(t+1)^3*ustep(t-3)
(%i27) lap(f);

(%o27) %e^-(3*s)*((2*s^3+s^2)*%e^(2*s)+(9*s^3+6*s^2+2*s)*%e^s+64*s^3+48*s^2
                                      +24*s+6)
        /s^4
(%i28) ilap(%);

(%o28) (t-1)*ustep(t-1)+2*ustep(t-1)+(t-2)^2*ustep(t-2)+6*(t-2)*ustep(t-2)
                       
+9*ustep(t-2)+(t-3)^3*ustep(t-3)+12*(t-3)^2*ustep(t-3)
                       +48*(t-3)*ustep(t-3)+64*ustep(t-3)
(%i29) expand(%o28 -%o26);

(%o29) 0


I have put a file called 'My_laplace.mac"  on the web at
  http://janus.math.msu.edu/sen/WWW/Maxima_Laplace

in case anyone is interested.  (Note: this is new and probably has 
bugs.  All I can say is that I tested it with problems in some basic ODE 
books and it works on them).

I would appreciate any comments which might improve the code and make, 
perhaps,  a useful research tool.

-sen