La regla de Boole es un método de cuadratura numérica que surge en el cálculo y recibe su nombre de George Boole . La regla de Boole y la regla de Boole compuesta aproximan el área bajo una curva en un intervalo fijo utilizando 5 puntos igualmente espaciados, y está diseñada para integrar con exactitud polinomios de quinto grado en dicho intervalo. Pertenece a la familia de reglas de Newton-Cotes .
Fórmula
Regla simple de Boole
Se aproxima a una integral utilizando los valores de f en cinco puntos igualmente espaciados: [ 1 ]
Así se expresa en el Manual de funciones matemáticas con fórmulas, gráficos y tablas matemáticas de Abramowitz y Stegun : [ 2 ] para algún númeroentrey , y 945 = 1 × 3 × 5 × 7 × 9 . A veces se la denomina erróneamente regla de Bode, debido a un error tipográfico que se propagó desde Abramowitz y Stegun. [ 3 ]
La siguiente es una implementación muy simple del método en Common Lisp que ignora el término de error:
( defun integrate-booles-rule ( f x1 x5 ) "Calcula la integral numérica de la regla de Boole de la función F en el intervalo cerrado que se extiende desde X1 inclusive hasta X5 inclusive sin incluir el término de error." ( 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 )))))))Regla de Boole compuesta
En los casos en que se permite que la integración se extienda sobre secciones equidistantes del intervalo, se podría aplicar la regla compuesta de Boole. Dadodivisiones, dondemod, el valor integrado asciende a [ 4 ] donde el término de error es similar al anterior. El siguiente código Common Lisp implementa la fórmula mencionada:
( defun integrate-composite-booles-rule ( f a b n ) "Calcula la integral numérica de la regla de Boole compuesta de la función F en el intervalo cerrado que se extiende desde A inclusivo hasta B inclusivo a través de N subintervalos." ( 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 ( bucle para i desde 1 hasta ( - n 1 ) por 2 suma ( f[i] i ))) ( * 12 ( bucle para i desde 2 hasta ( - n 2 ) por 4 suma ( f[i] i ))) ( * 14 ( bucle para ide 4 a ( - n 4 ) por 4 suma ( f[i] i ))))))))booleQuad <- function ( fx , dx ) { # Calcula la integral numérica compuesta de la regla de Boole # para una función con un vector de valores precalculados # fx evaluados en los puntos del vector dx. n <- length ( dx ) h <- diff ( dx ) stopifnot ( exprs = { length ( fx ) == n n > 8L h [ 1L ] >= 0 n >= 2L n %% 4L == 1L isTRUE ( all.equal ( h , rep ( h [ 1L ], length ( h )))) }) nm2 <- n - 2L cf <- double ( nm2 ) cf [ seq.int ( 1 , nm2 , 2L )] <- 32 cf [ seq.int ( 2 , nm2 , 4L )] <- 12 cf [ seq.int ( 4 , nm2 , 4L )] <- 14 cf <- c ( 7 , cf , 7 ) sum ( cf * fx ) * 2 * h [ 1L ] / 45 }Véase también
Notas
- ↑ Boole 1880 , pág. 47, Eq(21).
- ↑ Davis y Polonsky 1983 .
- ↑ Weisstein .
- ↑ Sablonnière, Sbibih y Tahrichi 2010 , p. 852.
Referencias
- Boole, George (1880) [1860]. Tratado sobre el cálculo de diferencias finitas (3.ª ed.). Macmillan and Company .
- Davis, Philip J.; Polonsky, Ivan (1983) [junio de 1964]. «Capítulo 25, ecuación 25.4.14» . En Abramowitz, Milton ; Stegun, Irene Ann (eds.). Manual de funciones matemáticas con fórmulas, gráficas y tablas matemáticas . Serie de Matemáticas Aplicadas. Vol. 55 (novena reimpresión con correcciones adicionales de la décima edición original con correcciones (diciembre de 1972); primera ed.). Washington D. C.; Nueva York: Departamento de Comercio de los Estados Unidos, Oficina Nacional de Normas; Dover Publications. pág. 886. ISBN 978-0-486-61272-0. LCCN 64-60036 . MR 0167642 . LCCN 65-12253 .
- Sablonnière, P.; Sbibih, D.; Tahrichi, M. (2010). "Estimación de error y extrapolación de una fórmula de cuadratura derivada de un cuasi-interpolante de spline cuártico". BIT Numerical Mathematics . 50 (4): 843– 862. doi : 10.1007/s10543-010-0278-0 .
- Weisstein, Eric W. "La regla de Boole" . MathWorld .
- cálculo integral
- Análisis numérico
- Integración numérica