Take the 2-minute tour ×
MathOverflow is a question and answer site for professional mathematicians. It's 100% free, no registration required.

I need to evaluate some (one-variable) integrals that neither SAGE nor Mathematica can do symbolically. As far as I can tell, I have two options:

(a) Use GSL (via SAGE), Maxima or Mathematica to do numerical integration. This is really a non-option, since, if I understand correctly, the "error bound" they give is not really a guarantee.

(b) Cobble together my own programs using the trapezoidal rule, Simpson's rule, etc., and get rigorous error bounds using bounds I have for the second (or fourth, or what have you) derivative of the function I am integrating. This is what I have been doing.

Is there a third option? Is there standard software that does (b) for me?

share|improve this question
1  
The ideal thing would be a program that could also come up with the derivative bounds on its own, given the symbolic expression for the function. (This should be possible in lots of cases where symbolic integration just isn't possible at all.) –  H A Helfgott Mar 5 '13 at 23:20
    
Just to make myself clear: I would much appreciate a reference to open-source software that does this. –  H A Helfgott Mar 10 '13 at 14:20
3  
2  
Vonjd, here are some fairly representative examples. (And yes, Henry, I've been coding things myself.) (a) $\int_{0+}^{1-} |h'''(x)| dx$, where $h(x) = x^2 (1-x)^2 e^x$. (easiest) (b) $\widehat{f}(t)$ at all points in $t\in (-655,655)\cap 0.001\mathbb{Z}$, where $f(x) = 4 x^{-2}$ if $x\in \lbrack 1/2,1\rbrack$, $f(x) = -4 x^{-2}$ if $x\in \lbrack 1/4,1/2\rbrack$ and $f(x)=0$ if $x<1/4$ or $x\geq 1$. (Already did this, though without interval arithmetic.) (c) $\int_{-\infty}^\infty |\gamma(it+1,-1) + \gamma(it+2,-2)| dt$, where $\gamma(s,x)=\int_0^x e^{-t} t^{s-1} dt$. –  H A Helfgott Mar 11 '13 at 15:50
1  
Taking derivatives is easy. I can do (a) and (b) with my own code, and a friend just helped set up VNODE-LP to do (a) and (b). It is (c) that looks nasty right now; if you replace $\gamma$ by its definition, you get a double integral. By the way, that should really be $\int_{-\infty}^\infty |\gamma(it+1,-1)+\gamma(it+2,-1)| dt. –  H A Helfgott Mar 13 '13 at 17:58
show 5 more comments

2 Answers 2

up vote 6 down vote accepted

Interval arithmetic methods will permit rigorous bounds. You might try INTLAB. There are various books on rigorous numerics, e.g., Warwick Tucker's Validated Numerics, and the journal Reliable Computing is dedicated to such things.

share|improve this answer
1  
I'm not sure machine arithmetic is the issue here. The main problem is using some derivative bound to make sure that the function won't get crazy outside of the evaluation points. –  Federico Poloni Mar 6 '13 at 8:27
    
One could combine IA and automatic differentiation to address derivative bounds rigorously. In fact so-called Taylor forms generalize IA and can provide this capability. –  Steve Huntsman Mar 6 '13 at 12:31
1  
Hi - thanks for the answer, but, as was said above, interval arithmetic is not the main issue here (though it's nice to have). Do you know whether INTLAB does integration given derivative bounds? Also, is there a free-software alternative? –  H A Helfgott Mar 6 '13 at 14:26
add comment

VNODE-LP is a C++ package with which you should be able to achieve the desired task:

VNODE-LP is a C++ package for computing bounds on solutions in IVPs for ODEs. In contrast to traditional ODE solvers, which compute approximate solutions, this solver tries to prove that a unique solution to a problem exists and then computes bounds that contain this solution. Such bounds can be used to help prove a theoretical result, check if a solution satisfies a condition in a safety-critical calculation, or simply to verify the results produced by a traditional ODE solver.

This package is a successor of the VNODE package of N. Nedialkov (mentioned above in the comments by Gilead).

It is free and can be downloaded here:
http://www.cas.mcmaster.ca/~nedialk/vnodelp/

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.