Re: Re: Bug in Integrate ?
- To: mathgroup at smc.vnet.net
- Subject: [mg17927] Re: [mg17913] Re: [mg17879] Bug in Integrate ?
- From: "Andrzej Kozlowski" <andrzej at tuins.ac.jp>
- Date: Sat, 5 Jun 1999 02:56:00 -0400
- Sender: owner-wri-mathgroup at wolfram.com
Bob, The expressions are not equivalent for all values of x (as Wil correctly pointed out). Just try substituting actual values: In[55]:= I*(1 + y)*(Log[1 - (I*x)/(1 + y)] - Log[1 + (I*x)/(1 + y)] - Log[1 - (I*(1 + x))/(1 + y)] + Log[1 + (I*(1 + x))/(1 + y)] + Log[1 - (I*(1 + y))/x] - Log[1 + (I*(1 + y))/x] - Log[1 - (I*(1 + y))/(1 + x)] + Log[1 + (I*(1 + y))/(1 + x)]) == 0/.{x->-Random[],y->1} Out[55]= False While In[57]:= I*(1 + y)*(Log[1 - (I*x)/(1 + y)] - Log[1 + (I*x)/(1 + y)] - Log[1 - (I*(1 + x))/(1 + y)] + Log[1 + (I*(1 + x))/(1 + y)] + Log[1 - (I*(1 + y))/x] - Log[1 + (I*(1 + y))/x] - Log[1 - (I*(1 + y))/(1 + x)] + Log[1 + (I*(1 + y))/(1 + x)]) == 0/.{x->Random[],y->1} Out[57]= True Your argument makes use of the relations {Log[x_] + Log[y_] -> Log[x*y], Log[x_] - Log[y_] -> Log[x/y]}] but of course they do not hold in the whole complex plane e.g. In[65]:= Log[(-1)*(-1)] Out[65]= 0 In[66]:= Log[-1]+Log[-1] Out[66]= 2 I Pi -- Andrzej Kozlowski Toyama International University JAPAN http://sigma.tuins.ac.jp http://eri2.tuins.ac.jp ---------- >From: BobHanlon at aol.com To: mathgroup at smc.vnet.net >To: mathgroup at smc.vnet.net >Subject: [mg17927] [mg17913] Re: [mg17879] Bug in Integrate ? >Date: Thu, Jun 3, 1999, 3:58 PM > > > In a message dated 5/31/99 11:30:03 PM, rcwil at win.tue.nl writes: > >>Looking in the archives of this discussion group didn't give me an >>answer >>to my problem: >>The result that Mathematica gives after integration of this elementary >>function >>doesn't seem to be correct in the region -1<x<0: >> >>Integrate[Log[(x-s)^2+(y+1)^2],{s,-1,0}] >> >>gives: >> >>2*(1 + y)*ArcTan[(1 + y)/x] - >> 2*(1 + y)*ArcTan[(1 + y)/(1 + x)] - >> x*(-2 + Log[x^2 + (1 + y)^2]) + >> (1 + x)*(-2 + Log[(1 + x)^2 + (1 + y)^2]) >> >>This expression is not correct for all values of x. >>Replacing y+1 by y in the previous function and after >>integration substituting y+1 again gives the correct result >>for all values of x: >> >>Integrate[Log[(x-s)^2+y^2],{s,-1,0}]/.y>y+1 >> >>-2*(1 + y)*ArcTan[x/(1 + y)] + >> 2*(1 + y)*ArcTan[(1 + x)/(1 + y)] - >> x*(-2 + Log[x^2 + (1 + y)^2]) + >> (1 + x)*(-2 + Log[(1 + x)^2 + (1 + y)^2]) >> >>My questions are: Is this a bug? Did I overlook the archives >>to correct this problem? >> > > Wil, > > The two representations appear to be equivalent > > $Version > > "Power Macintosh 3.0 (May 6, 1997)" > > integral1 = Integrate[Log[(x-s)^2+(y+1)^2],{s,-1,0}] > > 2*(1 + y)*ArcTan[(1 + y)/x] - > 2*(1 + y)*ArcTan[(1 + y)/(1 + x)] - > x*(-2 + Log[x^2 + (1 + y)^2]) + > (1 + x)*(-2 + Log[(1 + x)^2 + (1 + y)^2]) > > integral2 = (Integrate[Log[(x-s)^2+y^2],{s,-1,0}]/.y->y+1) > > -2*(1 + y)*ArcTan[x/(1 + y)] + > 2*(1 + y)*ArcTan[(1 + x)/(1 + y)] - > x*(-2 + Log[x^2 + (1 + y)^2]) + > (1 + x)*(-2 + Log[(1 + x)^2 + (1 + y)^2]) > > FullSimplify[integral1 == integral2] > > 2*(1 + y)*(ArcTan[x/(1 + y)] - ArcTan[(1 + x)/(1 + y)] + > ArcTan[(1 + y)/x] - ArcTan[(1 + y)/(1 + x)]) == 0 > > FullSimplify[TrigToExp[%]] > > I*(1 + y)*(Log[1 - (I*x)/(1 + y)] - > Log[1 + (I*x)/(1 + y)] - > Log[1 - (I*(1 + x))/(1 + y)] + > Log[1 + (I*(1 + x))/(1 + y)] + > Log[1 - (I*(1 + y))/x] - Log[1 + (I*(1 + y))/x] - > Log[1 - (I*(1 + y))/(1 + x)] + > Log[1 + (I*(1 + y))/(1 + x)]) == 0 > > FullSimplify[% //. {Log[x_] + Log[y_] -> Log[x*y], > Log[x_] - Log[y_] -> Log[x/y]}] > > True > ____________________________ > > Version 4 arrives at log representations directly: > > $Version > > "4.0 for Power Macintosh (April 20, 1999)" > > integral1 = Integrate[Log[(x - s)^2 + (y + 1)^2], {s, -1, 0}] > > I*(2*I + Log[(-I + x - I*y)/x] + y*Log[(-I + x - I*y)/x] - > Log[(1 - I + x - I*y)/(1 + x)] - > y*Log[(1 - I + x - I*y)/(1 + x)] - Log[(I + x + I*y)/x] - > y*Log[(I + x + I*y)/x] + Log[(1 + I + x + I*y)/(1 + x)] + > y*Log[(1 + I + x + I*y)/(1 + x)] + > I*x*Log[1 + x^2 + 2*y + y^2] - > I*Log[2 + 2*x + x^2 + 2*y + y^2] - > I*x*Log[2 + 2*x + x^2 + 2*y + y^2]) > > integral2 = (Integrate[Log[(x - s)^2 + y^2], {s, -1, 0}] /. y -> y + 1) > > -I*(-2*I - (1 + y)*Log[(1 - I - I*x + y)/(1 + y)] - > (1 + y)*Log[(1 + I*x + y)/(1 + y)] + > (1 + y)*Log[(1 + I + I*x + y)/(1 + y)] + > (1 + y)*Log[(-I*(x + I*(1 + y)))/(1 + y)] - > I*x*Log[x^2 + (1 + y)^2] + > I*Log[1 + 2*x + x^2 + (1 + y)^2] + > I*x*Log[1 + 2*x + x^2 + (1 + y)^2]) > > At this point, it is convenient to include the assumption that > y != -1 > > FullSimplify[integral1 == integral2, y != -1] > > Log[(1 - I + x - I*y)/(1 + x)] + Log[1 + (I*x)/(1 + y)] + > Log[1 - (I*(1 + x))/(1 + y)] + Log[(x + I*(1 + y))/x] == > Log[(1 + I + x + I*y)/(1 + x)] + Log[1 - (I*x)/(1 + y)] + > Log[1 + (I*(1 + x))/(1 + y)] + Log[(x - I*(1 + y))/x] > > FullSimplify[% //. Log[x_] + Log[y_] -> Log[x*y]] > > True > > > Bob Hanlon