MathGroup Archive 2004

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

Search the Archive

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


  • 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