# Different results of definite integral over complex exponential.

GROUPS:
 Andreas B. 2 Votes We are currently using Mathematica 9.0 and came across the problem, that in certain situations, Mathematica will give different results for the same definite integral. Here is a minimal working exampleIntegrate[Abs[Cos[φ]+ⅈ⁢Sin[φ]]^2,{φ,0,2⁢π}]Integrate[Abs[Exp[ⅈ φ]]^2,{φ,0,2⁢π}]The first integral gives zero, while the second one holds the correct result 2*pi. Using FullSimplify gives the correct result but is too time consuming for larger expressions.I would appreciate any help concerning this issue, as these functions are rather often used in our codes here and this really questions the reliability of Integrate and/or Abs.Thanks!
5 years ago
4 Replies
 Simon Schmidt 1 Vote Scary...  Same thing in v8. It seems to only happen when the region of integration is [0,2Pi]  or [-2Pi, 0]:Cases[ ParallelTable[  {i Pi, (i + 2) Pi, Integrate[ Abs[ Cos[x] + I Sin[x]]^2, {x, i Pi, (i + 2) Pi}]},  {i, -100, 100}], {_, _, Except[2 Pi]}](* {{-2 Pi, 0, 0}, {0, 2 Pi, 0}} *)Perhaps you can change your region of integration as a workaround.
5 years ago
 Andreas B. 1 Vote Thank you very much for your reply. If the integration region is not exactly [0,2 pi], Mathematica gives the correct result indeed.Integrate[Abs[Cos[φ]+ⅈ⁢Sin[φ]]^2,{φ,0,1.9999999π}]⁢Integrate[Abs[Cos[φ]+ⅈ⁢Sin[φ]]^2,{φ,10-9,2⁢π}]But this takes an unreasonably high amount of computation time in comparison to the procedures above. Additionally as this is a really common integration region, it would be interesting to know if there are other cases in which this bug arises.
5 years ago
 Simon Schmidt 1 Vote !!!DO NOT USE, MAY BREAK MANY THINGS. WAIT FOR OFFICIAL FIX!!!With that disclaimer out of the way:I got curious where this happened and Spelunked a bit.The problem arises in IntegrateImproperDumpDispatcher[f_, {x_, 0, 2 PI}]where the function is decomposed into a polynomial in Cos and Sin whose coefficients get improperly transformed for complex values. (1^2 + I^2 = 0)I decided to drop that downvalue from Dispatcher to see what happens: (* Make sure definitions are loaded *) Integrate[Abs[Cos[x] + I Sin[x]]^2, {x, 0, 2 Pi}]  dw = DownValues[IntegrateImproperDumpDispatcher]; pos = Position[dw,          HoldPattern[IntegrateImproperDumpDispatcher[f_, {x_, 0, 2 Pi}]]       ][[1, 1]]; dw = Drop[dw, {pos}]; DownValues[IntegrateImproperDumpDispatcher] = dw;Integrate[Abs[Cos[x] + I Sin[x]]^2, {x, 0, 2 Pi}](* 2 Pi :) *)To get back to normal just restart the kernel
5 years ago
 Great, this seems to solve the issue. With your permission, I would send this to the support, so it gets fixed in the next release.