 
 
 
 
 
 
NIntegrate
- To: mathgroup at smc.vnet.net
- Subject: [mg71408] NIntegrate
- From: "dimitris" <dimmechan at yahoo.com>
- Date: Fri, 17 Nov 2006 04:30:33 -0500 (EST)
Clear["Global`*"]
Consider the following simple function
f[x_] := Exp[-5*x^2] + 1/2
As far as I know the default setting for the option Method of
NIntegrate is the Gauss-Kronrod algorithm for 1D integrals.
In view of this note I can't understand the difference between the
outputs of
Reap[NIntegrate[f[x], {x, -3, 3}, Method -> Automatic,
EvaluationMonitor :> Sow[x]]]
Length[%[[2,1]]]
and
Reap[NIntegrate[f[x], {x, -3, 3}, Method -> GaussKronrod,
EvaluationMonitor :> Sow[x]]]
Length[%[[2,1]]]
The following user defined functions will demostrate better the
difference in the sampled points between the two settings of the Method
option:
NIntSampledPointsPlot[f_, {x_, a_, b_}, method_, {optsint___},
{optsplot___}] :=
  Block[{lst = {}}, lst = Reap[NIntegrate[f, {x, a, b}, Method ->
method, optsint, EvaluationMonitor :> Sow[x]]];
    ListPlot[lst[[2,1]], optsplot, PlotLabel ->
StringJoin["method\[Rule]", ToString[method], ",  sampled points: ",
       ToString[Length[lst[[2,1]]]], "\nestimate value: ",
ToString[lst[[1]]]]]]
NIntLinePlot[f_, {x_, a_, b_}, method_, {optsint___}, {optsplot___}] :=
  Block[{lst = {}, ff}, ff = Function[{x}, f]; lst = Reap[NIntegrate[f,
{x, a, b}, Method -> method, optsint,
       EvaluationMonitor :> Sow[x]]]; Show[(Graphics[{Red, Line[{{#1,
0}, {#1, ff[#1]}}]}] & ) /@ lst[[2,1]], optsplot]]
Then
(NIntSampledPointsPlot[f[x], {x, -3, 3}, #1, {PrecisionGoal -> 20,
WorkingPrecision -> 30},
    {ImageSize -> 600, PlotStyle -> PointSize[0.01], Frame -> {True,
True, False, False},
     TextStyle -> {FontFamily -> "Times"}}] & ) /@ {GaussKronrod,
Automatic}
(*plot to be displayed*)
Show[GraphicsArray[(NIntLinePlot[Exp[-5*x^2] + 1/2, {x, -3, 3}, #1, {},
{Frame -> True, DisplayFunction -> Identity,
       PlotLabel -> ToString[#1]}] & ) /@ {Automatic, GaussKronrod}],
ImageSize -> 800]
(*plot to be displayed*)
Thanks in advance
Dimitris

