The first line in your question is simplified correctly, but the added example shows that the simplification of the second line is in fact wrong because the denominator is ignored for too long.
To work around this, you could shift the variable like this:
test=(I+(ζ-ζ1) DiracDelta[ζ-ζ1])/(ζ-ζ1);
InverseFourierTransform[#@test,ζ,z]&/@{Identity,Simplify}
Then the results agree:
SameQ@@%
True
Therefore, to get the desired result, I tried this:
test = (I + (ζ - ζ1) DiracDelta[ζ - ζ1])/(ζ - ζ1);
(InverseFourierTransform[#@test, ζ, z] & /@ {Identity, Simplify}) /. ζ1 -> 0
{Sqrt[2 Pi] DiracDelta[0] DiracDelta[z] + Sqrt[Pi/2] Sign[z],
Sqrt[2 Pi] DiracDelta[0] DiracDelta[z] + Sqrt[Pi/2] Sign[z]}
However, this doesn't quite work because there is a delta function of 0.
The best I could do with this shift trick is to prevent the simplification like this:
test = (I + ζ DiracDelta[ζ])/ζ;
InverseFourierTransform[#[test /. ζ -> (ζ - ζ1)] /. ζ1 -> 0,
ζ, z] & /@ {Identity, Simplify}
{(1 + Pi Sign[z])/Sqrt[2 Pi], (1 + Pi Sign[z])/Sqrt[2 Pi]}
DiracDelta[x]returns 0 for all real numeric x other than 0." Sincex DiracDelta[x]is zero atx = 0thenx DiracDelta[x]is zero for all realx.DiracDeltais a generalized function and is only fully defined in the context of an integral ("DiracDeltacan be used in integrals, integral transforms, and differential equations"). – Bob Hanlon Sep 25 '16 at 14:59f,Simplify[f[x] DiracDelta[x]]yieldsf[0] DiracDelta[x]. – Michael E2 Sep 25 '16 at 15:33Simplify[Abs[x-x1]DiracDelta[x-x1]]. This would also be a potential workaround for this Q: just shift everything:(x - x1) DiracDelta[x - x1] // Simplifyis not zero. – Jens Sep 25 '16 at 15:37xas a symbol, not a general expression. – Michael E2 Sep 25 '16 at 15:42(I + Sin[ζ] DiracDelta[ζ])/ζand(I/ζ + Sinc[ζ] DiracDelta[ζ]), which give different results forInverseFourierTransform[], even without simplification. – Michael E2 Sep 25 '16 at 16:24Simplifyshould not mess with distributions because they do not follow the same rules as analytic functions. But that would bring on problems of its own I suspect. – Daniel Lichtblau Jul 18 '18 at 13:06x*UnitStep[x]*UnitStep[-x] // Simplify. – Michael E2 Apr 03 '22 at 15:45test = (I + (\[Zeta] - \[Zeta]1) DiracDelta[\[Zeta] - \[Zeta]1])/(\ \[Zeta] - \[Zeta]1);test = (I + (\[Zeta] - \[Zeta]1) DiracDelta[\[Zeta] - \[Zeta]1])/(\ \[Zeta] - \[Zeta]1)returns the input in 13 on Windows 10, as well asFourierTransform[test, \[Zeta], z, Assumptions -> \[Xi]1 > 0]. Both executions take a long time. – user64494 Apr 03 '22 at 18:41