Re: Why I got inumr??
- To: mathgroup at smc.vnet.net
- Subject: [mg81020] Re: Why I got inumr??
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Sat, 8 Sep 2007 03:50:05 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <fbqpld$6eu$1@smc.vnet.net>
hj.gegewu wrote:
> I have a problem when I try to Nintegrate following code:
>
> a = 0; b = 2;
>
> P = (Max[0, (Min[b, #2*Cos[#3] + Sqrt[#1^2 - (#2*Sin[#3])^2]] -
> Max[a, #2*Cos[#3] - Sqrt[#1^2 - (#2*Sin[#3])^2]])/(b -
> a)]) &;
>
> ProbR1 = (NIntegrate[
> P[(-#1*Cos[z] + Sqrt[#2^2 - (#1 *Sin[z])^2])/#3, x,
> y]/(4*Pi^2*(b - a)), {z, Pi - ArcSin[#2/#1],
> Pi + ArcSin[#2/#1]}, {y, 0, 2*Pi}, {x, a,
> Min[b, (-#1*Cos[z] + Sqrt[#2^2 - (#1 *Sin[z])^2])/(#3*
> Abs[Sin[y]])]},
> Method -> {"GlobalAdaptive",
> "SingularityHandler" -> "DuffyCoordinates"}]) &;
>
> ProbR2 = (NIntegrate[
> P[(-#1*Cos[z] - Sqrt[#2^2 - (#1 *Sin[z])^2])/#3, x,
> y]/(4*Pi^2*(b - a)), {z, Pi - ArcSin[#2/#1],
> Pi + ArcSin[#2/#1]}, {y, 0, 2*Pi}, {x, a,
> Min[b, (-#1*Cos[z] + Sqrt[#2^2 - (#1 *Sin[z])^2])/(#3*
> Abs[Sin[y]])]},
> Method -> {"GlobalAdaptive",
> "SingularityHandler" -> "DuffyCoordinates"}]) &;
>
> ProbR1[130, 125, 50]
> ProbR2[130, 125, 50]
>
> while the line of "ProbR1[130, 125, 50]" can be caculated correctly, the line of "ProbR2[130, 125, 50]" keeps giving me the warning of
>
> NIntegrate::inumr: "The integrand \
> Max[0,1/2\(-Max[0,Times[<<2>>]+Times[<<2>>]]+Min[2,x\Cos[<<1>>]+Sqrt[\
> Plus[<<2>>]]])]/(8\\[Pi]^2) has evaluated to non-numerical values for \
> all sampling points in the region with boundaries \
> {{0.5,0.75},{0.125,0.0625},{0.5,0.25}}."
>
> The only difference of these two sentence is the sign of "Sqrt[#2^2 - (#1 *Sin[z])^2])". Why this happened?
What version of Mathematica are you using? I would not blindly trust the
result for the first expression: Mathematica 6.0.1 returns some long
warnings before outputting the "result".
In[5]:= ProbR1[130, 125, 50]
During evaluation of In[5]:= NIntegrate::slwcon: Numerical \
integration converging too slowly; suspect one of the following: \
singularity, value of the integration is 0, highly oscillatory \
integrand, or WorkingPrecision too small. >>
During evaluation of In[5]:= NIntegrate::eincr: The global error of \
the strategy GlobalAdaptive has increased more than 2000 times. The \
global error is expected to decrease monotonically after a number of \
integrand evaluations. Suspect one of the following: the working \
precision is insufficient for the specified precision goal; the \
integrand is highly oscillatory or it is not a (piecewise) smooth \
function; or the true value of the integral is 0. Increasing the \
value of the GlobalAdaptive option MaxErrorIncreases might lead to a \
convergent numerical integration. NIntegrate obtained \
0.37889873229233717` and 0.00026093286784722514` for the integral and \
error estimates. >>
Out[5]= 0.378899
Regards,
--
Jean-Marc