Apuntes de J. Lorente 1.3 1.3.1 25 Derivación e integración numéricas. Fórmulas de tipo interpolatorio Sea L : F → R un funcional real sobre un conjunto de funciones y sean Li : F → R i = 0, 1, . . . , n funcionales conocidos dados. Llamamos Fórmula Numérica para L (f ) a la expresión: n P αi Li (f ). Ası́, podemos escribir, i=0 L (f ) = n X αi Li (f ) + R (f ) (1.11) i=0 donde R (f ) representa el error de la fórmula. Como casos particulares de nuestro interés están las fórmulas de derivación e integración numéricas (D.N. e I.N.). Una fórmula de D.N. para calcular la derivada primera en un punto a de f (x) conocidos los valores de ésta en puntos x0 , x1 , . . . , xn es una expresión del tipo: 0 f (a) = n X αi f (xi ) + R (f ) (1.12) i=0 Aquı́, L (f ) = f 0 (a) y los funcionales Li (f ) = f (xi ) i = 0, 1, . . . , n. De forma similar al caso de D.N. si se conocen los valores de f en x0 , x1 , . . . , xn entonces una fórmula de I.N. clásica tiene la forma: b Z f (x) dx = a (ahora, el funcional es L (f ) = n X αi f (xi ) + R (f ) (1.13) i=0 Rb a f (x) dx y Li (f ) = f (xi ) i = 0, 1, . . . , n). Otro caso habitual de I.N. es cuando usamos valores de la función y su derivada en nodos dados; a saber, Z b n X f (x) dx = (αi f (xi ) + βi f 0 (xi )) + R (f ) a i=0 ¿Cómo se obtienen fórmulas particulares que tengan propiedades de interés? Una respuesta es utilizar criterios de interpolación, exactitud en cierto espacio de funciones elementales, etc,.. 26 Prelininares. Definición 1.10 (tipo interpolatorio) 1. La fórmula (1.11) es de tipo interpolatorio si se obtiene a partir del interpolante, p ∈ H ⊂ F, de f ; es decir, ! n X L (f ) = L (p) + R (f ) αi Li (f ) = L (p) (1.14) i=0 donde dim(H) = n + 1 y Li (p) = Li (f ) i = 0, 1, . . . , n. 2. si H = Pn diremos que la fórmula es de tipo interpolatorio clásico. Además, usando la fórmula de interpolación de Lagrange, se obtiene: αi = L (li (x)) i = 0, 1, . . . , n donde li (x) i = 0, 1, . . . , n son los polinomios (caso H = Pn ) básicos de Lagrange asociados a los funcionales {Lj }. Definición 1.11 (exactitud) • Diremos que la fórmula (1.11) es exacta para ϕ sii R (ϕ) = 0. • Se dice que una fórmula tiene grado de exactitud m sii la fórmula es exacta para {1, x, . . . , xm } y R (xm+1 ) 6= 0. Teorema 1.34 Una fórmula (1.11) es de tipo interpolatorio clásico si, y sólo si, tiene grado de exactitud al menos n (la fórmula es exacta en Pn ) En (1.14) es sencillo obtener una expresión de R(f ) a partir del error de interpolación. Ası́, si E(f ) = f − p es el error de interpolación, entonces: R (f ) = L (f ) − L (p) = ↑ por la linealidad L (f − p) = L (EI (f )) es decir, el error de la fórmula es el operador L aplicado al error de interpolación. 1.3.2 Derivación numérica. Supongamos que deseamos obtener una fórmula de D.N. de tipo interpolatorio para calcular f 0 (a); entonces, ésta será de la forma: f 0 (a) = n X αi f (xi ) + R (f ) i=0 los coeficientes de la fórmula se pueden obtener como sigue: (1.15) Apuntes de J. Lorente • Si li (x) = n Q j=0 j6=i x−xj xi −xj 27 son polinomios de Lagrange para los nodos {xi }; entonces: αi = li0 (a) • Mediante exactitud para {1, x, . . . , xn }; entonces, los coeficientes αi son la solución del sistema lineal (n + 1) × (n + 1). • Usando desarrollos de Taylor; a saber, en cada nodo la función se puede escribir como: f (xi ) = f (a) + f 0 (a) hi + · · · + f k) (a) hm hki + · · · + f m) (θi ) i k! m! donde hi = xi − a. Ası́, para conseguir los coeficientes de la fórmula basta obtener la suma indicada en (1.13) e imponer que sean cero los términos que corresponden a derivadas sucesivas salvo la de primer orden que se iguala a 1 (hasta conseguir un sistema lineal de orden (n + 1) × (n + 1)). Si lo que se desea es una fórmula de derivación numérica para f k) (a), ¿cómo procederı́amos? Error de la fórmula mediante Newton Ası́, si pn (x) es el interpolante de f (x) en {x0 , x1 , . . . , xn } entonces: EI (f, x) = f (x) − pn (x) = f [x0 , x1 , . . . , xn , x] n Y (x − xi ) i=0 Por lo tanto, para funciones suficientemente derivables, se puede obtener la expresión de error, para la fórmula (1.15), siguiente: R (f ) = EI0 (f ) |x=a = f n+2) (θ1 ) f n+1) (θ2 ) 0 Π (a) + Π (a) (n + 2)! (n + 1)! donde Π (x) = (x − x0 ) (x − x1 ) · · · (x − xn ). Algunas fórmulas habituales. Fórmulas con dos nodos (x0 , x1 ): f 0 (a) ≈ f [x0 , x1 ] = con error R (f ) = f 3) (θ1 ) 3! f (x1 ) − f (x0 ) 1 1 =− f (x0 ) + f (x1 ) x1 − x0 x1 − x0 x1 − x0 (a − x0 ) (a − x1 ) + f 2) (θ2 ) 2 (2a − x0 − x1 ) Como casos particulares de interés se tienen las fórmulas con término de error siguientes: (1.16) 28 Prelininares. Fórmula de diferencia progresiva (a, a + h): f 0 (a) = f (a + h) − f (a) + R(f ) h con R(f ) = − f 00 (θ1 ) h 2 Fórmula de diferencia regresiva (a, a − h): f 0 (a) = f (a) − f (a − h) + R(f ) h con R(f ) = f 00 (θ2 ) h 2 Fórmula de diferencia centrada (a + h, a − h): f 0 (a) = f (a + h) − f (a − h) f 000 (θ3 ) 2 − h 2h 6 Fórmula centrada para f 00 (a) con tres nodos (a − h, a, a + h): f 00 (a) = donde R (f ) = − f iv) (θ) 12 f (a − h) − 2f (a) + f (a + h) + R(f ) h2 h2 Errores y condicionamiento en la derivación numérica. h→0 Si bien, en las fórmulas descritas anteriormente, R (f ) → 0, veamos qué puede ocurrir, en la práctica, por ejemplo para la fórmula de dos nodos: f 0 (a) = f (a + h) − f (a − h) f 000 (θ3 ) 2 − h 2h 6 Supongamos que en cada evaluación de f se comete un error de redondeo acotado por el valor fijo ε; es decir, f˜ (a + h) = f (a + h) + δh ; f˜ (a − h) = f (a − h) + δ−h con |δh | , |δ−h | ≤ ε en consecuencia al evaluar la fórmula de derivación numérica para un h > 0 tendremos: f˜ (a + h) − f˜ (a − h) f 000 (θ3 ) 2 ε 0 h + f (a) − ≤ 2h 6 h ≤ ↑ si f 000 está acot M 2 ε h + 6 h Para responder hagamos la función g (h) = M6 h2 + hε mı́nima. El valor mı́nimo se consigue para q √ 3 3ε h= 3 M dando un valor mı́nimo para la cota: g (h) = 21 9ε2 M . Este cálculo nos dice que no es conveniente una elección de h mucho menor que el obtenido. Por ejemplo, si tomamos M = 10, ε = 0.01, la gráfica de g(h) es: Apuntes de J. Lorente 29 Figura 1.1: 1.3.3 Integración Numérica. Consideramos fórmulas de tipo interpolatorio de la forma: b Z f (x) dx = a n X αi f (xi ) + R (f ) (1.17) i=0 Si p(x) es el polinomio de interpolación de f (x) en {x0 , x1 , . . . , xn } y li (x) los polinomios de Lagrange, entonces la fórmula (1.17) es: Z b Z b p (x) dx + R(f ) = f (x) dx = a a donde αi = Rb a li (x)dx y R(f ) = n X αi f (xi ) + R (f ) i=0 Rb a f [x0 , x1 , . . . , xn , x]Π(x)dx con Π(x) = (x − x0 )(x − x1 ) · · · (x − xn ) Fórmulas particulares: • fórmula del punto medio (un nodo x0 = a+b ): 2 b Z f (x)dx = (b − a) f a donde R (f ) = (b−a)3 00 f 24 a+b 2 + R(f ) (ξ) • Fórmula del trapecio (usa los nodos x0 = a, x1 = b): Z b f (x)dx = a 3 b−a (f (a) + f (b)) + R(f ) 2 con término de error: R (f ) = − (b−a) f 00 (ξ) 12 (1.18) 30 Prelininares. • Fórmula de Simpson (usa los nodos x0 = a, x1 = Z a b b−a f (x)dx = 6 a+b , x2 2 = b): a+b f (a) + 4f + f (b) + R(f ) 2 5 y el término de error es: R (f ) = − (b−a) f iv) (ξ) 2880 Estas fórmulas se obtienen mediante interpolación o también mediante exactitud. Fórmulas de Newton-Cotes. Una fórmula de integración numérica de tipo interpolatorio se llama de Newton-Cotes si adopta una de las formas siguientes: • Fórmulas Cerradas: • Fórmulas Abiertas: donde h = Rb a Rb a f (x)dx = n P αi f (a + ih) + R(f ) i=0 f (x)dx = n−1 P αi f (a + ih) + R(f ) i=1 b−a n Por lo tanto, las fórmulas abiertas usan los nodos interiores de una partición uniforme del intervalo de integración y las cerradas usan todos los nodos de la partición. Ası́, las fórmulas del trapecio y Simpson son cerradas y la del punto medio es abierta. 1.3.4 Fórmulas gaussianas El grado de exactitud que se puede alcanzar con una F.I.N de tipo interpolatorio es > n pero, ¿cuál es el grado real de la fórmula? Teorema 1.35 Dada la fórmula de I.N. (1.17), se satisfacen: 1. El grado máximo de exactitud es 2n + 1. 2. La fórmula tiene grado de exactitud n + q (q > 1) si, y sólo si, se satisface: Rb j x Π(x)dx = 0 j = 0, . . . , q − 1 a Rb a q x Π(x)dx 6= 0 donde Π(x) = (x − x0 )(x − x1 ) · · · (x − xn ) ¿Existen fórmulas de tipo interpolatorio (1.17) con el grado máximo de exactitud? (1.19) Apuntes de J. Lorente 31 En definitiva, lo que estamos pidiendo es si podemos elegir los nodos de la fórmula de modo que (1.19) se cumpla con q = n + 1; es decir, Z b xj Π(x)dx = 0 j = 0, . . . , n (1.20) a Proposición 1.6 Existen (n + 1)−nodos únicos en el intervalo ]a, b[ para los que se cumple (1.20) En la práctica, para obtener una fórmula con grado máximo de excatitud no se resuelve directamente el sistema (1.20) con incógnitas los xi i = 0, 1, . . . , n sino en la forma siguiente: • Paso 1: Tomamos Π(x) = xn+1 −an xn −· · ·−a1 x−a0 y calculamos los coeficientes, resolviendo el sistema (n + 1) × (n + 1): Z b Z b j+n+1 x dx = xj (an xn + · · · + a1 x + a0 )dx j = 0, . . . , n (1.21) a a • Paso 2: Calculamos las raı́ces de Π(x) = 0. Estas serán los nodos para la fórmula. • Paso 3: Por último obtenemos los coeficientes de la fórmula I.N. con nodos los del paso 2 (para ello podemos utilizar exactitud para {1, x, . . . , xn }) La fórmula obtenida mediante los pasos 1,2,3 se conoce como fórmula Gaussiana de (n + 1)nodos. Fórmulas gaussianas clásicas: Gauss-Legendre: son fórmulas con intervalo de integración [−1, 1]; es decir, Z 1 n X f (x) dx = αi f (xi ) + R (f ) −1 i=0 Gauss-Chebyshev: son fórmulas con intervalo de integración [−1, 1] y función peso w(x) = es decir, √ 1 ; 1−x2 Z 1 w(x)f (x) dx = −1 n X αi f (xi ) + R (f ) i=0 Error en una fórmula gaussiana. Si la fórmula del tipo Rb a f (x) dx = n P αi f (xi ) + R (f ) es gaussiana; es decir, los nodos son elegidos i=0 en las condiciones descritas, entonces es posible expresar el error como: f 2n+2) (ξ) R(f ) = (2n + 2)! Z a b Π(x)2 dx 32 Prelininares. suponiendo que f ∈ C 2n+2 ([a, b]) OBSERVACIONES: 1. Todo el desarrollo para I.N. sigue siendo válido para la obtención de fórmulas con función peso en el integrado sin más que incluir en cada integración tal función peso. 2. En cada caso, el polinomio a calcular, Π(x), para la fórmula gaussiana es el polinomio mónico de grado n + 1 ortogonal respecto del producto escalar asociado a la integral que se aproxima. Por ejemplo, si queremos una fórmula de Gauss-Chebyshev para dos nodos podemos tomar Π(x) = T2 (x)/2 = x2 − 12 3. Los coeficientes de una fórmula gaussiana son positivos y satisfacen la propiedad de simetrı́a siguiente: αj = αn−j ∀j 4. Los nodos de la fórmula (ordenados de menor a mayor) son simétricos respecto del centro del intervalo de integración. 5. Las fórmulas gaussianas son convergentes ( si n → ∞) para funciones continuas. 1.3.5 Fórmulas compuestas Sea {a = x0 , x1 , . . . , xn = b} una partición del intervalo [a, b] entonces, b Z f (x)dx = a n Z X i=1 xi f (x)dx = xi−1 n X Fi + RF C (f ) (1.22) i=1 donde Fi representa la fórmula de I.N. para el subintervalo [xi−1 , xi ] y RF C (f ) es el error total en la fórmula (1.22) que puede obtenerse a partir de los errores para Fi ; es decir, RF C (f ) = n X Ri (f ) (1.23) i=1 Ejemplos (con partición uniforme de paso h = Notamos fi = f (xi ) y fi− 1 = f ( xi−12+xi ) b−a ): n 2 • Fórmula del trapecio compuesta: Si usamos las fórmulas Fi = h2 (fi−1 + fi ); entonces, Z a b h f (x)dx = 2 2 cuyo error es RT C (f ) = − (b−a)h f 00 (ξ) 12 f (a) + 2 n−1 X i=1 ! fi + f (b) + RT C (f ) (1.24) Apuntes de J. Lorente 33 • Fórmula de Simpson compuesta: Si usamos las fórmulas Fi = h6 (fi−1 + 4fi− 1 + fi ); es decir, 2 Z a b h f (x)dx = 6 f (a) + 4 n X fi− 1 + 2 n−1 X 2 i=1 ! fi + f (b) + RSC (f ) (1.25) i=1 4 f iv) (ξ) cuyo error es RSC (f ) = − (b−a)h 2880 Las fórmulas compuestas del trapecio y Simpson convergen al valor exacto de la integral que aproximan cuando h → 0 1.3.6 Extrapolación de Richardson. Esta es una técnica que permite mejorar el orden de convergencia de una fórmula numérica para la aproximación de un valor L (f ). Supongamos que la fórmula utilizada expresada por el valor N (h) es tal que: L (f ) = N0 (h) + a1 hk + ∞ X ai hki (1.26) i=2 donde k ∈ {1, 2, . . .}. Esto indica que la fórmula es de orden de convergencia k. ¿se puede obtener una fórmula más precisa a partir de la anterior? Nos ocupamos de esto como sigue: Si sustituimos, en (1.26), h por h/2 se tendrá: ki ∞ h h hk X ai L (f ) = N0 + a1 k + 2 2 2 i=2 (1.27) combinando de forma apropiada (1.26) y (1.27) se obtiene: L (f ) = 2k N0 h 2 2k ∞ X − N0 (h) + b2 h2k + bi hk·i −1 i=3 (1.28) Por lo tanto, la fórmula: N1 (h) = 2k N0 h 2 2k − N0 (h) −1 tiene orden de convergencia 2k. Ası́, haciendo divisiones sucesivas de h; a partir de los valores N0 (h) , N0 se obtienen los de N1 2hj j = 0, 1, , m − 1: N1 h 2j = 2k N0 h − N0 2j+1 k 2 −1 h 2j h 2 , N0 h 4 , . . . , N0 h 2m 34 Prelininares. Pero siguiendo la idea anterior podrı́amos mejorar la precisión de la nueva fórmula de forma que se puede construir una tabla de valores numéricos: N ivel 0 N ivel 1 N0 (h) N0 h2 N1 (h) N0 h4 N1 h2 · · .. .. . . h h N0 2m N1 2m−1 ··· .. N ivel j ··· Nj (h) .. . ... N ivel m . ··· ··· Nj h 2m−j ··· Nm (h) donde, siguiendo lo hecho para (1.27) y (1.26) se tiene: Nj (h) = Proposición 1.7 Sean D[i.j] = Nj 1. D[i.j] = h 2i−j 2k j h 2 k (2 )j Nj−1 − Nj−1 (h) −1 j = 1, . . . , m para j = 0, . . . , m, i = j, . . . , m. Entonces se verifica: 2k.j D[i,j−1]−D[i−1,j−1] ; 2k.j −1 2. L (f ) = D[j, j] + ∞ P al,j hkl ¿al,j =? l=j EJEMPLO Se puede aplicar este procedimiento denominado de EXTRAPOLACIÓN DE RICHARDSON a la fórmula de diferencias centradas para la derivada f 0 (a). En efecto, si escribimos el desarrollo de Taylor de f para a + h y a − h es fácil deducir la igualdad: f 0 (a) = f (a + h) − f (a − h) + a2 h2 + a4 h4 + . . . + a2m h2m + . . . 2h expresión del tipo (1.26). Siguiendo el procedimiento descrito para L(f), podemos calcular los valores de la tabla mediante el ALGORITMO siguiente: Apuntes de J. Lorente 35 ENTRADA: f (x) , h, M PROCESO: 1. Para i = 0, . . . , M calcular D[i, 0] = h f (a + h) − f (a − h) ; h= 2h 2 2. para j = 1, . . . , M y i = j, . . . , M calcular D[i.j] = 4j D[i, j − 1] − D[i − 1, j − 1] 4j − 1 SALIDA: valor aproximado de f 0 (a) es D[M, M ]