Re: Re: bug in Integrate
- To: mathgroup at smc.vnet.net
- Subject: [mg78353] Re: [mg78306] Re: bug in Integrate
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Fri, 29 Jun 2007 05:39:31 -0400 (EDT)
- Reply-to: hanlonr at cox.net
$Version 6.0 for Mac OS X x86 (32-bit) (April 20, 2007) Integrate[x*Exp[-x]*Log[x*z], {x, 0, Infinity}] Log[z] - EulerGamma Integrate[x*Exp[-x]*Log[x*z], {x, 0, Infinity}, Assumptions -> z > 0] 0 Integrate[x*Exp[-x]*Log[x*z], {x, 0, Infinity}, Assumptions -> z < 0] I*Pi Integrate[x*Exp[-x]*Log[x*z] // ExpToTrig, {x, 0, Infinity}, Assumptions -> z > 0] Log[z] - EulerGamma + 1 Integrate[x*Exp[-x]*Log[x*z] // ExpToTrig, {x, 0, Infinity}, Assumptions -> z < 0] Log[-z] + I*Pi - EulerGamma + 1 Bob Hanlon ---- dimitris <dimmechan at yahoo.com> wrote: > > > Veit Elser : > > In version 6.0, the Integrate function applied to > > > > Integrate[x Exp[-x] Log[x z], {x, 0, Infinity}, Assumptions -> z > 0] > > > > evaluates to 0. Version 5.2 gives the correct result, > > > > 1 - EulerGamma + Log[z]. Interestingly, back in version 6.0 > > > > Integrate[x Exp[-x] Log[x z], {x, 0, Infinity}, Assumptions -> z == 1] > > > > does evaluate correctly to > > > > 1 - EulerGamma > > > > Let's hope this is fixed before the end of Euler's tercentennial. > > > > > > Veit Elser > > Hi. > > $VersionNumber->5.2 > > (I don't have version 6) > > Note that if you give specific values in parameter(s) > you should use With instead of Assumptions->z==1... > > That is I consider more suitable the following structure > > In[76]:= > With[{z = 1}, Integrate[x*Exp[-x]*Log[x*z], {x, 0, Infinity}]] > > Out[76]= > 1 - EulerGamma > > As you noticed Mathematica 5.2 gets correctly the integral. > Note however that, > > In[99]:= > Integrate[x*Exp[-x]*Log[x*z], {x, 0, Infinity}] > > Out[99]= > 1 - EulerGamma + Log[z] > > That is no need for assumptions. > > (*check*) > > In[101]:= > N[(1 - EulerGamma + Log[z] /. z -> #1 & ) /@ {2, 3, -4, I + 6, -3*I}] > > Out[101]= > {1.1159315156584124, 1.5213966237665768, 1.8090786962183576 + > 3.141592653589793*I, 2.228243291420579 + 0.16514867741462683*I, > 1.5213966237665768 - 1.5707963267948966*I} > > In[102]:= > (NIntegrate[x*Exp[-x]*Log[x*#1], {x, 0, Infinity}] & ) /@ {2, 3, -4, I > + 6, -3*I} > > Out[102]= > {1.1159315184569099, 1.5213966033406756, 1.809078675792414 + > 3.141592653589326*I, 2.2282432709945725 + 0.1651486774146023*I, > 1.5213966033406756 - 1.570796326794663*I} > > What does the version 6 returns if you don't specify a range for the > parameter? > > Here are some workarounds based on my experience with earlier versions > of Mathematica that > could work in Mathematica 6: > > In[106]:= > f = HoldForm[Integrate[x*Exp[-x]*Log[x*z], {x, 0, Infinity}]] > ReleaseHold[f /. z -> Catalan] /. Catalan -> z > > Out[106]= > HoldForm[Integrate[(x*Log[x*z])/E^x, {x, 0, Infinity}]] > > Out[107]= > 1 - EulerGamma + Log[z] > > 2) > > In[92]:= > ReleaseHold[f /. Integrate[g_, h_] :> Integrate[g, x]] > Limit[%, x -> Infinity] - Limit[%, x -> 0, Direction -> -1] > > Out[92]= > -E^(-x) + ExpIntegralEi[-x] - ((1 + x)*Log[x*z])/E^x > > Out[93]= > 1 - EulerGamma + Log[z] > > Dimitris > >