Re: SingularityDepth option to NIntegrate in Mathematica 6
- To: mathgroup at smc.vnet.net
- Subject: [mg77779] Re: SingularityDepth option to NIntegrate in Mathematica 6
- From: antononcube <antononcube at gmail.com>
- Date: Sat, 16 Jun 2007 03:59:22 -0400 (EDT)
- References: <f4ojk5$67p$1@smc.vnet.net>
> Why is the SingularityDepth option no longer required / useful?
Since NIntegrate has a number of methods to which SingularityDepth
does not apply, SingularityDepth is a method suboption. It is a
suboption of the methods GlobalAdaptive and LocalAdaptive. Here is an
example:
NIntegrate[1/Sqrt[x],{x,0,1},Method-
>{"GlobalAdaptive","SingularityDepth"->Infinity}]
> Does setting the value of SingularityDepth have any effect?
Yes, setting the SingularityDepth has effect on the evaluation (for
backward compatibility), as it can be seen from the results below:
In[104]:= k = 0;NIntegrate[1/Sqrt[x], {x, 0, 1}, EvaluationMonitor :> k
++];k
Out[106]= 132
In[107]:= k = 0;NIntegrate[1/Sqrt[x], {x, 0, 1}, SingularityDepth ->
10, EvaluationMonitor :> k++];k
During evaluation of In[107]:= NIntegrate::ncvb: NIntegrate failed to
\
converge to prescribed accuracy after 9 recursive bisections in x \
near {x} = {0.00193758}. NIntegrate obtained 1.997237951127453` and \
0.004238324551439297` for the integral and error estimates. >>
Out[109]= 209
If, for example, a non-adaptive integration algorithm is used, then
specifying SingularityDepth does not have effect:
In[117]:= k = 0;
NIntegrate[1/Sqrt[x], {x, 0, 1}, Method -> DoubleExponential,
EvaluationMonitor :> k++];k
Out[119]= 33
In[120]:= k = 0;
NIntegrate[1/Sqrt[x], {x, 0, 1}, SingularityDepth -> 10, Method ->
DoubleExponential, EvaluationMonitor :> k++];k
Out[122]= 33
Anton Antonov,
Wolfram Research, Inc.