Message Boards Message Boards

[✓] Prove equality - Application of Dirac delta property?

GROUPS:

Hello everyone. Is it possible the prove the following equality?

t (-DiracDelta[-5 + t] + DiracDelta[t]) - HeavisideTheta[-5 + t] + 
  HeavisideTheta[t] == -5 DiracDelta[-5 + t] - 
  HeavisideTheta[-5 + t] + HeavisideTheta[t]

The output of Mathematica is equal to the input. The property I'm applying is x(t-T) delta(t-T)=x(T) delta(t-T).

Thank you in advance.

POSTED BY: Gennaro Arguzzi
Answer
1 month ago

The equality is false because the difference of right and left terms are not zero. It's enough to plot the graph of the specified difference:

Plot[t (-DiracDelta[-5 + t] + DiracDelta[t]) - 
  HeavisideTheta[-5 + t] + HeavisideTheta[t] 5 DiracDelta[-5 + t] - 
  HeavisideTheta[-5 + t] + HeavisideTheta[t], {t, -10, 10}]

enter image description here

POSTED BY: Valeriu Ungureanu
Answer
1 month ago

Hi @Valeriu Ungureanu . I tried also to prove the simple property x(t) delta(t)=x(0) delta(t) (see (3) http://www.physicspages.com/2011/02/16/dirac-delta-function/ ), but the result is not what I expect:

In[5]:= x[t_] := t

In[6]:= x[t] DiracDelta[t] == x[0] DiracDelta[t]

Out[6]= t DiracDelta[t] == 0

How come it happened? The result should be Out[6]=True.

Thank you for your time and for your efforts to help me.

POSTED BY: Gennaro Arguzzi
Answer
1 month ago

Try this:

In[1]:= Simplify[x[t] DiracDelta[t] == x[0] DiracDelta[t]]
Out[1]= True
POSTED BY: Valeriu Ungureanu
Answer
1 month ago

@Valeriu Ungureanu there is a strange behaviour of Mathematica. If I don't define x[t_], the line:

Simplify[x[t - 5] DiracDelta[t - 5] == x[0] DiracDelta[t - 5]]   

will give me True, instead the line

Simplify[x[t] DiracDelta[t] == x[0] DiracDelta[t]]

will give me DiracDelta[t] x[t] == DiracDelta[t] x[0]. Do you know why?

POSTED BY: Gennaro Arguzzi
Answer
1 month ago

Dear Gennaro,

I don't know why the results are so strange. More the more, I found other strangeness, e.g.:

In[1]:= Solve[x[t] DiracDelta[t] == x[0] DiracDelta[t], t]
During evaluation of In[1]:= Solve::ifun: Inverse functions are being used by Solve, so some solutions may not be found; use Reduce for complete solution information.
Out[1]= {{t -> 0}, {t -> 42/5}}

In[2]:= Solve[x[t - 5] DiracDelta[t - 5] == x[0] DiracDelta[t - 5], t]
During evaluation of In[2]:= Solve::ifun: Inverse functions are being used by Solve, so some solutions may not be found; use Reduce for complete solution information.
Out[2]= {{t -> 5}, {t -> 67/5}}

In[3]:= Reduce[x[t] DiracDelta[t] == x[0] DiracDelta[t], t]
During evaluation of In[3]:= Reduce::fexp: Warning: Reduce used FunctionExpand to transform the system. Since FunctionExpand transformation rules are only generically correct, the solution set might have been altered.
Out[3]= True

In[4]:= Reduce[x[t - 5] DiracDelta[t - 5] == x[0] DiracDelta[t - 5], t]
During evaluation of In[4]:= Reduce::fexp: Warning: Reduce used FunctionExpand to transform the system. Since FunctionExpand transformation rules are only generically correct, the solution set might have been altered.
Out[4]= True

In[5]:= NSolve[x[t] DiracDelta[t] == x[0] DiracDelta[t], t]
During evaluation of In[5]:= NSolve::ifun: Inverse functions are being used by NSolve, so some solutions may not be found; use Reduce for complete solution information.
Out[5]= {{t -> 0.}, {t -> 0.365626}}

In[6]:= NSolve[x[t - 5] DiracDelta[t - 5] == x[0] DiracDelta[t - 5], t]
During evaluation of In[6]:= NSolve::ifun: Inverse functions are being used by NSolve, so some solutions may not be found; use Reduce for complete solution information.
Out[6]= {{t -> 5.}, {t -> 5.36563}}
POSTED BY: Valeriu Ungureanu
Answer
1 month ago

I found another "unusual" output.

In[1]:= Simplify[1000 t DiracDelta[t] + 5 t == 5 t]

Out[1]= True

This is ok. But:

Simplify[1/5 t (-DiracDelta[-5 + t] + DiracDelta[t]) + 
   1/5 (-HeavisideTheta[-5 + t] + HeavisideTheta[t]) == -(1/5)
      t DiracDelta[-5 + t] + 
   1/5 (-HeavisideTheta[-5 + t] + HeavisideTheta[t])]

output:

1/5 t (-DiracDelta[-5 + t] + DiracDelta[t]) + 
  1/5 (-HeavisideTheta[-5 + t] + 
     HeavisideTheta[t]) == -DiracDelta[-5 + t] + 
  1/5 (-HeavisideTheta[-5 + t] + HeavisideTheta[t])

How can I get True?

Thank you very much.

POSTED BY: Gennaro Arguzzi
Answer
1 month ago

As in the above reply:

In[9]:= Solve[
 1/5 t (-DiracDelta[-5 + t] + DiracDelta[t]) + 
   1/5 (-HeavisideTheta[-5 + t] + 
      HeavisideTheta[t]) == -(1/5) t DiracDelta[-5 + t] + 
   1/5 (-HeavisideTheta[-5 + t] + HeavisideTheta[t]), t]

During evaluation of In[9]:= Solve::ifun: Inverse functions are being used by Solve, so some solutions may not be found; use Reduce for complete solution information.

Out[9]= {{t -> 0}, {t -> 42/5}}

In[8]:= Reduce[
 1/5 t (-DiracDelta[-5 + t] + DiracDelta[t]) + 
   1/5 (-HeavisideTheta[-5 + t] + 
      HeavisideTheta[t]) == -(1/5) t DiracDelta[-5 + t] + 
   1/5 (-HeavisideTheta[-5 + t] + HeavisideTheta[t]), t]

During evaluation of In[8]:= Reduce::fexp: Warning: Reduce used FunctionExpand to transform the system. Since FunctionExpand transformation rules are only generically correct, the solution set might have been altered.

Out[8]= True
POSTED BY: Valeriu Ungureanu
Answer
1 month ago

If you want to discuss Dirac delta functions (actually functionals) in terms of identities and the like, then it is necessary to phrase computations in terms of functions such as Integrate that work in the same world as these functionals. Things like Solve, Simplify, and the like do not deal well with nongeneric behavior such as is exhibited by a "function" that is 0 a.e. Moreover they will not be able to prevent an autoevaluation such as 0*DiracDelta[x] from becoming 0, etc. The results shown using Solve and Simplify in this thread might best be viewed as GIGO.

POSTED BY: Daniel Lichtblau
Answer
1 month ago

Thank you, Daniel! It is a very instructive and useful explanation!

POSTED BY: Valeriu Ungureanu
Answer
1 month ago

Hi @Daniel Lichtblau . I tried:

In[14]:= Integrate[DiracDelta[t - T] f[t - T], t] == 
 Integrate[DiracDelta[t - T] f[0], t]

Out[14]= True

This is ok. After I tried:

In[1]:= Integrate[DiracDelta[t - T] f[t], t] == 
 Integrate[DiracDelta[t - T] f[T], t]

Out[1]= \[Integral]DiracDelta[t - T] f[t] \[DifferentialD]t == 
 f[T] HeavisideTheta[t - T]

In this case why the output is not True?

Thank you in advance.

POSTED BY: Gennaro Arguzzi
Answer
1 month ago

Indefinite integrals don't have so much impact in the world of DiracDelta functions. In order to test definitions one should use definite integrals that properly contain the singular point(s) in the domain of integration. See below for the example in question.

In[78]:= Integrate[DiracDelta[t - T] f[t], {t, -Infinity, Infinity}, 
 Assumptions -> Element[T, Reals]]

Out[78]= f[T]

In[79]:= Integrate[DiracDelta[t - T] f[T], {t, -Infinity, Infinity}, 
 Assumptions -> Element[T, Reals]]

Out[79]= f[T]
POSTED BY: Daniel Lichtblau
Answer
1 month ago

Very very good! Thank you so much!

POSTED BY: Gennaro Arguzzi
Answer
1 month ago

Group Abstract Group Abstract