Re: The strange behaviour of NIntegrate
- To: mathgroup at smc.vnet.net
- Subject: [mg53531] Re: The strange behaviour of NIntegrate
- From: Bill Rowe <readnewsciv at earthlink.net>
- Date: Sat, 15 Jan 2005 21:08:14 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
On 1/15/05 at 1:44 AM, Z.Burq at ms.unimelb.edu.au (Zaeem Burq) wrote: >I am trying to NIntegrate a nice function (which I know is >integrable), of the form >K[s] = h[s]/[(1-s)^1.5] from 0 to 1. >The function is real, but Mathematica spits out a COMPLEX answer!! >Admittedly, the complex part is very small, and if I truncate the >integral just below 1, the complex bit disappears and changes the >real part very slightly. >It seems obvious that Math'ca is choosing the last s value just >beyond 1, producing the Sqrt of a negative number in the >denominator. >If interested, here are the calculations and results. Read on if >you think you can help. Thanx. >\!\(\(\[CurlyPhi][ >x_] := \[ExponentialE]\^\(\(-x\^2\)/2\)\/\@\(2 \[Pi]\);\)\n >\(K[s_] := \(\(\ \)\(\((1 - \@s)\)\ \[CurlyPhi][\(1 - \@s\)\/\@\(1 >- >s\)]\)\ \)\/\((1 - s)\)\^1.5`;\)\) >NIntegrate[K[s], {s, 0, 1}] >gives \!\(\(\(0.4206155890394436`\)\(\[InvisibleSpace]\)\) - >3.304807577181973`*^-49\ \[ImaginaryI]\) >and >NIntegrate[K[s], {s, 0, .999999}] >results in >0.420217 >Any thoughts? The most likely explanation for this result isn't that Mathematica is sampling the function beyond the specified range. Instead, it is likely due to using machine precision numbers and the issues asscociated with them. One of the simplest solutions is to use Chop to truncate small terms And FWIW In[1]:= \[CurlyPhi][x_] := 1/(E^(x^2/2)* Sqrt[2*Pi]); K[s_] := ((1 - Sqrt[s])* \[CurlyPhi][(1 - Sqrt[s])/ Sqrt[1 - s]])/ (1 - s)^1.5; In[3]:= NIntegrate[K[s], {s, 0, 1}] Out[3]= 0.4206155890394436 In[4]:= $Version Out[4]= "5.1 for Mac OS X (October 25, 2004)" -- To reply via email subtract one hundred and four