Re: Integration or Evaluation Bug

*To*: mathgroup at smc.vnet.net*Subject*: [mg69378] Re: Integration or Evaluation Bug*From*: p-valko at tamu.edu*Date*: Sat, 9 Sep 2006 03:27:00 -0400 (EDT)*References*: <edqq3j$srp$1@smc.vnet.net>

> Assuming[t > 1/1000, Integrate[Exp[-w] Cos[w t] / (w^2+1),{w,0,1000}]] > Plotted as a function of t, this is incorrectly growth instead of decay. You are certainly right that something is fishy (in Integrate). Let me tell you how I usually work around such complicated bugs and still get the right symbolic answer. I call this "the Catalan trick". I put an exact number instead of the parameter t, but only temporarily, while Integrate[] is doing its duty. In most of my cases the parameter should be between 0 and 1 so I use Catalan, and in your case it works too, because it is bigger than 1/1000. After the job and some simplifications are done, I replace back the original parameter. (This might be the general idea behind the Refine[] function too, but I like to do it myself.) So in your case: f1[t_] = FullSimplify[ComplexExpand[Integrate[Exp[-w]Cos[Catalan w]/(w^2 + 1), {w, 0, 1000}]]] /. Catalan -> t; The result is (E^(-I - t)*(E^(2*t)*(2*(1 + E^(2*I))*Pi - I*(-ExpIntegralEi[I - t] + ExpIntegralEi[(-1 - 1000*I)*(-I + t)] + E^(2*I)*(ExpIntegralEi[-I - t] - ExpIntegralEi[(-1 + 1000*I)*(I + t)]))) - I*(E^(2*I)*(ExpIntegralEi[-I + t] - ExpIntegralEi[(1 - 1000*I)*(-I + t)]) - ExpIntegralEi[I + t] + ExpIntegralEi[(1 + 1000*I)*(I + t)])))/4 and it is the the correct symbolic answer to your problem. It decays like a charm. In: t0=89+5/100; N[f1[t0],20]//Chop NIntegrate[Exp[-w]Cos[t0 w]/(w^2+1),{w,0,1000},WorkingPrecision\[Rule150, AccuracyGoal \[Rule] 20] Out: 0.000126184671187050862020 0.00012618467118705086 I hope this trick helps. Best Regards, Peter Chris H. Fleming wrote: > I have found what is either a bug in integration or evaluation of > exponential integrals and boiled it down to this simple example > > NIntegrate[Exp[-w] Cos[w t] / (w^2+1),{w,0,1000}] > > Plotted as a function of t, this is correctly oscillatory decay > > Assuming[t > 1/1000, Integrate[Exp[-w] Cos[w t] / (w^2+1),{w,0,1000}]] > > Plotted as a function of t, this is incorrectly growth instead of > decay. > > The analytic answer has all terms like Exp[stuff t] Ei[-stuff t] > If stuff was real, that would decay like 1/(stuff t) > > So I don't know if it's an integration bug or a bug in Ei evaluation