Articulo de referencia

Regla de Boole

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 á...

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 abF(incógnita)dincógnita{\displaystyle \int _{a}^{b}f(x)\,dx} utilizando los valores de f en cinco puntos igualmente espaciados: [ 1 ]incógnita0=a,incógnita1=incógnita0+h,incógnita2=incógnita0+2h,incógnita3=incógnita0+3h,incógnita4=incógnita0+4h=b.{\displaystyle {\begin{aligned}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{aligned}}}

Así se expresa en el Manual de funciones matemáticas con fórmulas, gráficos y tablas matemáticas de Abramowitz y Stegun : [ 2 ]incógnita0incógnita4F(incógnita)dincógnita=2h45[7F(incógnita0)+32F(incógnita1)+12F(incógnita2)+32F(incógnita3)+7F(incógnita4)]8F(6)(ξ)h7945{\displaystyle \int _{x_{0}}^{x_{4}}f(x)\,dx={\frac {2h}{45}}{\bigl [}7f(x_{0})+32f(x_{1})+12f(x_{2})+32f(x_{3})+7f(x_{4}){\bigr ]}-{\frac {8f^{(6)}(\xi )h^{7}}{945}}} para algún númeroξ{\displaystyle \xi }entreincógnita0{\displaystyle x_{0}}yincógnita4{\displaystyle x_{4}} , 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:

Ejemplo de implementación en Common Lisp
( 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[a,b]{\displaystyle [a,b]}, se podría aplicar la regla compuesta de Boole. Dadonorte{\displaystyle N}divisiones, dondenorte{\displaystyle N}mod4=0{\displaystyle 4=0}, el valor integrado asciende a [ 4 ]incógnita0incógnitanorteF(incógnita)dincógnita=2h45[7(F(incógnita0)+F(incógnitanorte))+32i{1,3,5,,norte1}F(incógnitai)+12i{2,6,10,,norte2}F(incógnitai)+14i{4,8,12,,norte4}F(incógnitai)]+término de error,{\displaystyle \int _{x_{0}}^{x_{N}}f(x)\,dx={\frac {2h}{45}}\left[7{\big (}f(x_{0})+f(x_{N}){\big )}+32\sum _{i\in \{1,3,5,\ldots ,N-1\}}f(x_{i})+12\sum _{i\in \{2,6,10,\ldots ,N-2\}}f(x_{i})+14\sum _{i\in \{4,8,12,\ldots ,N-4\}}f(x_{i})\right]+{\text{error term}},} donde el término de error es similar al anterior. El siguiente código Common Lisp implementa la fórmula mencionada:

Ejemplo de implementación en Common Lisp
( 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 ))))))))
Ejemplo de implementación en R
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

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 .