Ask Your Question

inverse laplace transforms of shifts

asked 2012-05-29 10:39:07 -0500

calc314 gravatar image

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.


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

ilt(e^(-3*s)/(s + 2), s, t)
edit retag flag offensive close merge delete

2 answers

Sort by ยป oldest newest most voted

answered 2017-02-19 14:06:26 -0500

mforets gravatar image

updated 2017-02-19 14:08:34 -0500

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)$.

edit flag offensive delete link more


InverseLaplace is not currently a built-in function.

calc314 gravatar imagecalc314 ( 2017-02-28 11:22:41 -0500 )edit

answered 2012-05-29 18:48:02 -0500

kcrisman gravatar image

I guess Maxima can't do it.

sage: inverse_laplace?
def inverse_laplace(ex, t, s):
    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...

edit flag offensive delete link 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.

calc314 gravatar imagecalc314 ( 2012-05-30 10:48:09 -0500 )edit

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

kcrisman gravatar imagekcrisman ( 2012-05-31 08:00:41 -0500 )edit

The following appears to be a deeper patch for maxima:

calc314 gravatar imagecalc314 ( 2012-06-01 17:18:27 -0500 )edit

And, this link appears to be for an approach that might be useful upstream:

calc314 gravatar imagecalc314 ( 2012-06-01 17:19:49 -0500 )edit

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

calc314 gravatar imagecalc314 ( 2012-06-01 17:20:33 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2012-05-29 10:39:07 -0500

Seen: 684 times

Last updated: Feb 19