Boole's rule
In mathematics, Boole's rule, named after George Boole, is a method of numerical integration.
Formula
Simple Boole's Rule
It approximates an integral: [math]\displaystyle{ \int_{a}^{b} f(x)\,dx }[/math] by using the values of f at five equally spaced points:[1] [math]\displaystyle{ \begin{align} & x_0 = a\\ & x_1 = x_0 + h \\ & x_2 = x_0 + 2h \\ & x_3 = x_0 + 3h \\ & x_4 = x_0 + 4h = b \end{align} }[/math]
It is expressed thus in Abramowitz and Stegun:[2] [math]\displaystyle{ \int_{x_0}^{x_4} f(x)\,dx = \frac{2 h}{45}\bigl[ 7f(x_0) + 32 f(x_1) + 12 f(x_2) + 32 f(x_3) + 7f(x_4) \bigr] + \text{error term} }[/math] where the error term is [math]\displaystyle{ -\,\frac{8f^{(6)}(\xi)h^7}{945} }[/math] for some number [math]\displaystyle{ \xi }[/math] between [math]\displaystyle{ x_0 }[/math] and [math]\displaystyle{ x_4 }[/math] where 945 = 1 × 3 × 5 × 7 × 9.
It is often known as Bode's rule, due to a typographical error that propagated from Abramowitz and Stegun.[3]
The following constitutes a very simple implementation of the method in Common Lisp which ignores the error term:
(defun integrate-booles-rule (f x1 x5) "Calculates the Boole's rule numerical integral of the function F in the closed interval extending from inclusive X1 to inclusive X5 without error term inclusion." (declare (type (function (real) real) f)) (declare (type real x1 x5)) (let ((h (/ (- x5 x1) 4))) (declare (type real h)) (let* ((x2 (+ x1 h)) (x3 (+ x2 h)) (x4 (+ x3 h))) (declare (type real x2 x3 x4)) (* (/ (* 2 h) 45) (+ (* 7 (funcall f x1)) (* 32 (funcall f x2)) (* 12 (funcall f x3)) (* 32 (funcall f x4)) (* 7 (funcall f x5)))))))
Composite Boole's Rule
In cases where the integration is permitted to extend over equidistant sections of the interval [math]\displaystyle{ [a, b] }[/math], the composite Boole's rule might be applied. Given [math]\displaystyle{ N }[/math] divisions, the integrated value amounts to:[4]
[math]\displaystyle{ \int_{x_0}^{x_N} f(x)\,dx = \frac{2 h}{45} \left( 7(f(x_0) + f(x_N)) + 32\left(\sum_{i \in \{1, 3, 5, \ldots, N-1\}} f(x_i)\right) + 12\left(\sum_{i \in \{2, 6, 10, \ldots, N-2\}} f(x_i)\right) + 14\left(\sum_{i \in \{4, 8, 12, \ldots, N-4\}} f(x_i)\right) \right) + \text{error term} }[/math]
where the error term is similar to above. The following Common Lisp code implements the aforementioned formula:
(defun integrate-composite-booles-rule (f a b n) "Calculates the composite Boole's rule numerical integral of the function F in the closed interval extending from inclusive A to inclusive B across N subintervals." (declare (type (function (real) real) f)) (declare (type real a b)) (declare (type (integer 1 *) n)) (let ((h (/ (- b a) n))) (declare (type real h)) (flet ((f[i] (i) (declare (type (integer 0 *) i)) (let ((xi (+ a (* i h)))) (declare (type real xi)) (the real (funcall f xi))))) (* (/ (* 2 h) 45) (+ (* 7 (+ (f[i] 0) (f[i] n))) (* 32 (loop for i from 1 to (- n 1) by 2 sum (f[i] i))) (* 12 (loop for i from 2 to (- n 2) by 4 sum (f[i] i))) (* 14 (loop for i from 4 to (- n 4) by 4 sum (f[i] i))))))))
See also
Notes
- ↑ Boole 1880, p. 47, Eq(21).
- ↑ Davis & Polonsky 1983.
- ↑ Weisstein.
- ↑ Sablonnière, Sbibih & Tahrichi 2010, p. 852.
References
- Boole, George (1880). A Treatise on the Calculus of Finite Differences (3rd ed.). Macmillan and Company. https://archive.org/details/cu31924031240934/page/n61/mode/2up?q=7.
- Abramowitz, Milton; Stegun, Irene Ann, eds (1983). "Chapter 25, eqn 25.4.14". Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables. Applied Mathematics Series. 55 (Ninth reprint with additional corrections of tenth original printing with corrections (December 1972); first ed.). Washington D.C.; New York: United States Department of Commerce, National Bureau of Standards; Dover Publications. pp. 886. LCCN 65-12253. ISBN 978-0-486-61272-0. http://www.math.sfu.ca/~cbm/aands/page_886.htm.
- Sablonnière, P.; Sbibih, D.; Tahrichi, M. (2010). "Error estimate and extrapolation of a quadrature formula derived from a quartic spline quasi-interpolant". BIT Numerical Mathematics 50: 843–862. doi:10.1007/s10543-010-0278-0.
- Weisstein, Eric W.. "Boole's Rule". http://mathworld.wolfram.com/BoolesRule.html.
Original source: https://en.wikipedia.org/wiki/Boole's rule.
Read more |