Re: Unexpected condition on convergence of integral

*To*: mathgroup at smc.vnet.net*Subject*: [mg67329] Re: Unexpected condition on convergence of integral*From*: ab_def at prontomail.com*Date*: Sun, 18 Jun 2006 05:13:29 -0400 (EDT)*References*: <e6tc9d$dtn$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

Andrew Moylan wrote: > Integrate[1 / (1 + (x - y)^2), {y, -Infinity, Infinity}] yields If[Im[x] != 0, Pi, ...], but (I think) this integral should converge to Pi unconditionally (try it for some real values of x). > > Using the option "Assumptions -> Im[x] == 0" in Integrate[] further yields the following warning: "Integral of [bla] does not converge on {-Infinity, Infinity}". > > Can anyone shed some light on why Integrate can't determine that this integral converges for all x? The answer that Mathematica gives is incorrect, as the integral isn't always equal to Pi when Im[x] != 0. The value of the integral depends on the position of the poles of 1 + (x - y)^2. Here's the condition that determines when the poles are on different sides of the real line: In[1]:= P[x_, y_] := 1 + (x - y)^2 In[2]:= Reduce[Times @@ (Im[y] /. Solve[P[x, y] == 0, y]) < 0, x] Out[2]= -1 < Im[x] < 1 For such x the integral is equal to 2*Pi*I times the residue at the upper pole: In[3]:= 2*Pi*I*Residue[1/P[x, y], {y, Root[P[x, #]&, 2]}] Out[3]= Pi If Abs[Im[x]] > 1, then both poles lie either above or below the real line and the integral is zero. If Abs[Im[x]] == 1, the integral diverges. Another way is to set x = a + I*b and expand the integrand into the real and imaginary parts. The integral is independent of a, so the problem reduces to integrating 1/(y^2 + (b + 1)^2) and 1/(y^2 + (b - 1)^2), which is elementary: In[4]:= Assuming[Element[{a, b}, Reals], Integrate[ComplexExpand[Re[1/P[a + I*b, y]]], {y, -Infinity, Infinity}]] Out[4]= If[b < -1 || -1 < b < 1 || b > 1, (1/2)*Pi*(Sign[1 - b] + Sign[1 + b]), Integrate[(1 - b^2 + (a - y)^2)/(((-1 + b)^2 + (a - y)^2)*((1 + b)^2 + (a - y)^2)), {y, -Infinity, Infinity}, Assumptions -> a \[Element] Reals && (b == -1 || b == 1)]] Note that the conditions in the result of Integrate aren't supposed to give the exact region of convergence, they just (should) give a sufficient condition: In[5]:= Integrate[1/(x^2 + y^2), {y, -Infinity, Infinity}] Out[5]= If[Re[x] > 0, Pi/x, Integrate[1/(x^2 + y^2), {y, -Infinity, Infinity}, Assumptions -> Re[x] <= 0]] Then we can reevaluate the output: In[6]:= Take[#, {2, -2}]&@ FixedPointList[Evaluate //@ #&, %] Out[6]= {If[Re[x] > 0, Pi/x, If[Re[x] < 0, -(Pi/x), Integrate[1/(x^2 + y^2), {y, -Infinity, Infinity}, Assumptions -> Re[x] == 0]]], If[Re[x] > 0, Pi/x, If[Re[x] < 0, -(Pi/x), If[Re[x^2] >= 0 || Im[x^2] != 0, Pi*Sqrt[1/x^2], Integrate[1/(x^2 + y^2), {y, -Infinity, Infinity}, Assumptions -> False]]]]} Assumptions -> False seems to be the result of a bug in Reduce: In[7]:= Reduce[Re[x] == 0 && !(Re[x^2] >= 0 || Im[x^2] != 0), x] Out[7]= False I think here Mathematica follows the rule to evaluate Integrate[..., Assumptions -> assum] to If[assum2, ..., Integrate[..., Assumptions -> !assum2 && assum]] in order to avoid infinite loops, but it's not always so: In[8]:= Integrate[Sin[x - a]/(x^2 - a^2), {x, -Infinity, Infinity}, Assumptions -> a != 0] Out[8]= If[Im[a] > 0, -(((-1 + E^(2*I*a))*Pi)/(2*a)), Integrate[Sin[a - x]/(a^2 - x^2), {x, -Infinity, Infinity}, Assumptions -> Im[a] <= 0]] The condition Im[a] <= 0 doesn't imply a != 0 and after a few steps the sequence will repeat itself: In[9]:= Nest[Evaluate //@ #&, %, 2] Out[9]= If[Im[a] > 0, -(((-1 + E^(2*I*a))*Pi)/(2*a)), If[Im[a] < 0, (Pi*Sin[a]*(I*Cos[a] + Sin[a]))/a, If[a == 0, 0, Integrate[Sin[a - x]/(a^2 - x^2), {x, -Infinity, Infinity}, Assumptions -> a != 0]]]] So here we would get infinite recursion if we tried to evaluate to the fixed point. Incidentally, PiecewiseExpand avoids infinite recursion because it stops at a certain depth: f[x_] := (Print[x]; If[x > 10, 0, If[a > 0, 0, f[x + 1]]]) PiecewiseExpand[f[0]] Maxim Rytin m.r at inbox.ru