On 2014-08-29, kcrisman <
kcri...@gmail.com> wrote:
> sage: numerical_integral(f2,1,10^8)
> (0.8815690504421161, 3.309409685784312e-09)
> sage: numerical_integral(f2,1,10^9)
> (0.8815690594421439, 2.7280605832086615e-08)
> sage: numerical_integral(f2,1,10^10)
> (0.8815690603426408, 6.194229607849825e-07)
> sage: numerical_integral(f2,1,4.5*10^10)
> (0.8815690604198958, 2.5079492928729825e-11)
> sage: numerical_integral(f2,1,10^11)
> (2.3214916598860602e-07, 4.5569931705290324e-07)
> This uses the Gnu Scientific Library. Perhaps this is a limitation of how
> it is constructed. But I have a feeling someone else who knows more about
> the internals of quadrature methods will have more info, so for now I've
> opened
http://trac.sagemath.org/ticket/16905 for this bug. Thank you!
Sage punts numerical integrals to QUADPACK or a translation of it,
right? QUADPACK is based on Gauss-Kronrod rules which are essentially
Gaussian integration + an efficient refinement scheme. To determine
whether to refine the estimate, the integrand is evaluated at some
points. The difficulty with 1/sqrt(x^4 + 2) is that it is nearly zero
for much of the interval (1, 10^11). If it is close enough to zero
at the evaluation points, the refinement heuristic can be fooled.
Probably other quadrature methods can be fooled in a similar way.
I guess this is a bug in the sense that the result is far from correct
even though the code is a correct implementation of the method.
I wonder what other heuristic could be invented -- maybe since we
can see that integrals on shorter intervals are much larger and
the integrand is nonnegative, the integral on the whole interval
must be at least that large -- perhaps that can be formalized.
I am trying the examples with QUADPACK functions in Maxima --
I find that quad_qags(f2, x, 1, 10^11) fails (with error=5, "integral
is probably divergent or slowly convergent") but
quad_qag(f2, x, 1, 10^11, 4) succeeds, likewise quad_qagi(f2, x, 1, inf)
succeeds. If Sage is indeed calling QUADPACK, perhaps at least the
error number can be reported?
For what it's worth,
Robert Dodier