Re: [Integrate] Why two results of same eq. are different?
- To: mathgroup at smc.vnet.net
- Subject: [mg44700] Re: [Integrate] Why two results of same eq. are different?
- From: "David W. Cantrell" <DWCantrell at sigmaxi.org>
- Date: Fri, 21 Nov 2003 05:13:22 -0500 (EST)
- References: <bphtag$1kr$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
"Sung Jin Kim" <kimsj at mobile.snu.ac.kr> wrote: > I got very extraordinary results today from below two same integrals > except one is symbolic one and the other is numeric one: > A. In[1]= N[Integrate[ Log[2, 1 + 10*x]*Exp[-x]*x, {x, 0, Infinity}]] > Out[1]= -3.77002 > B. In[2]= NIntegrate[ Log[2, 1 + 10*x]*Exp[-x]*x, {x, 0, Infinity}] > Out[2]= 4.05856 > > Why did I got the different results of these, surprisingly? The reason is a bug in Integrate[ Log[2, 1 + 10*x]*Exp[-x]*x, {x, 0, Infinity}]. But see below for more comments and _another_ bug. In[1]:= NIntegrate[Log[2, 1 + 10*x]*Exp[-x]*x, {x, 0, Infinity}] Out[1]= 4.058558368509705 NIntegrate is normally fairly trustworthy, in my experience. In[2]:= Integrate[Log[2, 1 + 10*x]*Exp[-x]*x, {x, 0, Infinity}] Out[2]= (-8 + 9*E^(1/10)*ExpIntegralEi[-(1/10)])/Log[1024] In[3]:= N[%] Out[3]= -3.7700193602844947 This is clearly wrong. After all, the integrand is _nonnegative_. There's a bug somewhere. Also note that N[Integrate[...]], which is what you had done, is formally equivalent to NIntegrate[...] only when a symbolic antiderivative cannot be computed. In[4]:= Integrate[Log[2, 1 + 10*x]*Exp[-x]*x, x] Out[4]= (9*E^(1/10 + x)*ExpIntegralEi[-(1/10) - x] - 10*(1 + (1 + x)*Log[1 + 10*x]))/(E^x*(10*Log[2])) In[5]:= % /. x -> 0 Out[5]= (-10 + 9*E^(1/10)*ExpIntegralEi[-(1/10)])/(10*Log[2]) In[6]:= Limit[%%, x -> Infinity] Out[6]= 0 In[7]:= N[% - %%] Out[7]= 4.058558368462288 This is correct, indeed, to the last decimal place. As such, it is more accurate than Out[1]. Now for a different method. In[8]:= Assuming[a > 0, Integrate[Log[2, 1 + 10*x]*Exp[-x]*x, {x, 0, a}]] Out[8]= (10 + E^a*(-10 + 11*E^(1/10)*ExpIntegralEi[-(1/10)] + 11*E^(1/10)*Gamma[0, 1/10 + a]) - 10*(1 + a)*Log[1 + 10*a])/(E^a*(10*Log[2])) In[9]:= Limit[%, a -> Infinity] Out[9]= (-10 - 11*E^(1/10)*Gamma[0, 1/10])/(10*Log[2]) In[10]:= N[%] Out[10]= -4.63986133014525 This is, of course, incorrect. There was a bug (different from the earlier one) causing Out[8] to be wrong. David Cantrell