MathGroup Archive 2004

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

Search the Archive

Re: Factor 2 error in Inverse Laplace Transform

p-valko at (Peter Valko) wrote in message news:<ck87ta$9mf$1 at>...
> 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:

LaplaceTransform[InverseLaplaceTransform[Log[p], p, t], t, p] - Log[p]
LaplaceTransform[InverseLaplaceTransform[PolyGamma[p], p, t], t, p] -



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

Integrate[DiracDelta[x], {x, 0, 1}]
Integrate[DiracDelta[x - a], {x, 0, 1}]
Integrate[DiracDelta[x - 1], {x, 1, 2}]


UnitStep[1 - a]*UnitStep[a]


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:

Integrate[DiracDelta'[x]*phi[x], {x, -eps, Infinity}]
Integrate[DiracDelta'[x]*phi[x], {x, 0, Infinity}]
Integrate[DiracDelta'[x]*x, {x, 0, Infinity}]

(-DiracDelta[eps])*phi[0] - phi'[0]



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

  • Prev by Date: Re: symbol replace
  • Next by Date: Re: Re: normal distribution random number generation
  • Previous by thread: Factor 2 error in Inverse Laplace Transform
  • Next by thread: Re: Factor 2 error in Inverse Laplace Transform