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