Re: Mathematica Weirdness
- To: mathgroup at smc.vnet.net
- Subject: [mg116708] Re: Mathematica Weirdness
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Thu, 24 Feb 2011 06:25:02 -0500 (EST)
Steve Heston wrote:
> My question is why I get a negative integral of a positive
> function?
>
> Integrate[1000000*Exp[x^2-12*x]*x^14,{x,0,1}]//N
> Integrate[1000000*Exp[x^2-12*x]*x^14,{x,0.,1}]//N
> NIntegrate[1000000*Exp[x^2-12*x]*x^14,{x,0,1}]
>
> The first line gives a negative answer, while the second two lines give
> identical positive answers. Something is strange here.
>
> Steve
>
> Steven L. Heston
> Associate Professor
> Finance Department
> Robert H. Smith School of Business
> 4447 Van Munching Hall Van Munching Hall
> University of Maryland
> College Park, MD 20742-1815
> 301-405-9686 TEL
> 301-405-0359 FAX
> sheston at rhsmith.umd.edu
> http://www.rhsmith.umd.edu
It's cancellation error in machine arithmetic.
Breaking into parts
In[5]:= InputForm[ii = Integrate[1000000*Exp[x^2-12*x]*x^14, {x,0,1}]]
Out[5]//InputForm=
(-78125*(-84400018990*E^25 + 69863114844*E^36 + 413182474389*Sqrt[Pi]*
(Erfi[5] - Erfi[6])))/(4*E^36)
Your numerical result:
In[6]:= InputForm[N[ii]]
Out[6]//InputForm= -0.8133035309472584
If instead you numerically evaluate using precision tracking you will
get a positive result.
In[7]:= InputForm[N[ii,20]]
Out[7]//InputForm= 2.74821242373456642759753885810434205331`20.
"Mathematica Weirdness" is about as uninformative a subject header as
one could conjure for this forum.
Daniel Lichtblau
Wolfram Research