I agree with Leonid, there is no consistent way to define integral [0,anything) of the delta function. It is a theorem, in fact.
Aaron, Sympy seniors, What was the reasoning to define DiracDelta as a function? How difficult would it be to insert GeneralizedFunction class above the Function class? On Saturday, February 3, 2018 at 4:53:05 AM UTC+2, Leonid Kovalev wrote: > > By definition (e.g., > https://en.wikipedia.org/wiki/Dirac_delta_function#As_a_measure), > DiracDelta would have integral one over any set that contains 0, even > if that set has only one point. > So one has to ask, when we integrate over (x, a, b), do we mean closed > interval [a, b], open (a, b), or half-open [a, b). > > With either of two former choices we run into trouble with additivity > over intervals: the integral of DiracDelta over [-1, 0] plus its > integral over [0, 1] is 2, while the integral over [-1, 1] is 1. > Similarly for open. > (SymPy currently sidesteps this issue by returning answers in terms of > Heaviside(0) which is left undefined.) > > So I think we should treat the intervals of integration as half-open: > a <= x < b. Then an interval such as (0, 0) is empty set, and the > integral of anything over an empty set is zero. > > I would also say that things like Piecewise with DiracDelta inside are > not necessarily well-defined. Since DiracDelta is not a function, one > should not define an integrand as "something when x != 3, and > DiracDelta when x is 3". By implementing DiracDelta as a function, > SymPy allows some expressions, like DiracDelta(x)**2, which have no > mathematical meaning; and then the output is meaningless too. > > >>> integrate(DiracDelta(x)**2, (x, -1, 1)) > DiracDelta(0) # garbage in, garbage out > -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at https://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/bdf66987-cc66-4b9e-89c6-5ef1a829323b%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.