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