Re: Factor 2 error in Inverse Laplace Transform
- To: mathgroup at smc.vnet.net
- Subject: [mg51255] Re: Factor 2 error in Inverse Laplace Transform
- From: ab_def at prontomail.com (Maxim)
- Date: Sun, 10 Oct 2004 01:57:39 -0400 (EDT)
- References: <ck87ta$9mf$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
p-valko at tamu.edu (Peter Valko) wrote in message news:<ck87ta$9mf$1 at smc.vnet.net>... > Hi, > > InverseLaplaceTransform is an extremely useful part of Mathematica > (since v 4.1). > However, in the following simple problem it gives the wrong answer: > Problem 1: > InverseLaplaceTransform[s/(s+1),s,t] > -1/(2*E^t)+DiracDelta[t] > where the factor 2 is completely wrong. > > To see that I slightly rewrite Problem 1 into > Problem 1a: > InverseLaplaceTransform[Apart[s/(s+1)],s,t] > and then I get the correct answer: > -E^(-t)+DiracDelta[t] > > Of course one can "Unprotect" InverseLaplaceTransform and teach it to > give the correct answer but that is not the point. > (Also one can start a long debate about the meaning of DiracDelta in > Mathematica, but that is also not the point here. ) > > There are several similar simple examples when the wrong factor of two > shows up, for instance > Problem 2: > InverseLaplaceTransform[ s ArcTan[1/s],s,t] > > Using the Trace one can find out that all these "factor 2" errors have > a common origin. > Solving Problem 1 Mathematica calculates the convolution integral > > Integrate[E^(-t+x)*Derivative[1][DiracDelta][x],{x,0,t}] > > and because the lower limit is exactly zero,the factor 2 shows up in > -1/(2*E^t), that is Mathematica "halves" the Dirac delta and all its > derivatives at the origin. > > I think the InverseLaplaceTransform function could be much improved if > the above convolution integral would be evaluated more carefully. > > For instance, doing it in two steps: > res1=Integrate[E^(-t+x)*Derivative[1][DiracDelta][x],{x,-eps,t}, > Assumptions -> eps>0]; > res2=res1/.eps -> 0 > would give the right result. > (This caution is necessary only, if generalized functions are involved > in the integration.) > > I wonder if further examples/suggestions are welcome in this group > regarding InverseLaplaceTransform??? > > Peter I'd say that this is two messes mixed together. One is a rather poor implementation of integral transforms, especially when there are generalized functions involved. For example: In[1]:= LaplaceTransform[InverseLaplaceTransform[Log[p], p, t], t, p] - Log[p] LaplaceTransform[InverseLaplaceTransform[PolyGamma[p], p, t], t, p] - PolyGamma[p] Out[1]= EulerGamma Out[2]= EulerGamma We can see that LaplaceTransform/InverseLaplaceTransform aren't consistenly defined for these functions (here Mathematica doesn't internally take integrals of distributions). Another issue is the question of how the integral of DiracDelta on [0,a] should be interpreted: In[3]:= Integrate[DiracDelta[x], {x, 0, 1}] Integrate[DiracDelta[x - a], {x, 0, 1}] Integrate[DiracDelta[x - 1], {x, 1, 2}] Out[3]= 1/2 Out[4]= UnitStep[1 - a]*UnitStep[a] Out[5]= 0 The value of the first integral is by convention taken to be 1/2; however, substituting a=0 into Out[4] we obtain 1, and making the change of variables x->x-1 (the third integral) we get 0. Similarly for the integrals of the DiracDelta derivatives: In[6]:= Integrate[DiracDelta'[x]*phi[x], {x, -eps, Infinity}] Integrate[DiracDelta'[x]*phi[x], {x, 0, Infinity}] Integrate[DiracDelta'[x]*x, {x, 0, Infinity}] Out[6]= (-DiracDelta[eps])*phi[0] - phi'[0] Out[7]= 0 Out[8]= -(1/2) The value of the first integral for eps<0 is incorrect in any case, and Out[7] and Out[8] are not consistent with each other. Maxim Rytin m.r at inbox.ru