Other way to a not supported inverse laplace transform with maxima?
Subject: Other way to a not supported inverse laplace transform with maxima?
From: Mark H Weaver
Date: Thu, 21 Apr 2011 18:38:57 -0400
<benoit.maisonneuve at uqconnect.edu.au> writes:
> I also have to do calculation with the Laplace transform involving the heaviside
> function.
> Is it possible to have your code for the lap and ilap functions please? That
> would be very useful...
I have attached a version of my preliminary patches, updated to work
with current Maxima (5.24.0). Note that the patch to laplac.lisp will
require recompilation of the Maxima executable.
The Heaviside step function is named hstep(t), and you should
load(hstep) if you wish to manipulate such expressions. hstep(0)=1/2.
The included patch enhances laplace(EXPR,t,s) to handle hstep and
unit_step. However, to perform inverse laplace transforms involving
piecewise functions, you should load(pwilt) and use the new function
pwilt(EXPR,s,t) which is an improved version of ilt(EXPR,s,t).
(%i2) load(pwilt)$
(%i3) laplace((t-2)^2*hstep(t-2),t,s), ratsimp;
(%o3) 2*%e^-(2*s)/s^3
(%i4) pwilt(exp(-a*s)/s,s,t);
(%o4) hstep(t-a)
(%i5) pwilt(%e^-s*(s*%e^s-s^2-2*s-2)/s^3, s,t), ratsimp;
(%o5) t-t^2*hstep(t-1)
It is also designed to handle periodic functions
(though currently it fails to detect this in some cases):
(%i6) assume(a>0);
(%o6) [a > 0]
(%i7) pwilt(1/(s*(1-%e^-(2*a*s)))-%e^-(a*s)/(s*(1-%e^-(2*a*s))), s,t);
(%o7) 'sum(hstep(t-2*%k*a)-hstep(t-2*%k*a-a),%k,0,inf)
The patch modifies desolve to use pwilt instead of ilt. It also
enhances abs_integrate.mac to support hstep functions.
Note that this is a work in progress. I wouldn't be surprised if there
are bugs. Good luck!
Best,
Mark