# inverse laplace transforms of shifts

I've been trying to get Sage to solve an ODE using Laplace transforms. Unfortunately, shifted functions appear to cause a problem for the inverse_laplace command. David Joyner's ODE book (dated 2008) says that Sage does not have the functionality to do this. Has this situation changed? Do I need to do something differently here to get this to work?

Here is a snippet of something I tried.

u=piecewise([[(0,3),0],[(3,infinity),exp(-2*(t-3))]],t)
u.laplace(t,s)
inverse_laplace(_,s,t)


The first two lines work properly, but the last line returns a formal result:

ilt(e^(-3*s)/(s + 2), s, t)

edit retag close merge delete

Sort by » oldest newest most voted

A simple implementation using the local heaviside function (see also generalized functions) is written in this question, and is such that:

var('t s')
u=piecewise([[(0,3),0],[(3,infinity),exp(-2*(t-3))]], var=t)
F(s) = u.laplace(t,s);
InverseLaplace(F, s, t)


produces $\newcommand{\Bold}{\mathbf{#1}}t \ {\mapsto}\ e^{\left(-2 \, t + 6\right)} H\left(t - 3\right)$.

more

InverseLaplace is not currently a built-in function.

I guess Maxima can't do it.

sage: inverse_laplace?
def inverse_laplace(ex, t, s):
r"""
Attempts to compute the inverse Laplace transform of
self with respect to the variable t and
transform parameter s. If this function cannot find a
solution, a formal function is returned.

(%i1) display2d:false;
(%o1) false
(%i2) f(s):=%e^(-3*s)/(s+2);
(%o2) f(s):=%e^-(3*s)/(2+s)
(%i4) ilt(f(s),t,s);
(%o4) 'ilt(%e^-(3*s)/(s+2),t,s)


Does that answer things? If you want to file an enhancement request to Maxima, please do, maybe it's not so hard for them to implement; however, presumably there are arbitrarily hard ones like this that no system could do...

more

Thanks for the help. It seems like the t-domain shifts and s-domain shifts that we teach in a standard ODE course should be reasonable to implement. Web searches indicate that there are some folks who have implemented their own code in maxima to handle this.

Ooh, maybe that could be implemented upstream, then. Can you post some links?

I'm not sure about the robustness of either of the approaches above, but they are interesting.