Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2005
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2005

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

Search the Archive

Re: Re: (x-y) DiracDelta[x-y] does not simplify to 0

  • To: mathgroup at smc.vnet.net
  • Subject: [mg56351] Re: [mg56297] Re: (x-y) DiracDelta[x-y] does not simplify to 0
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Fri, 22 Apr 2005 06:23:47 -0400 (EDT)
  • References: <d42kg5$39t$1@smc.vnet.net> <d45agf$ieu$1@smc.vnet.net> <200504210936.FAA05048@smc.vnet.net> <0e5459acc0a6eae9a16bda863b79434c@mimuw.edu.pl> <16999.49105.639076.187149@localhost.localdomain>
  • Sender: owner-wri-mathgroup at wolfram.com

On 21 Apr 2005, at 23:59, Alain Cochard wrote:

> Andrzej Kozlowski writes:
>
>>> I don't understand these reservations. I learned the statement x 
>>> delta
>>> = 0 in my lectures on distributions at university, and I checked 
>>> today
>>> that it also appears in one of Laurent Schwartz's ("father" of
>>> distribution theory) books.  Plus I find it very intuitive and it's
>>> straightforward to demonstrate.
>
>> As I wrote: it takes a lot of interpreting. You not only have to
>> interpret both x and 0 as distributions, but you also have to 
>> interpret
>> multiplication in a special way, quite different form the normal
>> Mathematica interpretation. The statement x DiracDelta[x] ==0 is 
>> merely
>> an informal short hand for the staatement:
>>
>> <x DiracDelta[x], f[x]>= <0, f[x]> for any  "test function" f[x], 
>> where
>> <f,g> stands for Integrate[f[x]*g[x],{-Infinity,Infinity}]
>>
>> [...]
>>
>> One can perform certain further informal manipulations on this
>> 'identity". But such informal manipulations should only be performed
>> carefully by people who know what they are doing and Mathematica
>> certainly does not. Because the algebra of distributions is not like
>> usual "algebra" (for a start multiplication is not defined for
>> arbitrary distributions) so it is very easy to obtain nonsensical
>> answers if you manipulate informal expressions containing DiracDelta
>> blindly, e.g. the following is complete nonsense:
>>
>> [..]
>>
>> [...] since [...] there is actually nothing useful that can be done
>> with the above "relationship", I don't think Mathematica should
>> perform any such "simplifications" except in the proper formal
>> context, which means within Integrate.
>
> At times I feel I understand what you mean, at other times I am not so
> sure.
>
> I feel it does not require "a lot" of interpretation.  I'd say it just
> requires to be interpreted in the proper sense, but which is the usual
> sense of distribution theory (i.e., nothing fancy like I feared before
> asking my initial question).
>
> Isn't what you refer to as "shorthand" precisely the way everyone
> using distribution theory use distributions all the time?  I'd say
> that as far as Mathematica has DiracDelta defined in a way which seems fully
> correct to me, it should be one of the "people" who should "know what
> they are doing", at least in principle, and detect the nonsensical
> cases you are talking about.
>
> So that I better understand, could you please say if you classify the
> following relationships in the same class of useless "informal
> manipulations" you refer to above.
>
>  UnitStep'[x] = DiracDelta[x]
>  DiracDelta[a x] = DiracDelta[x]/Abs[a]
>  D[DiracDelta[x],x] = DiracDelta'[x]
>  x DiracDelta'[x] = -DiracDelta[x]
>  DiracDelta[x-y] = DiracDelta[y-x]
>
> Thanks,
> a.
>
>


Of course all these operations are at best informal. This is of course 
true even for the very basic usage of DiracDelta in Mathematica. 
Mathematica treats DiracDelta as an ordinary function with value 0 at 
all real numbers except 0, where it is is undefined(DiracDelta[2] will 
return 0). IN other words, DiracDelta in Mathematica is just 
DiscreteDelta  except at x=0, where it has no value.  There is no 
mathematical sense that can be made of this  but it is difficult to 
imagine how else this concept could be implemented in a computer 
program. A generalized function (distribution) that does not arise form 
a ordinary function does not have a value at a point, and  it is 
neither logical nor useful to think of it as having such a value. 
However, there is a different issue involved here, where things are 
less clear t: that issue is implementation in a computer algebra 
system.
Not counting non-standard analysis, DiracDelta and all the relations 
above you have stated  both make sense and are useful only when used 
inside Integrate. But from the point of view of computer implementation 
it seems easier to define them independently of Integrate, so that they 
can be used automatically within Integrate rather than make them part 
of the way Integrate works. I think that was the main reason for 
implementing DiracDelta and UnitStep in the way it has been done in 
Mathematica, where practicality and not strict mathematical correctness 
are the main considerations.
On the other hand I am much less convinced that the simplification of x 
DiracDelta[x] to 0 is justified in this way. Inside Integrate this 
"equation' is already used properly without any need for Simplify:


Integrate[f[x] *x DiracDelta[x],{x,-Infinity,Infinity}]

0

Since this is the only context in which the identity is useful and 
makes sense,  I can't see any justification for your application of 
Simplify.

I should perhaps add that even the notation 
Integrate[f[x]*DiracDelta[x],{x,_Infinity,Infinity}] is informal. In 
fact this is really a limit of certain integrals of the form 
Integrate[f[x]*H'[x,n],{x,-Infinity,Infinity}], where H[x,n] are 
certain functions whose limit as n-> Infinity is the Heaviside function 
UnitStep[x]. but of course you would not expect this level of formality 
in a computer program that is intended for practical use.

Andrzej Kozlowski

P.S. The strange this is that

FullSimplify[x*DiscreteDelta[x]]

returns x*DiscreteDelta[x], although this time the correct answer is 
without any doubt 0.


  • Prev by Date: Re: a conflicting StringReplace
  • Next by Date: Re: Integrating a complicated expression involving Sign[...] etc.
  • Previous by thread: Re: Re: (x-y) DiracDelta[x-y] does not simplify to 0
  • Next by thread: Re: (x-y) DiracDelta[x-y] does not simplify to 0