MÉTODOS MATEMÁTICOS (Curso 2012-2013) Cuarto Curso de Ingeniero Industrial Departamento de Matemática Aplicada II. Universidad de Sevilla Lección 5: Cuadratura y Derivación Numéricas Introducción. Se entiende por cuadratura el cálculo de integrales definidas de funciones de una variable, esto es, el cálculo del valor Z b f (x) dx, I(f ) = a para ciertos valores a < b. La palabra integración se reserva para la resolución de ecuaciones diferenciales. Por el contrario, por derivación se entiende el cálculo del valor de la derivada de una función en un punto. La idea básica de la cuadratura numérica es aproximar el valor de I(f ) por la integral de un interpolante, Z b I(f ) ≈ p(x) dx, a bien sea este el polinomio interpolador de f asociado a ciertos nodos, bien un interpolante a trozos asociado a una partición ∆ de [a, b]. En el primer caso, la aproximación da lugar a lo que se conoce como fórmulas de cuadratura; en el segundo caso a las fórmulas de cuadratura compuesta. También estudiaremos en esta lección las técnicas de derivación numérica, esto es procedimientos para aproximar D(f ) = f 0 (x∗ ), D2 (f ) = f 00 (x∗ ), etc., en donde de nuevo la idea será aproximar mediante las derivadas de un polinomio interpolador p adecuado, D(f ) ≈ p0 (x∗ ), D2 (f ) ≈ p00 (x∗ ), etc., aunque, como veremos, este proceso se puede interpretar como tomar cocientes incrementales, si acaso con el cuidado suficiente para obtener resultados más precisos sin esfuerzo extra alguno. Ambos problemas, cuadratura y derivación, están numéricamente bien resueltos hoy dı́a, con procedimientos casi óptimos para obtener resultados precisos a bajo costo. Debe tenerse muy presente sin embargo, que mientras la cuadratura es un problema bien condicionado, la derivación numérica no lo es. 1 FÓRMULAS DE CUADRATURA BÁSICAS Consideremos el polinomio interpolador de f asociado a los nodos x0 < x1 < . . . < xN : pN (x) = f (x0 )L0 (x) + f (x1 )L1 (x) + · · · + f (xN )LN (x), donde los Lj son los correspondientes polinomios de Lagrange: N � x − xl Lj (x) = , xj − xl l=1 j = 0, . . . , N. l�=j Usando la expresión anterior del polinomio interpolante, se obtienen fácilmente las reglas de cuadratura de la forma: I(f ) ≈ Q(f ) = (b − a)(w0 f (x0 ) + w1 f (x1 ) + · · · + wN f (xN )), donde los valores � b 1 wj = Lj (x) dx, j = 0, . . . , N, b−a a reciben el nombre de pesos de cuadratura. En el contexto de la cuadratura numérica, a los nodos de interpolación x0 , . . . , xN , se les conoce con el nombre de nodos de cuadratura. Mediante el cambio de variable: x = a + (b − a)s, se tiene que � b a f (x) dx = (b − a) � (1) 1 0 f (a + (b − a)s) ds. Por ello, es frecuente definir las fórmulas de cuadratura sólo para integrales definidas con extremos 0 y 1. Tras este cambio, los pesos resultan ser � 1 wj = lj (s) ds, 0 donde los lj son los polinomios de Lagrange asociados a los nodos ξj = xj − a , b−a j = 0, . . . , N. Por ello, los pesos de las fórmulas de cuadratura no dependen del intervalo [a, b]. Las fórmulas de cuadratura más elementales tienen nombre propio que debe conocer: Regla del punto medio. Resulta de integrar el interpolante de grado 0 asociado al punto medio del intervalo [a, b] (esto es, al nodo x0 = (a + b)/2). Dicho interpolante no es otra cosa que la función constante cuyo valor es f ( a+b ). Por tanto: 2 � � a+b I(f ) ≈ (b − a)f . 2 El único peso es w0 = 1. 2 Regla del trapecio. Es la que se obtiene al integrar el interpolante lineal basado en los nodos x0 = a y x1 = b. Dicho interpolante es p1 (x) = b−x f (a) + x−a f (b). Por tanto, la b−a b−a fórmula de cuadratura resulta: I(f ) ≈ b−a (f (a) + f (b)). 2 Sus pesos son w0 = 12 y w1 = 12 . Recibe su nombre debido a que el valor obtenido es el del área de la figura trapezoidal que queda entre el interpolante lineal y el eje horizontal. P. Medio Trapecios Simpson Regla de Simpson. Se obtiene al integrar el interpolante cuadrático asociado a los nodos x0 = a, x1 = a+b y x2 = b. Es fácil ver que en este caso, se obtiene la siguiente 2 aproximación: � � b−a I(f ) ≈ (f (a) + 4f a+b + f (b)). 2 6 Sus pesos son w0 = 16 , w1 = 46 y w2 = 16 . Fórmulas de Newton-Cotes. Reciben este nombre las fórmulas que se obtienen al integrar el interpolante pN basado en N + 1 nodos equidistribuidos en [a, b]: xj = a + j b−a . N Las fórmulas correspondientes a N = 2 y N = 3 son la regla de los trapecios y la regla de Simpson, respectivamente. Fórmulas de Lobatto. Son aquellas que se obtienen al integrar el interpolante de grado N basado en los nodos x0 = a < x1 < . . . < xN = b, donde los nodos interiores x1 , . . . , xN −1 son los N − 1 ceros de la derivada del polinomio de Legendre de grado N . Las fórmula resultante para N = 3, para el intervalo [0, 1] tiene como nodos x0 = 0, √ √ 5− 5 5+ 5 x1 = 10 , x2 = 10 y x3 = 1 (para un intervalo [a, b] cualquiera, basta usar el cambio 1 5 5 1 de variable (1)), y los pesos son w0 = 12 , w1 = 12 , w2 = 12 y w3 = 12 . Las fórmulas de Lobatto constituyen un caso particular de lo que se conoce como cuadratura gaussiana, cuyo contenido queda fuera del alcance de este curso. Grado de Precisión y Error de una fórmula de cuadratura. Se denomina grado de precisión al grado máximo de los polinomios que una fórmula de cuadratura integra exactamente. Es decir, una fórmula de cuadratura tiene grado de precisión r si integra exactamente todos los 3 polinomios de grado menor o igual que r, pero hay algún polinomio de grado r +1 que no integra exactamente. Puesto que el interpolante pN de grado N basado en N + 1 nodos es único, una fórmula de cuadratura de N + 1 nodos tiene al menos grado N , aunque podrı́a tener un grado mayor. Tal es el caso de la regla del punto medio: cualquier polinomio de grado 1 puede expresarse en la forma yb − ya p(x) = ya + (x − a), b−a (donde hemos escrito la correspondiente recta en la forma punto-pendiente). Su integral en [a, b] es: � b yb − ya yb + ya p(x) = ya (b − a) + (b − a) = (b − a) , 2 2 a que coincide con la aproximación dada por la regla del trapecio. Los grados de precisión r de las fórmulas descritas anteriormente son los siguientes: Regla del punto medio: r = 1. Regla del trapecio: r = 1. Regla de Simpson: r = 3. Fórmulas de Newton-Cotes: En general, r = N . Fórmulas de Lobatto: r = 2N − 1. Respecto al error cometido E(f ) = I(f ) − Q(f ) = I(f ) − (b − a) N � wj f (xj ), j=0 se tiene el siguiente resultado: Teorema 1. Consideremos una fórmula de cuadratura con grado de precisión r. Entonces, para cualquier a < b y para toda función f de clase C r+1 ([a, b]), existe una constante C tal que � � |E(f )| ≤ C(b − a)r+2 �f (r+1) (ξ)� , donde ξ ∈ [a, b]. En el caso de algunas fórmulas de cuadratura, se puede obtener explı́citamente el valor de la constante C. Ası́, por ejemplo, se tiene: (b−a)3 �� f (ξ), 24 (b−a)3 �� E(f ) = − 12 f (ξ), 5 E(f ) = − (b−a) f ���� (ξ). 90 Regla del punto medio: E(f ) = Regla del trapecio: Regla de Simpson: La obtención de las expresiones anteriores (vea el Ejercicio 3) se basa en un teorema del valor medio para integrales, que establece que para cualquier función α(x) ≥ 0 y toda función �b �b f (x) continua, se cumple: a α(x)f (x) dx = f (ξ) a α(x) dx para cierto ξ ∈ [a, b]. 4 CUADRATURA COMPUESTA Consideremos una partición ∆ = {a = x0 < x1 < . . . < xJ = b} , del intervalo [a, b]. En el procedimiento de cuadratura compuesta, se expresa el valor de la integral como � b � x1 � x2 � xJ I(f ) = f (x) dx = f (x) dx + f (x) dx + · · · + f (x) dx, a x0 x1 xJ−1 � xj y se aproxima el valor de cada integral Ij (f ) = xj−1 f (x) dx mediante una misma fórmula de cuadratura. En los siguientes gráficos podemos apreciar la diferencia entre la regla de los trapecios y la regla de los trapecios compuesta. R. Trapecios R. Trapecios compuesta Vemos también cómo en el segundo caso, el valor calculado (la parte sombreada) es más exacto que en el primero (el valor exacto es el área que queda entre la curva y el eje horizontal). Esta mejora de la precisión no es sólo particular de este ejemplo sino que es general. Respecto al error de la cuadratura compuesta, el error resultará ser la suma de los errores cometidos en cada intervalo: E(f ) = E1 (f ) + · · · + EJ (f ), donde Ej (f ) es el error de la aproximación en el intervalo j-ésimo. Si, como es habitual, denotamos la longitud de dicho intervalo como hj = xj − xj−1 , y si la fórmula de cuadratura tiene grado de precisión r, en virtud del Teorema 1, tendremos que � � |Ej (f )| ≤ C �f (r+1) (ξj )� hr+2 , (2) j para algún ξj ∈ [xj−1 , xj ], siempre que la función f sea de clase C r+1 . Por tanto, J J J � � (r+1) � r+2 � (r+1) � � � (r+1) � r+1 � r+2 � � � � � � |E(f )| ≤ C f (ξj ) hj ≤ C máx f (x) hj ≤ C máx f (x) h hj . j=1 x∈[a,b] j=1 5 x∈[a,b] j=1 Teniendo en cuenta que h1 + h2 + · · · + hJ = (b − a), concluimos que � � |E(f )| ≤ C(b − a) máx �f (r+1) (x)� hr+1 , (3) x∈[a,b] donde h = máx1≤j≤J hj es el diámetro de la partición. La expresión anterior indica que el error E(f ) decaerá como O(hr+1 ). Ejemplo 1. Estudiemos los errores relativos |E(f )| / |I(f )| para dos funciones: la función de √ Bessel f (x) = J2 (x) y g(x) = x. La primera es una función de clase C ∞ en el intervalo [0, 15]. La segunda, en cambio, no es siquiera derivable en [0, 15] (no existe g � (0)). La siguiente tabla muestra los correspondientes errores de la regla de Simpson compuesta (que tiene grado de precisión r = 3): h |E(f )| / |I(f )| |E(g)| / |I(f )| 3 9.00 × 10−3 3.85 × 10−3 3/2 4.52 × 10−4 1.36 × 10−3 3/4 2.69 × 10−5 4.81 × 10−4 3/8 1.66 × 10−6 1.70 × 10−4 3/16 1.04 × 10−7 6.01 × 10−5 Puede comprobarse que con f los errores decaen como h4 , mientras que con g sólo lo hacen como h3/2 . Aunque es posible justificar con rigor este comportamiento, queda fuera del alcance de este curso. Aquı́ bastará con saber que, si el integrando f no tiene r + 1 derivadas acotadas en [a, b], el error E(f ) no decaerá como O(hr+1 ). CUADRATURA ADAPTATIVA Es una variedad de la cuadratura compuesta en la que la partición ∆ no se elige a priori, sino que se va determinando en función de las estimaciones de error que se van obteniendo en cada subintervalo. La idea es comparar la aproximación que proporciona la correspondiente fórmula de cuadratura en un subintervalo [xj−1 , xj ] de longitud hj : Qj (f ), con la suma de las (1/2) (1/2) correspondientes aproximaciones Qj (f ) + Qj+1/2 (f ) en los intervalos de longitud hj /2: [xj−1 , xj−1 + hj /2] y [xj−1 + hj /2, xj ]. Esta suma puede considerarse más precisa que la aproximación en el subintervalo [xj−1 , xj ], ya que, según la expresión del error (2), si la fórmula � r+2 � � � h � es de grado de precisión r tendremos que Ej (f ) = O hr+2 , mientras que E (f ) = O j j 2r+1 (note que con ser r solamente 2, la segunda expresión es casi diez veces más pequeña que la primera). (1/2) (1/2) Abusando de la mencionada mayor precisión, la suma Qj (f ) + Qj+1/2 (f ) puede considerarse como exacta al compararla con Qj (f ), y por tanto � � (1/2) (1/2) Ej (f ) ≈ Qj (f ) − Qj (f ) + Qj+1/2 (f ) . (4) Si esta última cantidad es menor que una tolerancia prefijada, se considera que Qj (f ) es una (1/2) (1/2) buena aproximación a Ij (f ), con lo que aún mejor será Qj (f ) + Qj+1/2 (f ), valor con el que nos quedamos como aproximación Ij (f ). 6 Si por el contrario, la mencionada cantidad es mayor que la tolerancia prefijada, no podemos (1/2) (1/2) considerar como válidos ninguno de los valores obtenidos: Qj (f ), Qj (f ) + Qj+1/2 (f ) y tendremos que repetir el proceso que hemos seguido con el intervalo [xj−1 , xj ], con cada uno de los intervalos de longitud hj /2: [xj−1 , xj−1 + hj /2] y [xj−1 + hj /2, xj ] (tras dividir la tolerancia prefijada por 2, hemos multiplicado por 2 las cantidades a calcular). � � La idea de fondo es que en la cota de error (2), el valor de �f (r+1) (ξj )� puede variar mucho de unos subintervalos [xj−1 , xj ] a otros, con lo que en unos subintervalos la aproximación Qj será válida mientras que otros se deberán subdividir para que las correspondientes longitudes � (r+1) � � � de los mismos, al ser más pequeñas, compensen por el mayor tamaño de f . Veamos un esquema del procedimiento para el caso de la regla de los trapecios a la integral de una función en el intervalo [0, 1]. Si comparamos las aproximaciones de la regla de los trapecios, y la de la regla de los trapecios compuesta con dos subintervalos: Q∆0 (f ) Q∆1 (f ) Q∆0 (f ) − Q∆1 (f ) podemos ver que, en el segundo caso, el error es más pequeño en el intervalo [1/2, 1] que en el intervalo [0, 1/2], ya que el interpolante lineal a trozos en este último intervalo se ajusta mucho peor a la función que en el otro intervalo, donde la función es casi una recta. El ordenador no puede ver, por lo que simplemente resta las dos aproximaciones para tener una estimación del error de la primera. La diferencia de ambas es excesivamente grande como para considerar que se ha aproximado bien la integral, por lo que pasa a subdividir los dos intervalos [0, 1/2] y [1/2, 1] y a calcular las correspondientes aproximaciones: Q∆1 (f ) Q∆2 (f ) 7 Q∆1 (f ) − Q∆2 (f ) Ahora el ordenador puede detectar que la aproximación que tenı́a en el intervalo [1/2, 1] era lo suficientemente buena. En cambio, no es ası́ con la que tenı́a en [0, 1/2]. Puede darse por buena la última aproximación a la integral en [1/2, 1] calculada, por lo que el ordenador ya no vuelve a preocuparse de ese intervalo, y pasa a subdividir en dos cada uno de los intervalos [0, 1/4] y [1/4, 1/2] y a calcular las correspondientes aproximaciones: Q∆2 (f ) Q∆3 (f ) Q∆2 (f ) − Q∆3 (f ) Ahora el ordenador detecta que la aproximación a la integral en el intervalo [1/4, 1/2] que calculó en el paso anterior era buena, mientras que en el intervalo [0, 1/4] no ocurre lo mismo: Por ello, se da por buena la aproximación calculada en este paso en el intervalo [1/4, 1/2], y se procede a subdividir en dos cada uno de los intervalos [0, 1/8] y [1/8, 1/4]: Q∆3 (f ) Q∆4 (f ) Q∆3 (f ) − Q∆4 (f ) Ahora se detecta que las aproximaciones a las integrales en los intervalos [0, 1/8] y [1/8, 1/4] que se calcularon en el paso anterior eran lo suficientemente precisas, por lo que se dan como válidas y se concluye la aproximación a la integral. Observe entonces que la partición que se ha utilizado para aproximar la integral mediante la regla de los trapecios compuesta es � � 1 1 3 1 3 1 3 ∆4 = 0, , , , , , , , 1 . 16 8 16 4 8 2 2 Ha sido necesario llegar a intervalos de longitud 1/16, pero el número total de subintervalos no ha sido 16 (como serı́a el caso de una partición uniforme) sino 8, porque sólo en aquellas 8 partes del intervalo [0, 1] donde ha sido necesario se han utilizado intervalos tan pequeños, utilizándose intervalos más grandes allı́ donde ha sido posible. Note también que la partición final era desconocida a priori. Lo que hemos mostrado aquı́ es, en esencia, lo que hacen los paquetes de cuadratura modernos. Por ejemplo, el comando quad de Matlab hace un proceso de cuadratura adaptado como el descrito, utilizando la regla de Simpson en vez de la regla de los trapecios. El comando quadl utiliza una fórmula de Lobatto de N + 1 nodos con N = 12, y por tanto de grado de precisión r = 23. Precisamente por su alto grado de precisión, el comando quadl suele ser el más eficiente con funciones muy regulares. DERIVACIÓN NUMÉRICA Como mencionamos al principio de la lección, la idea básica para aproximar D(f ) = f � (x∗ ), D2 (f ) = f �� (x∗ ), etc., es aproximar mediante las derivadas de un polinomio interpolador p adecuado, D(f ) ≈ p� (x∗ ), D2 (f ) ≈ p�� (x∗ ), etc. Esto dará lugar a fórmulas de la forma D(f ) ≈ DN (f ) = α0 f (x0 ) + α1 f (x1 ) + · · · + αN f (xN ), 2 D2 (f ) ≈ DN (f ) = β0 f (x0 ) + β1 f (x1 ) + · · · + βN f (xN ), donde, obviamente, los coeficientes serán los valores en x∗ de las correspondientes derivadas de los polinomios de Lagrange asociados a los nodos x0 < x1 < . . . < xN : αj = L�j (x∗ ), βj = L��j (x∗ ), etc. Igual que en el caso de la cuadratura, el grado de precisión es el grado r más alto para el cual la fórmula de derivación es exacta para todos los polinomios de grado menor o igual que r, siendo inexacta para alguno de grado r + 1. Obviamente, siempre que usemos N + 1 nodos, el grado de precisión será al menos N . Utilizando el desarrollo de Taylor en torno al punto x∗ se prueba sin dificultad que, si una fórmula para aproximar D(f ) tiene grado de precisión r, entonces � � |f � (x∗ ) − DN (f )| ≤ C1 hr máx �f (r+1) (x)� , donde h = máx (xj − xj−1 ), 1≤j≤N x∈[x0 ,xN ] donde la constante C1 depende de los cocientes (xj+1 − xj )/(xj − xj−1 ). De manera similar, si una fórmula para aproximar D2 (f ) tiene grado de precisión r, entonces � �� ∗ � � � 2 �f (x ) − DN (f )� ≤ C2 hr−1 máx �f (r+1) (x)� , x∈[x0 ,xN ] etc. Si para aproximar la derivada N -ésima: DN (f ), utilizamos el polinomio de grado N basado en N + 1 nodos: pN (x) = f [x0 ] + f [x0 , x1 ](x − x0 ) + · · · + f [x0 , . . . , xN ](x − x0 ) . . . (x − xN −1 ), 9 obtenemos la fórmula de derivación numérica: N DN (f ) ≈ DN (f ) = N !f [x0 , . . . , xN ]. Ya comentamos anteriormente que el grado de precisión será al menos N . Un sencillo cálculo muestra que, para f (x) = xN +1 , se tiene que f [x0 , . . . , xN ] = x0 + x1 + · · · + xN . Por tanto, la fórmula anterior para aproximar DN (f ) no tiene grado de precisión N +1, salvo que el punto x∗ donde queremos aproximar la derivada sea justamente x∗ = x0 + x1 + · · · + xN N +1 (5) Por otro lado, por los mismos argumentos, si para aproximar una derivada de orden k, Dk (f ), utilizamos un polinomio de grado N ≥ k, por los mismos argumentos antes utilizados, tendremos que la fórmula tendrá grado de exactitud al menos N , pudiendo ser mayor para alguna elección de x∗ , que, en general no podremos saber a priori. Ejemplo 2. Fórmula de dos puntos para f � . Sea p1 (x) = f [x0 ] + f [x0 , x1 ](x − x0 ) el polinomio interpolador de f de primer grado basado en x0 y x1 . Su derivada es una función constante: f (x1 ) − f (x0 ) f � (x∗ ) ≈ p�1 (x∗ ) ≡ f [x0 , x1 ] = . (6) x1 − x0 Los pesos de esta fórmula son α0 = −α1 = −1/(x1 − x0 ) (que no dependen de x∗ ). El grado de precisión es 1, excepto en x∗ = (x0 + x1 )/2. Ejemplo 3. Fórmula de tres puntos para f �� . Si derivamos dos veces el polinomio interpolador de f de segundo grado basado en x0 , x1 y x2 : p2 (x) = f [x0 ] + f [x0 , x1 ](x − x0 ) + f [x0 , x1 , x2 ](x − x0 )(x − x1 ), (7) obtenemos una función constante: f (x2 )−f (x1 ) (x2 −x1 ) − f (x1 )−f (x0 ) (x1 −x0 ) 2f (x2 ) 2f (x1 ) 2f (x0 ) − + , x2 − x0 h2 (h1 + h2 ) h1 h2 h1 (h1 + h2 ) (8) donde, como es habitual, hj = xj − xj−1 , para j = 1, 2. De nuevo, los coeficientes no dependen de x∗ . El grado de precisión de la fórmula es 2, excepto para x∗ = (x0 + x1 + x2 )/3. �� ∗ f (x ) ≈ p��2 (x∗ ) ≡ 2f [x0 , x1 , x2 ] = 2 = Ejemplo 4. Fórmula de tres puntos para f � . Derivando el polinomio p2 (x) dado en (7), y evaluando en x = x∗ , se obtiene: f � (x∗ ) ≈ p�2 (x∗ ) = f [x0 , x1 ] + f [x0 , x1 , x2 ](2x∗ − (x0 + x1 )) = � f (x1 )−f (x0 ) � x1 +x2 (x1 ) � ∗ − x∗ + f (x2 )−f x − h1 2 h2 = 2 h1 + h2 10 x0 +x1 2 � (9) . En esta fórmula de derivación numérica, se puede observar que los coeficientes de f (x0 ), f (x1 ), f (x2 ) ya sı́ dependen de x∗ . La fórmula es de grado 2, excepto en dos puntos en los que es de grado 3. Cuando h1 = h2 = h y x∗ = x1 , esta fórmula se reduce a f � (x∗ ) ≈ f (x2 ) − f (x0 ) . 2h (10) Las fórmulas de derivación numérica que suelen utilizarse en la práctica se basan en nodos equiespaciados. Las más frecuentes son: 1. La diferencia progresiva. No es nada más que (6) con nodos x0 = x∗ y x1 = x∗ + h: f � (x∗ ) ≈ f (x∗ + h) − f (x∗ ) . h El error es f � (x∗ ) − (f (x∗ + h) − f (x∗ ))/h = f �� (ξ)h/2. 2. La diferencia central. Es un caso particular de (10). La expresión (5) sugiere tomar como nodos x0 = x∗ − h, x1 = x∗ y x2 = x∗ + h. Dicha fórmula resulta ser: f (x∗ + h) − f (x∗ − h) f (x ) ≈ . 2h � ∗ El error es f � (x∗ ) − (f (x∗ + h) − f (x∗ − h))/(2h) = f ��� (ξ)h2 /3. 3. Diferencia central para la derivada segunda. Esta fórmula se obtiene tomando de nuevo como nodos x0 = x∗ − h, x1 = x∗ y x2 = x∗ + h en (8), esto es: f �� (x∗ ) ≈ f (x∗ + h) − 2f (x∗ ) + f (x∗ − h) . h2 El grado de precisión de esta fórmula es 3 (véase (5)). De hecho, se tiene que el error es: f �� (x∗ ) − f (x∗ + h) − 2f (x∗ ) + f (x∗ − h) h2 ���� = f (ξ) . h2 12 4. Diferencia central para la derivada tercera. Esta fórmula se obtiene derivando el polinomio p4 (x) basado en los nodos x0 = x∗ − 2h , x1 = x∗ − h , x2 = x∗ , x3 = x∗ + h y x4 = x∗ + 2h: f ��� (x∗ ) ≈ f (x∗ + 2h) − 4f (x∗ ) + 4f (x∗ − h) − f (x∗ − 2h) . 2h2 � � Su grado de precisión es 4, y por tanto el error se acota como C3 h2 máx �f (v) �, con C3 = 33/60. La derivación numérica, un problema mal condicionado. Si consideramos una función arbitraria f y un punto cualquiera x∗ en el que f sea derivable, podemos definir la función f� (x) = f (x) + � sin((x − x∗ )/�2 ). 11 Observamos que los valores de f y de f� distan poco entre sı́. De hecho, 1 pero f � (x∗ ) − f�� (x∗ ) = , � por lo que el error en la derivada es muy grande. Este mal condicionamiento hace que el uso en los cálculos con ordenador de las fórmulas de derivación numérica anteriores den lugar a errores que inicialmente se comportan como O(hp ), pero que posteriormente crecen con h en lugar de decrecer, debido a la influencia de los errores de redondeo. En la tabla siguiente mostramos los errores de la diferencia central para la derivada primera, en caso de f (x) = ex con x∗ = 0, esto es, � h � � e − e−h � � �. − 1 � 2h � |f (x) − f� (x)| ≤ �, h Error 10−1 1.66 × 10−3 10−3 1.66 × 10−7 10−5 1.21 × 10−11 10−7 5.26 × 10−10 10−9 2.72 × 10−8 10−13 2.44 × 10−4 Puede apreciarse cómo cambia el comportamiento de error para valores de h inferiores a 10−5 . Finalmente, señalemos que el único comando de Matlab que de algún modo se puede considerar relacionado con la derivación numérica es el comando diff, que, dado un vector v = [v1 , . . . , vn ], devuelve el vector [v2 − v1 , . . . , vn − vn−1 ]. CUESTIONES Ejercicio 1. Obtenga los pesos de cuadratura de la fórmula para integrar en el intervalo [0, 1] basada en nodos 0 y 2/3. ¿Qué grado de precisión tiene? Ejercicio 2. Idem con la fórmula de nodos 0, 1/2 y 2/3. Ejercicio 3. Obtener la expresión del error de las fórmulas de cuadratura de la regla del punto medio y del trapecio que aparecen a continuación del Teorema 1. ¿Se animarı́a también con la de Simpson? Ejercicio 4. Estudiar según el valor de c ∈ R el grado de precision de la fórmula basada en nodos 0 y c para � 1 f (x) dx. 0 Ejercicio 5. Sabiendo que, para una determinada función f , la regla del trapecio para evaluar la integral � 2 f (x)dx , 0 da el valor 5 y la del punto medio 4, ¿qué valor nos dará la regla de Simpson? Ejercicio 6. Determine las constantes α, β, γ que hacen que la regla de cuadratura � 2 f (x)dx � αf (0) + βf (1) + γf (2) 0 tenga el mayor grado de precisión posible ¿Cuál es ese grado? 12 Ejercicio 7. Compruebe, haciendo el desarrollo de Taylor, que: Dh f (x) = f (x + h) − f (x − h) h2 h4 (v) = f � (x) + f ��� (x) + f (x) + . . . . 2h 6 120 Calcule el desarrollo de D2h f (x). Combinando linealmente Dh f (x) y D2h f (x), encuentre una fórmula de cinco puntos basada en los puntos x, x ± h, x ± 2h que aproxime a f � (x) con el menor error posible. ¿Qué orden tiene la fórmula de derivación numérica resultante? ¿Como podrı́amos conseguir una fórmula de siete puntos más precisa? Ejercicio 8. Probar que si f (x) = xN +1 , entonces f [x0 , . . . , xN ] = x0 + x1 + · · · + xN . Ejercicio 9. Probar que la fórmula (9) es de grado 3 en dos puntos. Calcule dichos puntos. PROBLEMAS Problema 1. Este problema trata de mostrar las capacidades y limitaciones de las herramientas para cuadratura que tenemos a nuestra disposición en Matlab: los comandos quad y quadl. Lea la ayuda en lı́nea (help quad) de ambos comandos. 1. Aparte de la función que se desea integrar y los extremos de integración, entre los argumentos de entrada está la tolerancia TOL (se desea que los errores absolutos estén por debajo de este valor). Para integrar la función f (x) = cos(x) en el intervalo [−π/2, π/2], elabore una tabla de errores para los valores de la tolerancia, 10−3 , 10−4 , . . . , 10−12 tanto con el comando quad como con el comando quadl. ¿Son iguales los errores obtenidos, o parecidos a las correspondientes tolerancias? Si no conociésemos el valor de la integral, ¿calcularlo con dos tolerancias distintas nos darı́a idea del error cometido con la más grosera? 2. Tal vez en el apartado anterior la función que utilizamos fuese demasiado simple. Pruebe ahora con cos(x) f (x) = − sen(x) arctan(x), (11) 1 + x2 (cuya primitiva es F (x) = cos(x) arctan(x)) en el intervalo [−5, 5]. Conteste a las preguntas del apartado anterior. ¿Qué conclusión podemos sacar? 3. Para las tolerancias 10−3 y 10−12 , mida los tiempos de ejecución de los cálculos hechos en el apartado anterior. ¿Qué observa? ¿Son mayores o menores estos tiempos de ejecución que el tiempo de resolución de un sistema Ax = b con A de orden 1000? ¿Que conclusión extraemos? 4. Para la función (11) de los apartados anteriores, y para xn = 10·2n , n = 1, . . . , 6, calcule el error de aproximar la integral de f en los intervalos [−xn , xn ]. Utilice T OL = 10−8 para el comando quad y T OL = 10−12 para quadl. ¿Qué observa? Repita los cálculos obteniendo, además del valor de la integral, el número de evaluaciones de función que necesitó cada comando. ¿Qué observa? ¿Dan algún aviso los comandos de Matlab? ¿Cómo podemos calcular las integrales para los dos últimos valores de n? 13 Problema 2. Considere el interpolante por splines not-a-knot que interpola los valores de x e y de la siguiente tabla. xj yj 0 10 2 10 3 10 5 10 6 10 8 10 9 10.5 11 15 12 50 14 60 15 85 1. ¿Cómo podemos calcular el área que queda entre dicho interpolante y el eje horizontal. 2. Calcule dicha área con un error inferior a 10−4 . 3. ¿Podemos disponer de la derivada de dicho interpolante en cada punto? ¿Cómo podemos entonces calcular la longitud del mismo, sabiendo que la longitud de una curva (x, f (x)), x ∈ [a, b] viene dada por � b� 1 + |f � (x)|2 dx? a 4. Calcule dicha longitud con un error inferior a 10−4 . Problema 3. Considere la función 1+x f (x) = √ . x 1. Dibuje de manera esquemática la función en el intervalo [0, 3]. ¿Cómo se comporta la función cerca del origen? ¿Y cerca de x = 1? �3 ¿Cree que la integral 0 f (x) dx puede dar un valor finito? 2. Calcule numéricamente el valor de la integral anterior en el intervalo [0, 3] con varios valores de la tolerancia hasta conseguir 8 cifras decimales exactas. √ Compare estos resultados con 4 3. �3 A la vista de estos resultados, ¿cree que la integral 0 f (x) dx es convergente o divergente? 3. Calcule numéricamente la derivada de f en el punto x = 1 empleando un esquema de diferencias centradas con h = 0.1, 0.05, 0.001, . . . , 0.5 10−6 . Escriba los resultados en forma de tabla con dos columnas; h y f � (1). 4. La curvatura de una gráfica y = f (x) viene dada por la siguiente expresión κ(x) = f �� (x) . [1 + f � (x)](3/2) Empleando de nuevo un esquema de diferencias centradas calcule la curvatura en x = 1 de f recogiendo los datos en una tabla con tres columnas; h, κ(1) y el error cometido teniendo en cuenta que el valor exacto es κexact (1) = 1/2. Dibuje el error frente a h en doble escala logarı́tmica y explique el resultado obtenido. A la vista de estos resultados ¿qué tipo de punto es x = 1?. 14 EJERCICIOS DE EXÁMENES DE CURSOS ANTERIORES Segundo Parcial. Curso 2008-2009. Ejercicio 1. (a) Aproxime el valor de la integral � 1 cos(πx) dx, −1 mediante la regla de Simpson simple. (b) Determine el valor de las constantes α y c que hacen que la regla de cuadratura � 1 f (x)dx � α (f (−c) + f (0) + f (c)) , −1 tenga el mayor grado de precisión posible ¿Cuál es ese grado? (c) Aproxime el valor de la integral del primer apartado mediante la regla anterior. Examen Final. Curso 2008-2009. Ejercicio 6. Calcule la integral � 1 −1 |x|dx, mediante la regla del trapecio compuesta y la regla de Simpson, tomando como nodos de cuadratura en ambos casos: x0 = −1, x1 = 0 y x2 = 1. ¿Cuál de las dos aproximaciones es más exacta? ¿Por qué? Segundo Parcial. Curso 2009-2010. Ejercicio 3. Queremos obtener aproximadamente el valor de la integral: � 2 xf (x) dx. 0 Determine los valores de A, B y C que hacen que la fórmula de cuadratura � 2 xf (x) dx ≈ Af (0) + Bf (1) + Cf (2) 0 tenga grado de precisión máximo. ¿Cuál es ese grado de precisión? Usando esta fórmula de cuadratura, aproxime el valor de la integral � 2 x cos(πx) dx. 0 15 Examen Final. Curso 2009-2010. Ejercicio 7. Obtener el grado de precisión de la siguiente regla de cuadratura: � � √ � � √ �� � 1 2 − 2 2 f (x) dx ≈ f + f (0) + f . 3 2 2 −1 Evaluar aproximadamente la integral � 1 arccos(x) dx, −1 mediante la regla anterior, mediante la regla del trapecio y la de Simpson. ¿Qué regla serı́a la mejor? ¿Y la peor? ¿Por qué? Segundo Parcial. Curso 2010-2011. Ejercicio 2. 1. Escriba la expresión de la fórmula de Simpson compuesta en el intervalo [0, 1] para una 1 partición uniforme de tamaño de paso h = 2N : ∆ = {x0 = 0, x1 = 2h, x2 = 4h, . . . , xN = 1}. 2. Defina grado de precisión de una fórmula de cuadratura. Determine el grado de precisión de la fórmula de Simpson compuesta en el intervalo [0, 1] con partición {0, 1/2, 1}. 3. �Determine el valor que asigna la fórmula de Simpson compuesta del apartado anterior a 1 sen(πx) dx. 0 Examen Final. Curso 2010-2011. Ejercicio 5. Determine el valor de la constante α que hace que la regla de cuadratura � � � � �� � b 2a + b a + 2b f (x)dx � α f +f , 3 3 a tenga el mayor grado de precisión posible ¿Cuál es ese grado? �1 Escriba la correspondiente regla compuesta con dos subintervalos para obtener −1 f (x)dx. Aplı́quela para aproximar � 1 sen(πx)dx −1 16