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}[1]{\mathbf{#1}}t \ {\mapsto}\ e^{\left(-2 \, t + 6\right)} H\left(t - 3\right)$.

more

InverseLaplace is not currently a built-in function.

( 2017-02-28 18:22:41 +0200 )edit

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.

( 2012-05-30 17:48:09 +0200 )edit

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

( 2012-05-31 15:00:41 +0200 )edit

The following appears to be a deeper patch for maxima: http://comments.gmane.org/gmane.comp.mathematics.maxima.general/33278

( 2012-06-02 00:18:27 +0200 )edit

And, this link appears to be for an approach that might be useful upstream: http://www.ma.utexas.edu/pipermail/maxima/2007/008424.html

( 2012-06-02 00:19:49 +0200 )edit

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

( 2012-06-02 00:20:33 +0200 )edit