Jump to content

Boole's rule: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Found original source
top: More precise
Line 11: Line 11:
|title=A Treatise on the Calculus of Finite Differences
|title=A Treatise on the Calculus of Finite Differences
|url=https://archive.org/details/cu31924031240934/page/n61/mode/2up?q=7
|url=https://archive.org/details/cu31924031240934/page/n61/mode/2up?q=7
|page=47
|at=Eq. (21) on p. 47
|publisher=[[Macmillan Publishers|Macmillan and Company]]
|publisher=[[Macmillan Publishers|Macmillan and Company]]
}}</ref>
}}</ref>

Revision as of 13:57, 21 December 2022

In mathematics, Boole's rule, named after George Boole, is a method of numerical integration. It approximates an integral:[1]

by using the values of f at five equally spaced points:

It is expressed thus in Abramowitz and Stegun (1972, p. 886):

where the error term is

for some number c between x1 and x5. (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 (1972, p. 886).[2][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 , the composite Boole's rule might be applied. Given divisions, the integrated value amounts to[4]

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

References

  1. ^ Boole, George (1880) [1860]. A Treatise on the Calculus of Finite Differences (3rd ed.). Macmillan and Company. Eq. (21) on p. 47.
  2. ^ Weisstein, Eric W. "Boole's Rule". MathWorld.
  3. ^ Zucker, Ruth (1983) [June 1964]. "Chapter 25.4.14: Numerical Interpolation, Differentiation, and Integration - Integration - Numerical Analysis". In Abramowitz, Milton; Stegun, Irene Ann (eds.). Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables. Applied Mathematics Series. Vol. 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. p. 886. ISBN 978-0-486-61272-0. LCCN 64-60036. MR 0167642. LCCN 65-12253.
  4. ^ Ubale, P. V. (2012). Numerical Solution of Boole’s rule in Numerical Integration By Using General Quadrature Formula (PDF). G. S. College of Science, Arts, Comm., Khamgaon, India. Retrieved 17 April 2021.