Re: Problem with LaplaceTransform (Help !)
- To: mathgroup at christensen.cybernetics.net
- Subject: [mg1039] Re: Problem with LaplaceTransform (Help !)
- From: chen at fractal.eng.yale.edu (Richard Q. Chen)
- Date: Wed, 10 May 1995 07:15:32 -0400
- Organization: Yale University
In article <3nv8he$91e at news0.cybernetics.net>, gottsch at mikro.ee.tu-berlin.de (Gert Gottschalk) writes: > >Hello, > >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 >warnings. > >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 this: In[11]:= LaplaceTransform[1,t,s] 1 Out[11]= - s 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 Plot[q[s],{s,1,10}] 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 fractal.eng.yale.edu