MathGroup Archive 1995

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Problem with LaplaceTransform (Help !)

  • To: mathgroup at
  • Subject: [mg1039] Re: Problem with LaplaceTransform (Help !)
  • From: chen at (Richard Q. Chen)
  • Date: Wed, 10 May 1995 07:15:32 -0400
  • Organization: Yale University

In article <3nv8he$91e at>, gottsch at (Gert Gottschalk) writes:
>I am looking into filter behaviour in signal processing. To do so
>I make use of LaplaceTransform and InverseLaplaceTransform. 
>When I want results to be evaluated as in Plots I get problems
>from the transform with numerical computation error messages and
>I define:
>In[1]:= <<Calculus`LaplaceTransform`
>In[2]:= om[t_]:= If[t>0,1,0]
>In[3]:= q[s_] := LaplaceTransform[om[t],t,s]
>In[4]:= Plot[q[s],{s,0,100}]
Mma output deleted.
>The plot I finally get doesn't look like what I expected
>a simple switch in frequency.
>I think the problem comes from the integration in the transform.
>Normally it is done from -infinity to +infinity. With a finite
>set of data I would like to reduce this range.
>Perhaps then also the result of the transform would become better
>I would like to hear comments about these thoughts.

Laplace transform always does integrals from 0 to infinity. That is,
a step function is implicitly assumed. You really don't need to specify

In[11]:= LaplaceTransform[1,t,s]

Out[11]= -

The transform you are trying to compute is not defined at s = 0.
Mathematically, there is a simple pole there. Of course q[s] is defined
for all Re[s] > 0.

In your case, Mma does not know how to do the transform analytically
(you need to load in a special package and use Heaviside function to
get analytic result), whence it resorts to numerical integation.
The numerical integration has trouble near s = 0. If you do


you will get no message whatsoever. But if you replace 1 by 0.01 you
will see warning messages but you still get the plot. It is not reasonable
to ask for q[0] because it does not exist.

The integral Mma is trying to do is of the form

NIntegrate[E^(-s t),{t,0,Infinity}]

The following shows that this is precisely what happens

In[7]:= g[s_]:=NIntegrate[E^(-s t),{t,0,Infinity}]

In[8]:= g[0.01]

General::under: Underflow occurred in computation.

General::under: Underflow occurred in computation.

General::under: Underflow occurred in computation.

General::stop: Further output of General::under
     will be suppressed during this calculation.

Out[8]= 100.

Mma manages to obtain the correct result.

Richard Q. Chen
chen at

  • Prev by Date: play to wav?
  • Next by Date: The Case of the Mystery Option
  • Previous by thread: Re: Problem with LaplaceTransform (Help !)
  • Next by thread: Re: Strange answer from Eigensystem[]!