———————————————————– MÉTODOS NUMÉRICOS - NOTAS DE CLASE ———————————————————– René Escalante Departamento de Cómputo Cientı́fico y Estadı́stica UNIVERSIDAD SIMON BOLIVAR - Noviembre, 2014 - Contenido 1 Aproximación de funciones 1.1 El teorema de aproximación de Weierstrass y el teorema de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Interpolación polinómica . . . . . . . . . . . . . . . . . . . . . 1.2.1 La forma de Lagrange . . . . . . . . . . . . . . . . . . 1.2.2 Otras formas . . . . . . . . . . . . . . . . . . . . . . . 1.2.3 El método de las diferencias divididas . . . . . . . . . . 1.2.4 Error del polinomio de interpolación . . . . . . . . . . 1.3 Interpolación de Hermite . . . . . . . . . . . . . . . . . . . . . 1.4 Interpolación polinómica a trozos . . . . . . . . . . . . . . . . 1.4.1 Interpolación local . . . . . . . . . . . . . . . . . . . . 1.4.2 Funciones splines . . . . . . . . . . . . . . . . . . . . . 1.5 Mejores aproximaciones . . . . . . . . . . . . . . . . . . . . . 1.5.1 Mı́nimos cuadrados . . . . . . . . . . . . . . . . . . . . 1.5.2 El enfoque de Chebyshev . . . . . . . . . . . . . . . . . 1.6 Interpolación trigonométrica . . . . . . . . . . . . . . . . . . . 1.6.1 Series de Fourier y la transformada discreta de Fourier 1.6.2 La transformada rápida de Fourier . . . . . . . . . . . 1.7 Experimentación numérica adicional . . . . . . . . . . . . . . . 1.8 Apéndice al Capı́tulo 6 . . . . . . . . . . . . . . . . . . . . . . 1 3 5 6 6 9 12 15 15 17 22 23 25 29 29 33 35 37 2 Diferenciación e integración numéricas 2.1 Diferenciación numérica . . . . . . . . . . . . . 2.2 Integración numérica . . . . . . . . . . . . . . . 2.2.1 Fórmulas de Newton-Cotes y extensiones 2.2.2 Cuadratura gaussiana . . . . . . . . . . 2.3 Extrapolación de Richardson . . . . . . . . . . . 2.4 Experimentación numérica adicional . . . . . . . 41 42 45 45 49 53 54 i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 ii 3 Problemas de valores iniciales 3.1 Preliminares . . . . . . . . . . . . . . 3.2 EDOs de primer orden . . . . . . . . 3.2.1 Métodos de un paso . . . . . 3.2.2 Métodos multi-paso . . . . . . 3.3 Sistemas y EDOs de orden mayor . . 3.4 Estabilidad y ecuaciones de stiff . . . 3.5 Experimentación numérica adicional . 4 Problemas con valores en la frontera 4.1 Método del disparo . . . . . . . . . . 4.2 Método de las diferencias finitas . . . 4.3 Métodos de proyecciones . . . . . . . 4.3.1 Método de colocación . . . . . 4.3.2 Método de Galerkin . . . . . . Referencias CONTENIDO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 59 61 62 70 78 80 88 . . . . . . . . . . . . . . . . . . . 93 . 97 . 101 . 104 . 105 . 108 217 Capı́tulo 1 Aproximación de funciones Desarrollamos aquı́ el importante tema de aproximación de funciones basados principalmente en las referencias [2], [6], [29] y [34]. 1.1 El teorema de aproximación de Weierstrass y el teorema de Taylor A fin de justificar el uso de polinomios para aproximar funciones continuas, introducimos aquı́ el importante resultado que sigue. Teorema 1.1 (Teorema de Weierstrass) Si f ∈ C[a, b] y si ϵ > 0, entonces existe un polinomio p que satisface |f (x) − p(x)| ≤ ϵ en [a, b]. Demostración: Sin pérdida de generalidad podemos asumir que [a, b] = [0, 1] (¿por qué?). Consideremos la sucesión de polinomios {Bn } definida en el intervalo [0, 1] por n ( ) ∑ n (Bn f )(x) = f (k/n)xk (1 − x)n−k , k k=0 los cuales son los denominados polinomios de Bernstein1 . Resulta importante interpretar Bn como un operador lineal sobre C[0, 1]. Es fácil verificar la linealidad de Bn (i.e., Bn (αf + βg) = αBn f + βBn g, con α, β ∈ R y 1 Propuestos por Serge Bernstein en 1912. Estos polinomios han sido utilizados también en el diseño asistido por computador. 1 2 CAPÍTULO 1. APROXIMACIÓN DE FUNCIONES f, g ∈ C[0, 1]). Observemos además que si f ≥ 0 entonces también Bn f ≥ 02 . A partir de estas dos propiedades se puede demostrar [29, §6.1] que si tenemos una sucesión, digamos An , de operadores lineales y positivos, definidos en C[a, b], y si ∥An f − f ∥∞ → 0 para f (x) igual a 1, x y x2 (como en efecto ocurre), entonces lo mismo ocurrirá para toda f ∈ C[a, b]. 2 Observación: • Los polinomios de Bernstein imitan muy bien el comportamiento cualitativo de f [9, §1.3]. Por ejemplo, si f ∈ C k [0, 1], entonces ∥f (k) − (Bn f )(k) ∥∞ → 0 cuando n → ∞. Sin embargo, esta propiedad tiene su costo, pues la convergencia es por lo general muy pobre [2]. El teorema de Taylor El teorema de Taylor es útil cuando trabajamos con funciones que tienen un número importante de derivadas continuas, pero cuando tenemos datos obtenidos de un experimento o funciones con un número pequeño de derivadas, entonces la aplicación del teorema de Taylor no es , en general, recomendable. Recordemos que si f ∈ C n+1 [a, b] para algún n ≥ 0 y si x, x0 ∈ [a, b], entonces f (x) = n ∑ f (k) (x0 ) k=0 k! (x − x0 )k + f (n+1) (ξ) (x − x0 )n+1 , (n + 1)! para algún ξ ≡ ξ(x) entre x0 y x. En particular, si x0 = 0, tenemos la conocida serie de Maclaurin. A partir del teorema de Taylor obtenemos las denominadas series de potencias de muchas funciones ∑ importantes, tales ∑ ∞ i x2i+1 i i como sen x = ∞ (−1) (−∞ < x < ∞), 1/x = i=0 i=0 (−1) (x − 1) (2i+1)! (0 < x < 2), etc. El siguiente resultado trata sobre su convergencia. ∑ i Teorema 1.2 Para toda serie de potencias ∞ i=0 ai (x−x0 ) existe un número r ∈ [0, ∞], denominado el radio de convergencia de la serie, tal que la serie converge para |x − x0 | < r y diverge para |x − x0 | > r. Más aun, ∑ a (x − x0 )i define continuamente diferenciable en s(x) = ∞ i=0 i ∑∞ una función i−1 ′ tiene∫ radio de convergencia r. (x0 − r, x0 + r) y s (x) = i=0 iai (x − x0 ) x Además, si |a − x0 | < r y |x − x0 | < r, entonces a s(t)dt puede calcularse integrando la serie de s término a término, obteniéndose una serie que tiene también radio de convergencia r. 2 Es decir, los operadores Bn son positivos. 1.2. INTERPOLACIÓN POLINÓMICA 1.2 3 Interpolación polinómica Dado un conjunto finito de puntos, el concepto de interpolación implica a grosso modo escoger una función, digamos p, de una clase dada de funciones, de forma tal que la representación gráfica de la misma contenga al conjunto finito de puntos. Este conjunto finito de puntos o datos, pueden haberse obtenido a través de la realización de un experimento o a través de la simple observación de un fenómeno fı́sico. Los datos también pueden considerarse como coordenadas de puntos de una función f . En este sentido, decimos que p interpola a la función f en un conjunto de puntos diferentes, o nodos, si los valores de p y f en esos puntos coinciden. La clase de funciones a la que nos referimos aquı́ (y a la que pertenece p) es la de los polinomios. El propósito principal de la interpolación es el de interpolar datos conocidos en puntos discretos tal que los valores funcionales entre esos puntos puedan ser estimados. La denominada teorı́a de interpolación polinómica tiene importantes aplicaciones en la derivación de otros métodos en diferentes áreas del cálculo cientı́fico, como por ejemplo en la teorı́a de aproximación, en integración numérica y en la resolución numérica de ecuaciones diferenciales. Otra aplicación la encontramos cuando se desarrollan medios para trabajar con funciones que son almacenadas en forma tabular. La interpolación es una herramienta importante cuando no podemos evaluar rápidamente la función en puntos intermedios. Un resultado fundamental en la teorı́a de interpolación polinómica viene dado por el siguiente resultado. Teorema 1.3 Dados n + 1 puntos (números reales) distintos x0 , x1 , . . . , xn y n + 1 valores arbitrarios y0 , y1 , . . . , yn , existe un único polinomio pn de grado ≤ n que interpola a yi en xi , para todo i = 0, 1, . . . , n (i.e., pn (xi ) = yi , para i = 0, 1, . . . , n). 4 CAPÍTULO 1. APROXIMACIÓN DE FUNCIONES Demostración: Existencia. Sigue por inducción. Para n = 0 siempre podemos escoger una función constante p0 (de grado 0) tal que p0 (x0 ) = y0 . Supongamos pues que existe un polinomio de grado ≤ k − 1 tal que pk−1 (xi ) = yi para i = 0, 1, . . . , k − 1, y definamos el polinomio pk como pk (x) = pk−1 (x) + λ k−1 ∏ (x − xj ), j=0 el cual es un polinomio de grado ≤ k que interpola los mismos datos pk−1 , ∏que k−1 pues pk (xi ) = pk−1 (xi ) = yi para i = 0, 1, . . . , k − 1. Ahora, como j=0 (xk − ∏ xj ) ̸= 0 (¿por qué?), basta observar que si λ = [yk −pk−1 (xk )]/ k−1 j=0 (xk −xj ), entonces también pk (xk ) = yk . Unicidad. Supongamos que hubieran dos de tales polinomios, pn y qn . Entonces, el polinomio pn − qn , de grado ≤ n, es tal que (pn − qn )(xi ) = 0 para i = 0, 1, . . . , n. Al ser este polinomio de grado ≤ n, tendrá un máximo de n ceros (a menos que sea el polinomio nulo). Pero como los xi ’s son distintos, el polinomio pn − qn tiene n + 1 ceros, por lo que pn = qn . 2 Observemos que de la demostración anterior resulta claro que podemos obtener cada uno de los polinomios p0 , p1 , . . . , pn sumando un término al polinomio de grado inmediatamente anterior, de manera que pn será una suma de términos. Es decir, pk = k ∑ i=0 i−1 ∏ λi (x − xj ), (1.1) j=0 ∏ donde asumimos que −1 j=0 (x − xj ) = 1. Los polinomios pk ası́ definidos se denominan polinomios de interpolación en la forma de Newton. Observemos que los coeficientes λi se pueden estimar de la misma forma como se estimó λ en la demostración del teorema. Notemos también que si añadimos más puntos al problema de interpolación, los coeficientes ya calculados no necesitan ser modificados, pues en (1.1) λ0 sólo depende del punto (x0 , y0 ), λ1 depende de (x0 , y0 ) y (x1 , y1 ), etc. De manera que podemos fácilmente agregar puntos adicionales para interpolar. 1.2. INTERPOLACIÓN POLINÓMICA 5 Ejemplo 1. Usemos la forma de Newton para encontrar el polinomio de interpolacin de menor grado para los valores (x0 , y0 ) = (0, −2), (x1 , y1 ) = (1, −5), (x2 , y2 ) = (−1, −10) y (x3 , y3 ) = (2, 19). Observemos primero que p0 (x) = −2 y que el polinomio p1 (x) = p0 (x) + λ(x − x0 ) = −2 + λ(x − 0). Ahora, como p1 (1) = −5 (por la condición de interpolación), λ = −3 y p1 (x) = −2 − 3x. Asimismo, p2 (x) = p1 (x) + λ(x − x0 )(x − x1 ) = −2 − 3x + λ(x − 0)(x − 1). Y como p2 (−1) = −10, tenemos que p2 (−1) = 1 + λ2 = −10, por lo que λ = −9/2. Ası́ que 9 p2 (x) = −2 − 3x − x(x − 1). 2 Por último, p3 (x) = p2 (x) + λx(x − 1)(x + 1) De la condición de interpolación, p3(2) = 19, sigue que λ = 6 y 9 p3 (x) = −2 − 3x − x(x − 1) + 6x(x − 1)(x + 1). 2 Una manera práctica (desde el punto de vista computacional) para expresar este polinomio serı́a la siguiente ( ( 9 )) p3 (x) = −2 + x − 3 + (x − 1) − + (x + 1)6 , 2 la cual se conoce como la forma anidada y requiere de menos operaciones al momento de evaluar un polinomio (algoritmo de Horner). Ejercicio 2: Escribir un algoritmo en pseudocódigo que calcule los coeficientes de la forma de Newton de un polinomio de interpolación. Utilizando un software de cómputo cientı́fico probar el algoritmo, por ejemplo, con el polinomio p4 (x) = 15x4 −7x3 +12x2 −93x−734 y valores a interpolar3 xi = 3i−12, i = 0, . . . , 4. 3 Para evaluar el polinomio en los puntos dados puede usar el algoritmo de Horner (§??). 1.2. INTERPOLACIÓN POLIN 1.2.1 La forma de Lagrange Este método expresa el polinomio de interpolación en la forma pn (x) = y0 ℓ0 (x) + y1 ℓ1 (x) + . . . + yn ℓn (x), (1.2) donde los ℓi ’s (0 ≤ i ≤ n) son polinomios tales que ℓi (xj ) = δij , para i, j = 0, 1 . . . , n, y pn (xj ) = yj . Observemos que ℓ0 debe ser de la forma donde λ = 1/ ∏n ℓ0 (x) = λ(x − x1 )(x − x2 ) . . . (x − xn ), j=1 (x0 − xj ) (¿por qué?). Por lo que n ∏ x − xj . ℓ0 (x) = x − xj j=1 0 De la misma forma podemos obtener expresiones similares para los otros ℓi (1 ≤ i ≤ n). En general, n ∏ x − xj ℓi (x) = x − xj j=0 i (0 ≤ i ≤ n). j̸=i Estos polinomios se denominan polinomios cardinales. Ası́ que, el polinomio de interpolación (1.2) en la forma de Lagrange es pn (x) = n ∑ i=0 pn (xi ) n ∏ x − xj . x − x i j j=0 j̸=i Ejercicio 3: Calcular el polinomio de interpolación en la forma de Lagrange para los datos del Ejercicio 2. Observemos que el polinomio obtenido tiene una apariencia diferente a la del polinomio encontrado en el Ejercicio 2, ¿se trata del mismo polinomio? 6 1.2.2 CAPÍTULO 1. APROXIMACIÓN DE FUNCIONES Otras formas Si expresamos el polinomio de interpolación en la forma pn (x) = c0 + c1 x + c2 x2 + . . . + cn xn . Observemos que como pn (xi ) = yi , i = 0, 1, . . . , n, podemos hallar c0 , c1 , . . . , cn al resolver el sistema lineal de n + 1 ecuaciones y0 1 x0 x20 . . . xn0 c0 1 x1 x2 . . . xn c1 y1 1 1 1 x2 x2 . . . xn c2 y2 2 2 = .. .. .. . . .. .. .. . . . . . . . yn cn 1 xn x2n . . . xnn La matriz de coeficientes es no singular (¿por qué?) y se denomina matriz de Vandermonde. Desafortunadamente, en la práctica, la matriz de Vandermonde está mal condicionada, por lo que no se recomienda usar esta estrategia para calcular el polinomio de interpolación. Desde un punto de vista numérico, para calcular el polinomio de interpolación, es recomendable usar la forma de Newton (junto con el método de las diferencias divididas, §1.4). Sin embargo, la forma de Lagrange será de utilidad en el capı́tulo que sigue cuando deduzcamos algunas fórmulas de cuadratura. 1.2.3 El método de las diferencias divididas Sean x0 , x1 , . . . , xn un conjunto de puntos o nodos diferentes y que f es una función cuya evaluación en los nodos es conocida. Por el Teorema 1.3 sabemos que existe un único poliomio pn de grado ≤ n tal que pn (xi ) = f (xi ), para todo i =∏0, 1, . . . , n. Definamos también, para j = 1, . . . , n, los polinomios qj (x) = j−1 k=0 (x − xk ) y q0 (x) = 1. De manera que la forma ∑de Newton del polinomio de interpolación se puede escribir como pn (x) = nj=0 λj qj (x). Observemos además que podemos determinar los coeficientes λj a partir ∑n del SEL j=0 λj qj (xi ) = f (xi ), i = 0, 1, . . . , n, y que la matriz de coeficientes del sistema, con entradas ∏j−1 qj (xi ) (0 ≤ i, j ≤ n), es una matriz triangular inferior (pues qj (xi ) = k=0 (xi − xk ) = 0 cuando i ≤ j − 1). Notemos también que al resolver el sistema anterior para los λj podemos ir de arriba hacia abajo, de manera que λ0 dependerá solamente de f (x0 ), λ1 de f (x0 ) y f (x1 ), 1.2. INTERPOLACIÓN POLINÓMICA 7 etc., hasta llegar a λn que dependerá de f (x0 ), f (x1 ), . . . , f (xn ). Introduciremos la notación λn = f [x0 , x1 , . . . , xn ] para indicar esta dependencia y la denominaremos, para valores cualesquiera de n, la diferencia dividida de f . De manera que podremos expresar la forma de Newton del polinomio de interpolación como pn (x) = n ∑ f [x0 , x1 , . . . , xj ] j=0 j−1 ∏ (x − xk ) (1.3) k=0 Observemos que f [x0 , x1 , . . . , xn ] es el coeficiente de qn (x) = (x − x0 )(x − x1 ) . . . (x − xn−1 ) = xn + términos de menor grado, entonces f [x0 , x1 , . . . , xn ] es el coeficiente de xn en el polinomio de interpolación. Ası́ que f [x0 ] es el coeficiente de x0 en el polinomio de grado 0 que interpola a f en x0 . Es decir, f [x0 ] = f (x0 ). Asimismo, f [x0 , x1 ] es el coeficiente de x en el polinomio de grado ≤ 1 que interpola a f en x0 y x1 . Como este polinomio (x0 ) (x0 ) es f (x0 ) + f (xx11)−f (x − x0 ) (¿por qué?), resulta que f [x0 , x1 ] = f (xx11)−f . −x0 −x0 Más aun, si pk es el polinomio de grado ≤ k que interpola a f en x0 , x1 , . . . , xk y q es el polinomio de grado ≤ n − 1 que interpola a f en x1 , x2 , . . . , xn , entonces pn (x) = q(x) + x − xn [q(x) − pn−1 (x)]. xn − x0 (¿por qué?) Como los coeficientes de xn en ambos lados de esta expresión deben ser iguales, encontramos que f [x0 , x1 , . . . , xn ] = f [x1 , x2 , . . . , xn ] − f [x0 , x1 , . . . , xn−1 ] . xn − x0 (1.4) De donde sigue que f [x0 , x1 ] = f [x1 ] − f [x0 ] , x1 − x0 f [x0 , x1 , x2 ] = f [x1 , x2 ] − f [x0 , x1 ] , etc. x2 − x0 Dados los datos (xi , f (xi )) podemos, a partir de ellos, construir una tabla con las diferencias divididas; por ejemplo, para cinco datos tendrı́amos la siguiente tabla: x0 x1 f [x0 ] f [x0 , x1 ] f [x0 , x1 , x2 ] f [x0 , x1 , x2 , x3 ] f [x0 , x1 , x2 , x3 , x4 ] f [x1 ] f [x1 , x2 ] f [x1 , x2 , x3 ] f [x1 , x2 , x3 , x4 ] 8 x2 x3 x4 CAPÍTULO 1. APROXIMACIÓN DE FUNCIONES f [x2 ] f [x2 , x3 ] f [x2 , x3 , x4 ] f [x3 ] f [x3 , x4 ] f [x4 ] De (1.3), resulta claro que los coeficientes que necesitamos para encontrar el polinomio de interpolación en la forma de Newton están en la primera fila de la tabla. Ejercicio 4: A partir de (1.4) construir la tabla de las diferencias divididas para el siguiente conjunto de datos: x: −12 −9 −6 −3 0 f (x) : 325246 104593 21208 1057 − 734 Encontrar el polinomio de interpolación de Newton. Comparar con el Ejercicio 2. Ejercicio 5: Usando la notación aij = f [xi , xi+1 , . . . , xi+j ], escribir un algoritmo en pseudocódigo para calcular la tabla de las diferencias divididas y en el que los datos de entrada estén dados por ai0 = f (xi ), para i = 0, 1, . . . , n. Probar el algoritmo con los datos del ejercicio anterior. Ejercicio 6: Demostrar que si (y0 , y1 , . . . , yn ) es una permutación de (x0 , x1 , . . . , xn ), entonces f [y0 , y1 , . . . , yn ] = f [x0 , x1 , . . . , xn ]. Otra importante propiedad de las diferencias divididas es la siguiente. Teorema 1.4 Sea pn un polinomio de grado ≤ n que interpola a una función f en un conjunto de n + 1 puntos distintos x0 , x1 , . . . , xn . Si z es un punto diferente de los nodos dados, entonces f (z) − pn (z) = f [x0 , x1 . . . , xn , z] n ∏ (z − xj ). j=0 Demostración: Sea pn+1 el polinomio de grado ≤ n + 1 que interpola f en 1.2. INTERPOLACIÓN POLINÓMICA 9 los nodos x0 , x1 , . . . , xn , z. Por (1.3) sigue que pn+1 (x) = pn (x) + f [x0 , x1 , . . . , xn , z] n ∏ (x − xj ). j=0 Como pn+1 (z) = f (z) tenemos que f (z) = pn (z) + f [x0 , x1 . . . , xn , z] n ∏ (z − xj ). j=0 2 1.2.4 Error del polinomio de interpolación Sea f (x) una función en C n+1 (I), donde I es el intervalo [a, b], y sean x0 , x1 , . . . , xn n + 1 nodos distintos en I. Si pn es el polinomio de grado ≤ n que interpola a f en x0 , x1 , . . . , xn , el error de interpolación en (x) de pn (x) está dado por en (x) = f (x) − pn (x). Por el Teorema 1.4, para ∏n todo z distinto de los nodos x0 , x1 , . . . , xn , en (z) = f [x0 , x1 . . . , xn , z] j=0 (z −xj ). Observemos que no podemos evaluar el lado derecho de esta expresión sin conocer de antemano f (z), sin embargo si conocemos la (n + 1)-ésima derivada de f (x) podremos, en algunos casos, estimar en (z). Teorema 1.5 Para todo z ∈ I, existe ξ ≡ ξ(z) ∈ (a, b) tal que f (n+1) (ξ) ∏ (z − xj ). (n + 1)! j=0 n en (z) = f (z) − pn (z) = (1.5) Demostración: Por el Teorema 1.4 será suficiente demostrar que si f es una función en C k (I) y si x0 , x1 , . . . , xk son k + 1 puntos distintos en I, entonces existe ξ ∈ (a, b) tal que f [x0 , x1 . . . , xk ] = f (k) (ξ)/k!. Para k = 1, el resultado sigue directamente del TVM. Para k > 1, observamos que ek (x) tiene por lo menos k + 1 ceros distintos x0 , x1 , . . . , xk en I, y como ek (x) es una función en C k (I) (¿por qué?), entonces, por el teorema de Rolle, e′k (x) tiene al menos k ceros en el intervalo (a, b), e′′k (x) tiene por lo menos k − 1 ceros en (a, b), etc. Continuando de esta forma, sigue que 10 CAPÍTULO 1. APROXIMACIÓN DE FUNCIONES (k) ek (x) tiene por lo menos un cero en (a, b). Si ξ es un tal cero, entonces (k) (k) (k) 0 = ek (ξ) = f (k) (ξ) − pk (ξ). Y como también pk (ξ) = f [x0 , x1 , . . . , xk ]k! (¿por qué?), obtenemos el resultado que querı́amos demostrar. (Observemos también que podemos suponer que el nodo ξ en (1.5) cae entre los xi ’s si tomamos a = mini xi y b = maxi xi .) 2 Ejercicio 7: Encontrar una cota para el error de interpolación lineal. Observaciones: • En el caso de que los nodos sean igualmente espaciados, el máximo local de |Φn+1 (x)| se incrementa cuando nos movemos de la mitad del intervalo hacia los extremos, y este incremento será mayor en la medida en que incrementemos n (ver el Ejercicio 1 de la §1.7). Por esta razón es recomendable, sobretodo en este caso, usar el polinomio de interpolación solamente para los nodos ubicados cerca del punto medio del intervalo. Por supuesto que este comportamiento empeorará si nos movemos fuera de los extremos del intervalo (i.e., extrapolación). 1.2. INTERPOLACIÓN POLINÓMICA 11 Dada una función f ∈ C[a, b] y pn polinomios de interpolación para f con nodos igualmente espaciados, pareciera razonable pensar que si usamos polinomios de grados cada vez mayores los mismos convergerán uniformemente a f en [a, b] (i.e., ∥f − pn ∥∞ → 0 cuando n → ∞). Éste será el caso si, por ejemplo, f (x) = cos x en el intervalo [0, 1] (¿por qué?); sin embargo, si consideramos la función f definida por4 f (x) = (x2 + 1)−1 en el intervalo [−5, 5], encontramos que para los polinomios de interpolación pn , con nodos igualmente espaciados, la sucesión {∥f −pn ∥∞ } no está acotada5 (ver el Ejercicio 1 de la §1.7, en donde el lector podrá constatar la ocurrencia de grandes oscilaciones de pn ). 4 Ejemplo dado por Carl Runge en 1901. En [27] se demuestra que para cualquier x tal que 3.64 < |x| < 5 y k ≥ 0, supn≥k |f (x) − pn (x)| = ∞. 5 1.4. INTERPOLACIÓN POLINÓMICA A TROZOS 1.4 15 Interpolación polinómica a trozos Este tipo de funciones polinómicas tiene aplicaciones en teorı́a de aproximación, computación gráfica, ajuste de datos, diferenciación e integración numéricas y en la resolución numérica de ecuaciones integrales y diferenciales. Para una función polinómica a trozos p, suponemos que existe un conjunto de nodos x0 , x1 , . . . , xn tales que −∞ < x0 < x1 . . . < xn < ∞, donde p será un polinomio en cada uno de los subintervalos (−∞, x0 ], [x0 , x1 ] . . . [xn , ∞). (1.7) Muchas veces, en el tratamiento de los polinomios a trozos no se incluyen el primero ni el último de estos subintervalos. Def inición 1.1 Diremos que p es un polinomio a trozos de orden k si en cada uno de los subintervalos (1.7) el grado de p(x) es menor que k. Por lo general, el polinomio a trozos se define de manera conveniente para que sea una función continua. Un problema de interpolación polinómica a trozos puede ser local o global. Para el tipo de problema local, el polinomio p en cada subintervalo está completamente definido por los datos de interpolación en los nodos dentro del mismo subintervalo y sus puntos extremos. En el problema global el polinomio p en cada subintervalo depende de todos los datos de interpolación (e.g., las funciones splines, §1.4.2). 1.4.1 Interpolación local Supongamos que deseamos aproximar una función f en un intervalo [a, b] de manera que a = x0 < x1 < . . . < xn = b. Como un primer caso proponemos usar interpolación polinómica ordinaria en cada subintervalo [xi−1 , xi ]. Supongamos que tenemos cuatro nodos de interpolación en cada subintervalo [xi−1 , xi ], xi−1 ≤ ti,1 < ti,2 < ti,3 < ti,4 ≤ xi , i = 1, . . . , n, de manera que p(x) es el polinomio de grado ≤ 3 en (xi−1 , xi ) que interpola f (x) en ti,1 . . . , ti,4 . Llamaremos a esta función de interpolación el polinomio a trozos de Lagrange Ln (x). En el caso de que ti,1 = xi−1 y ti,4 = xi , para cada i = 1, 2, . . . , n, entonces p es continua en [a, b]. 16 CAPÍTULO 1. APROXIMACIÓN DE FUNCIONES Por el Teorema 1.5 notemos que para Ln (x), con x ∈ [xi−1 , xi ] (i = 1, . . . , n), f (4) (ξi ) ∏ (x − ti,j ), 4! j=1 4 f (x) − Ln (x) = donde ξi ∈ (xi−1 , xi ). En el caso particular de que los nodos estén igualmente espaciados, definimos µi = (xi − xi−1 )/3, ti,k = xi−1 + (k − 1)µi , k = 1, . . . , 4. Claramente, para x ∈ [xi−1 , xi ], |f (x) − Ln (x)| ≤ µ4i max |f (4) (z)|, 24 z∈[xi−1 ,xi ] (1.8) para i = 1, 2, . . . , n. Para mantener un mismo nivel de error a través de todo el intervalo [a, b], µi se podrı́a escoger de acuerdo al tamaño de la derivada f (4) en [xi−1 , xi ]. De manera que si la función f tuviera un comportamiento variable en [a, b], el polinomo a trozos Ln (x) se podrı́a escoger de manera tal que simule este comportamiento, al ajustar a = x0 < x1 < . . . < xn = b. Esta es una razón importante para escoger y usar la interpolación polinómica a trozos, pues la interpolación polinómica ordinaria en [a, b] no permite esta flexibilidad. Para aquellos casos en que usamos nodos igualmente espaciados (1.8) nos garantiza la convergencia cuando la interpolación ordinaria puede fallar, como en el ejemplo de Runge (ver el Ejercicio 1, §1.7). Ejercicio 14: Para f (x) = ex en [0, 1], con nodos igualmente espaciados y un error máximo < 10−8 , estimar µ ≡ µi y el número de subintervalos n, si usamos como estrategia de aproximación un polinomio de interpolación cúbica a trozos. 1.4. INTERPOLACIÓN POLINÓMICA A TROZOS 1.4.2 17 Funciones splines Una función spline es un polinomio a trozos bajo ciertas condiciones de continuidad. Def inición 1.2 Dados n + 1 puntos x0 , x1 , . . . , xn tales que a = x0 < x1 < . . . < xn = b y un entero r ≥ 0, una función spline de grado r con nodos x0 , x1 , . . . , xn es una función S que satisface las dos propiedades siguientes: (i) En cada subintervalo [xi−1 , xi ), S es un polinomio, Si−1 , de grado ≤ r. (ii) S ∈ C (r−1) [a, b]. Observemos que los splines de Es decir, S0 (x) S1 (x) S(x) = .. . S (x) n−1 grado 0 son funciones constantes a trozos. = = .. . c0 , c1 , .. . x ∈ [x0 , x1 ) x ∈ [x1 , x2 ) .. . = cn−1 , x ∈ [xn−1 , xn ), donde los ci ’s (i = 0, 1, . . . , n − 1) son constantes y los intervalos [xi−1 , xi ) no se intersectan entre sı́. Asimismo, una función spline de grado 1 se define como: S0 (x) = a 0 x + b0 , x ∈ [x0 , x1 ) S1 (x) = a 1 x + b1 , x ∈ [x1 , x2 ) S(x) = .. .. .. .. . . . . S (x) = a x + b , x ∈ [x , x ), n−1 n−1 n−1 n−1 n En este caso la función S es continua, por lo que Si (xi+1 ) = Si+1 (xi+1 ), para i = 0, 1, . . . , n − 2. También podemos definir la función spline sobre 18 CAPÍTULO 1. APROXIMACIÓN DE FUNCIONES toda la recta real, de manera que podemos usar a0 x + b0 para el intervalo (−∞, x1 ) y an−1 x + bn−1 para [xn−1 , ∞). Consideremos ahora el caso r = 3. Se trata de los splines cúbicos los cuales son muy utilizados. Supongamos que conocemos de antemano el conjunto de datos (pares ordenados) (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ); el spline cúbico S debe interpolar estos datos (i.e., S(xi ) = yi , i = 0, 1, . . . , n). En cada subintervalo [xi , xi+1 ), i = 0, 1, . . . , n − 1, S estará definido por un polinomio cúbico Si diferente, ası́ S0 (x), x ∈ [x0 , x1 ) S1 (x), x ∈ [x1 , x2 ) S(x) = .. .. . . S (x), x ∈ [x , x ). n−1 n−1 n Si−1 y Si interpolan el mismo valor en xi , por lo que Si−1 (xi ) = Si (xi ) = yi , i = 1, 2, . . . , n − 1, lo cual permite que S sea una función continua. Supondremos además que S ′ y S ′′ son funciones continuas. De manera que tenemos: 4n coeficientes de los polinomios cúbicos, 2n condiciones correspondientes a dos condiciones de interpolación, S(xi ) = yi y S(xi+1 ) = yi+1 por cada subintervalo [xi , xi+1 ], n−1 condiciones derivadas de la continuidad de S ′ , S ′i−1 (xi ) = S ′i (xi ), i = 1, 2, . . . , n−1, y n−1 condiciones adicionales correspondientes a la continuidad de S ′′ en los nodos interiores. Por lo tanto, contamos con 4n − 2 condiciones para estimar 4n coeficientes. Observemos que la continuidad de S no nos proporciona más condiciones pues ya las tomamos en cuenta en las condiciones de interpolación. Veamos ahora cómo procederemos con las dos condiciones que nos faltan. Encontremos primero los polinomios cúbicos Si en [xi , xi+1 ] (i = 0, 1, . . . , n − 1). Para i = 0, 1, . . . , n, sea zi ≡ S ′′ (xi ); como S ′′ es continua en los nodos interiores, resulta claro que para i = 1, 2, . . . , n − 1, limx→x−i S ′′ (x) = limx→x+i S ′′ (x) = zi . Observemos también que cada Si′′ es una función lineal tal que Si′′ (xi ) = zi y Si′′ (xi+1 ) = zi+1 , por lo que, para i = 0, 1, . . . , n − 1, Si′′ (x) = zi+1 xi+1 − x x − xi + zi , hi hi donde hi = xi+1 − xi . Integrando dos veces, obtenemos que Si (x) = zi+1 (x − xi )3 (xi+1 − x)3 + zi + C1 (x − xi ) + C2 (xi+1 − x), 6hi 6hi 1.4. INTERPOLACIÓN POLINÓMICA A TROZOS 19 donde C1 y C2 son las constantes de integración, que podemos obtener a partir de las condiciones de interpolación: Si (xi ) = yi y Si (xi+1 ) = yi+1 . Ası́ que Si (x) = zi+1 (y (x − xi )3 (xi+1 − x)3 ( yi+1 zi+1 hi ) zi hi ) i (x − xi ) + (xi+1 − x), + zi + + + 6hi 6hi hi 6 hi 6 (1.9) Ahora, para determinar z1 , z2 , . . . , zn−1 usaremos las condiciones de continuidad de S ′ : S ′i−1 (xi ) = S ′i (xi ). Obtendremos S ′i (x) derivando la ecuación (1.9). La expresión obtenida, para i = 1, 2, . . . , n − 1, será la siguiente hi−1 zi−1 + 2(hi + hi−1 )zi + hi zi+1 = 6 yi+1 − yi yi − yi−1 −6 hi hi−1 (1.10) (¡verificar!). Lo que dará lugar a un SEL de n − 1 ecuaciones para las n + 1 incógnitas z0 , z1 , . . . , zn , por lo que podemos escoger z0 y zn arbitrarios para finalmente obtener z1 , z2 , . . . , zn−1 . Una elección que resulta ser suficiente es z0 = zn = 0 (i.e., condiciones de frontera libres)6 . Este tipo de spline cúbico se denomina spline cúbico natural. La representación en forma matricial del sistema (1.10) es: z1 b1 u1 h1 0 ... ... 0 .. z2 b2 h1 u2 h2 0 . . . . z3 b3 .. . . . 0 h2 u3 h3 . . . . . = . , ... .. . . .. ... ... 0 .. .. . . . hn−3 un−2 hn−2 zn−2 bn−2 0 ... 0 hn−2 un−1 zn−1 bn−1 donde hi = xi+1 −xi , ui = 2(hi −hi−1 ), bi = vi −vi−1 , con vi = 6(yi+1 −yi )/hi . Notemos que este sistema es simétrico, tridiagonal y diagonal dominante. Ejercicio 15: Dado un x ∈ R cualquiera, escribir un algoritmo en pseudocódigo que estime el valor del spline cúbico natural en x, S(x). Usando un software de cómputo cientı́fico escribir un programa para este algoritmo. Escribir un subprograma 6 Se puede demostrar que estas condiciones son una “buena” elección en el sentido de ∫b ∫b que a [S ′′ (x)]2 dx ≤ a [f ′′ (x)]2 dx, donde f ∈ C 2 [a, b] y S es un spline cúbico que interpola a f en los xi ’s para i = 0, 1, . . . , n, con a = x0 y b = xn (ver, por ejemplo, [2], [6] o [29]). 20 CAPÍTULO 1. APROXIMACIÓN DE FUNCIONES que aproveche la estructura de la matriz de coeficientes para resolver el sistema (1.10) de una manera eficiente. Escribir otro subprograma para determinar cuál de los subintervalos (−∞, x1 ), [x1 , x2 ), . . . , [xn−1 , ∞) contiene a x. Una vez determinado el ı́ndice i, usar (1.9) para evaluar el polinomio Si en x usando√el algoritmo de Horner. Probar el programa con las funciones f1 (x) = x, f2 (x) = ex y f3 (x) = (1 + x2 )−1 en 15 nodos igualmente espaciados en el intervalo [0,3], tabulando los errores ek (x) = S(x) − fk (x) (k = 1, 2, 3) en 45 puntos. 1.7. EXPERIMENTACIÓN NUMÉRICA ADICIONAL 1.7 Experimentación numérica adicional La referencia básica que seguimos aquı́ es el curso introductorio [15]. 35 36 CAPÍTULO 1. APROXIMACIÓN DE FUNCIONES Ejercicio 1: Análisis del error de interpolación para el caso de nodos igualmente espaciados. Consideremos la fórmula del error de interpolación (ver, por ejemplo, [2] o [5]). Claramente, cn+1 max |f (x) − pn (x)| ≤ max |Φn+1 (x)|, x∈[a,b] (n + 1)! x∈[a,b] donde cn+1 = max |f (n+1) (t)| t∈[a,b] y Φn+1 (x) = n ∏ (x − xj ). j=0 Observemos que este resultado nos da una estimación superior del error para cualquier valor de x. El primer término de la derecha es una constante en [a, b], por lo que la distribución está determinada por Φn+1 (x). Usaremos solamente nodos igualmente espaciados: xj = x0 + jh, para j = 0, 1, . . . , n. a) Para distintos valores de n (= 1, 2, 3, 6, 9), grafique, usando MATLAB, el polinomio Φn+1 (x). Aquı́, [a, b] = [−3, 3], x0 = a y h = b−a . ¿Qué n observa? ¿Cómo convendrı́a escoger los nodos cuando usamos interpolación de un grado mayor? b) Consideremos la función f (x) = 1 , 1 + x2 − 5 ≤ x ≤ 5. (1.18) Grafique, usando MATLAB, p10 (x), f (x) y |f (x) − p10 (x)|. ¿Qué observa? ¿Podemos decir que en general n→∞ max |f (x) − pn (x)| −→ 0 ? x∈[a,b] c) Consideremos la función f (x) = sen(x) en 0 ≤ x ≤ π, (1.19) y p4 (x), el polinomio de interpolación de f en los puntos (nodos igualmente espaciados) x = [0, π/4, π/2, 3π/4, π], y = [0, sen(π/4), sen(π/2), sen(3π/4), sen(π)]. Si e(x) = sen(x) − p4 (x), graficar, usando MATLAB, sen(x) y 100e(x). ¿Qué observa? Explique. 1.8. APÉNDICE AL CAPÍTULO 6 37 Ejercicio 2: Uso de comandos MATLAB. Revise y adquiera experiencia en el uso de los siguientes comandos MATLAB: polyfit, polyval, interpl. Supongamos que en cada uno de los casos (1.18) y (1.19) (Ejercicio 1) se particiona el intervalo en n + 1 nodos igualmente espaciados. Usando los comandos señalados, construya los interpoladores: polinómico, spline lineal, spline cúbico; siendo n = 5, 10, 20. Grafique los correspondientes errores y estime las magnitudes máximas de los mismos. Justifique. Ejercicio 3: Interpole y grafique la función z = f (x, y) de dos variables, definida por 2 2 z = e−x −y en el rectángulo −2 ≤ x ≤ 2, −3 ≤ y ≤ 3. Use interp2 y las opciones ’linear’ y ’cubic’. 1.8 Apéndice al Capı́tulo 6 A1. Los polinomios de Chebyshev Comencemos por definir estos polinomios. Def inición 1.7 Los polinomios Tn , de grados n = 0, 1, . . ., definidos recursivamente por T0 (x) = 1, T1 (x) = x, Tn+1 (x) = 2xTn (x) − Tn−1 (x), n ≥ 1, se denominan polinomios de Chebyshev18 de primera clase. Algunos de ellos son: T2 (x) = 2x2 − 1, T3 (x) = 4x3 − 3x, T4 (x) = 8x4 − 8x2 + 1, T5 (x) = 16x5 − 20x3 + 5x, 18 En honor al matemático ruso Pafnuti Lvovich Chebyshev (1821-1894). Capı́tulo 2 Diferenciación e integración numéricas La integración numérica es el proceso por medio del cual se genera un valor numérico para la integral de una función sobre un conjunto dado1 . Asimismo, se conoce como∫ cuadratura numérica al método involucrado b en la aproximación de I = a f (x)dx, y que utiliza una expresión de la forma n ∑ Ki f (xi ) i=0 para aproximar I. Para el caso de muchas funciones, la integral I puede calcularse analı́ticamente. Sin embargo, en las aplicaciones, en general, el cálculo analı́tico directo no es posible. Este es el caso, por ejemplo, de las siguientes integrales: ∫ 2 ∫ 1∫ 1 ∫ 1∫ x −x2 x e dx, sen(xye )dxdy y tan(xy 2 )dydx. 0 0 0 0 x2 Una ∫ b estrategia muy poderosa para calcular el valor numérico de la integral f (x)dx consiste en reemplazar f por otra función g, que aproxime a f a de alguna manera conveniente y sea∫ fácil de integrar. Ası́ que, a partir de ∫b b f ≈ g, deducimos que a f (x)dx ≈ a g(x)dx. Por supuesto, los polinomios son buenos candidatos para g, y de hecho g puede ser un polinomio que interpole a f en un cierto conjunto de nodos. 1 También, denominamos cuadratura a la evaluación numérica de una integral. 41 42 CAPÍTULO 2. DIFERENCIACIÓN E INTEGRACIÓN NUMÉRICAS Dos de las técnicas de integración numérica (quizás para nosotros las más familiares) estiman f (x) utilizando, bien una serie de funciones lineales a trozos, o bien una serie de funciones cuadráticas a trozos. En el primer caso, podemos calcular las áreas de los trapecios que constituyen el área bajo las funciones lineales consideradas (la regla de los trapecios); en el segundo caso, cuando estimamos la función usando funciones cuadráticas a trozos, podemos calcular y sumar las áreas consideradas (la regla de Simpson). Comparada con la integración, la diferenciación numérica es mucho más difı́cil. La integración no es sensible a pequeños cambios en la “forma” de una función, mientras que la diferenciación sı́ lo es. Cualquier pequeño cambio en una función puede fácilmente crear grandes cambios en su inclinación, en la vecindad de ese cambio. Ası́ que, de ser posible, la diferenciación numérica es evitada, especialmente si los datos son obtenidos de manera experimental. En este caso, podemos usar mı́nimos cuadrados y obtener una curva de ajuste de los datos, para luego diferenciar el polinomio resultante. De manera que cuando se aproxima la derivada de una función cuyos valores se conocen solamente en un conjunto discreto de puntos, un método recomendable serı́a el de ajustar alguna función suave a los datos discretos dados y luego diferenciar la función de aproximación, para ası́ aproximar las derivadas de la función original. Si los datos proporcionados son suficientemente suaves, el uso de interpolación o de splines puede ser la estrategia apropiada. 2.1 Diferenciación numérica Las conocidas fórmulas en diferencias finitas son por lo general inapropiadas para datos discretos o con perturbaciones, pero son muy útiles para aproximar las derivadas de una función suave dada, de la que conocemos una expresión analı́tica o que podemos evaluar de manera precisa para diferentes valores de su argumento. Veamos a continuación algunas fórmulas en diferencias finitas que, por cierto, son también de especial utilidad en el estudio numérico de las ecuaciones diferenciales. Dada una función f : R → R lo suficientemente suave, buscamos aproximar su primera y segunda derivadas en un punto x. Consideremos los siguientes desarrollos de Taylor: f (x + h) = f (x) + hf ′ (x) + h2 f ′′′ (x) f (4) (x) f ′′ (x) + h3 + h4 + ... 2! 3! 4! 2.1. DIFERENCIACIÓN NUMÉRICA 43 f ′′ (x) f ′′′ (x) f (4) (x) − h3 + h4 + ... 2! 3! 4! Despejando f ′ (x) de la primera serie, obtenemos la fórmula en diferencia hacia adelante: f (x − h) = f (x) − hf ′ (x) + h2 f ′ (x) = f (x + h) − f (x) f ′′ (x) f (x + h) − f (x) +h + ... ≈ , h 2! h la cual aproxima la derivada de f (x) con una precisión de primer orden, pues el término dominante en el resto de la serie es de O(h). Asimismo, de la segunda serie obtenemos la fórmula en diferencia hacia atrás: f ′ (x) = f (x) − f (x − h) f ′′ (x) f (x) − f (x − h) +h + ... ≈ , h 2! h con una precisión también de primer orden. Restando la segunda serie de la primera obtenemos la fórmula en diferencia centrada: f ′ (x) = f ′′′ (x) f (x + h) − f (x − h) f (x + h) − f (x − h) − h2 + ... ≈ , 2h 3! 2h la cual tiene una precisión de segundo orden (i.e., O(h2 )). Por último, si sumamos las dos series obtenemos una fórmula en diferencia centrada para la segunda derivada: (4) f (x + h) − 2f (x) + f (x − h) (x) 2f − h + ... 2 h 12 f (x + h) − 2f (x) + f (x − h) ≈ , h2 f ′′ (x) = con una precisión también de segundo orden. Interpolación Dados n + 1 nodos x0 , x1 , . . . xn en un intervalo [a, b], podemos usar la forma de Lagrange (§1.2.1) de un polinomio de interpolación para interpolar una función dada f ∈ C n+1 [a, b] en esos nodos. Ası́ que, junto con la fórmula para el error de interpolación (1.5), obtenemos que f (x) = n ∑ i=0 f (n+1) (ξ) ∏ f (xi )ℓi (x) + (x − xi ), (n + 1)! i=0 n 44 CAPÍTULO 2. DIFERENCIACIÓN E INTEGRACIÓN NUMÉRICAS donde ξ ≡ ξ(x) ∈ (a, b). Ejercicio 1: Si xk es uno de los n + 1 nodos, usar la expresión anterior para demostrar que n n ∑ f (n+1) (ξ(xk )) ∏ (xk − xj ). f ′ (xk ) = f (xi )ℓ′i (xk ) + (n + 1)! j=0 i=0 j̸=k Obtener también la expresión para f ′ (x) cuando n = 2 y k = 1. En el caso de nodos igualmente espaciados, deducir la fórmula en diferencia centrada. Existen varias opciones para el cálculo de las derivadas de una función, incluyendo aproximaciones en diferencias finitas y la evaluación a través del uso de alguna fórmula, hallada a mano o usando un paquete de cómputo cientı́fico. Cada uno de estos métodos tiene sus inconvenientes. Ası́, la diferenciación manual es tediosa y propensa a errores, la derivación simbólica tiende a ser difı́cil de manejar para el caso de funciones complicadas y, en el caso de las aproximaciones en diferencias finitas, se requiere de una elección cuidadosa del tamaño del paso, h, y su precisión está limitada por los errores de redondeo. Otra alternativa es la denominada diferenciación automática o AD (por sus siglas en inglés, automatic differentiation), la cual se basa en la descomposición de la función en operaciones aritméticas básicas y llamadas a funciones matemáticas elementales (seno, exponencial, etc.), ası́ como en la aplicación sistemática de la regla de la cadena; gracias a la cual, cada función puede operarse por separado y manejar sus derivadas de forma independiente. La AD permite obtener la derivada de una función definida mediante R2 un archivo en Fortran, C/C++ o MATLAB⃝ , independientemente de lo compleja o larga que ésta sea, sin pérdida de precisión y en un tiempo de cómputo razonable. Además, no sólo permite calcular la primera derivada, sino también derivadas de orden superior, gradientes, jacobianos y hessianos. La AD tiene un tiempo de CPU menor que la derivación manual y una precisión mayor que la numérica. Para una interesante aplicación de la AD se puede consultar el artı́culo de Callejo et al. [4]. 2 MATLAB es una marca registrada de The MathWorks, Inc. 2.2. INTEGRACIÓN NUMÉRICA 2.2 45 Integración numérica En el comienzo de este Capı́tulo hicimos algunos comentarios acerca de las dificultades de calcular integrales a partir de las técnicas aprendidas en los cursos de cálculo elemental. También es cierto que existen muchas funciones elementales que no poseen antiderivadas sencillas, como por ejemplo 2 la función f (x) = ex (una antiderivada de ella la encontramos en la solución del Ejercicio 1(ii), §1.1). Si de antemano sabemos que un sistema de polinomios aproxima a una función dada, podemos encontrar, a partir de ellos, una buena estimación de la integral de esa función. Consideraremos primero los polinomios de interpolación3 . 2.2.1 Fórmulas de Newton-Cotes y extensiones Sean x0 , x1 , . . . , xn un conjunto de nodos dados en un intervalo [a, b]. Consideremos el polinomio de grado ≤ n que interpola a f en estos nodos en la forma de Lagrange: pn (x) = n ∑ n ∏ x − xj donde ℓi (x) = (i = 0, 1, . . . , n). x − xj j=0 i f (xi )ℓi (x), i=0 j̸=i Entonces, ∫ ∫ b f (x)dx ≈ a b pn (x)dx = a n ∑ i=0 ∫ f (xi ) b ℓi (x)dx, a que también podemos expresar como ∫ b f (x)dx ≈ a n ∑ i=0 ∫ Ki f (xi ), donde Ki = b ℓi (x)dx. (2.1) a Observemos que la fórmula (2.1) es exacta para los elementos del espacio Pn . En el caso de que los nodos sean igualmente espaciados, denominaremos a esta expresión fórmula de Newton-Cotes (o fórmula de N-C para abreviar). 3 También podrı́amos usar splines para interpolar a f y luego integrar. 46 CAPÍTULO 2. DIFERENCIACIÓN E INTEGRACIÓN NUMÉRICAS Ejemplo: Si n = 2 y [a, b] = [0, 1], entonces ℓ0 (x) = 2(x−1/2)(x−1), ℓ1 (x) = −4x(x−1) y ℓ2 (x) = 2x(x − 1/2). Por lo que K0 = K2 = 1/6 y K1 = 2/3, y ∫ 0 1 1 2 (1) 1 f (x)dx ≈ f (0) + f + f (1). 6 3 2 6 (2.2) Ejercicio 2: Encontrar las fórmulas de N-C cuando [a, b] = [0, 1] y n = 3, 5. Ejercicio 3: Demostrar que la fórmula de cuadratura (2.1), cuando n = 1, x0 = a y x1 = b, ∫b está dada por a f (x)dx ≈ [(b − a)/2][f (a) + f (b)] (regla del trapecio). Ver también que el error asociado a esta aproximación es (−1/12)(b − a)3 f ′′ (ξ), con ξ ∈ (a, b). Observemos que esta fórmula da un resultado exacto en el caso de que f ∈ P1 . Observemos que si partimos de la expresión (2.1) y suponemos que es ∫b exacta para los elementos de Pn , entonces necesariamente Ki = a ℓi (x)dx ∫b ∑ (pues a ℓj (x)dx = ni=0 Ki ℓj (xi ) = Kj ). De esta manera podemos obtener, para distintos valores de n, expresiones como la (2.1). Por ejemplo, ∫ 1 si estamos interesados en obtener una fórmula que aproxime la integral 0 f (x)dx por la expresión K0 f (0) + K1 f (1/2) + K2 f (1), exacta para los elementos de P2 , entonces, de las ecuaciones ∫ ∫ 1 dx = K0 + K1 + K2 , 0 0 1 1 xdx = K1 + K2 y 2 ∫ 0 1 1 x2 dx = K1 + K2 , 4 obtenemos que K0 = K2 = 1/6 y K1 = 2/3 como en (2.2). Si definimos sobre el intervalo [a, b] una partición a = x0 < x1 < . . . < xn = b, con los nodos no necesariamente igualmente espaciados, podemos considerar una fórmula de cuadratura en cada uno de los sucesivos subintervalos generados por estos nodos. Estamos hablamos entonces de una fórmula de cuadratura compuesta. 2.2. INTEGRACIÓN NUMÉRICA 47 Ejercicio 4: Suponiendo nodos igualmente espaciados, definimos h = (b − a)/n y xi = a + ∫b ih. Deducir la regla del trapecio compuesta: a f (x)dx ≈ (h/2)[f (a) + ∑ 2 n−1 i=1 f (a+ih)+f (b)]. Demostrar también que el error asociado viene dado por (−1/12)(b − a)h2 f ′′ (ξ), con ξ ∈ (a, b). Consideremos de nuevo el caso n = 2 sobre un intervalo [a, b], con los nodos x0 = a, x1 = a + h y x2 = b, donde h = (b − a)/2. Por lo tanto, ∫ ∫ b f (x)dx ≈ a x2 x0 2 (∑ i=0 ∫ 2 ) 1 x2 ∏ ℓi (x)f (xi ) dx + (x − xi )f (3) (ξ(x))dx. 6 x0 i=0 Observemos que el término de error es de orden O(h4 ) y la fórmula es exacta para los elementos de P2 , pero si seguimos una estrategia alternativa podemos obtener un término de error de orden mayor. Consideremos el polinomio de Taylor de f alrededor de x1 . Sabemos que para cada x ∈ [x0 , x2 ], existe ξ ≡ ξ(x) ∈ (x0 , x2 ) tal que f (x) = f (x1 )+f ′ (x1 )(x−x1 )+ de donde ∫ x2 f (x)dx x0 = f ′′ (x1 ) f ′′′ (x1 ) f (4) (ξ) (x−x1 )2 + (x−x1 )3 + (x−x1 )4 , 2 3! 4! f ′′ (x1 ) f ′ (x1 ) (x − x1 )2 + (x − x1 )3 2 6 x2 ∫ x2 ′′′ f (x1 ) 1 4 + (x − x1 ) + f (4) (ξ)(x − x1 )4 dx. 24 24 x0 f (x1 )(x − x1 ) + x0 Como (x − x1 )4 ≥ 0 en [x0 , x2 ], por el TVM para integrales sigue que x2 ∫ x2 (4) ′ f (ξ ) (x − x1 )5 , f (4) (ξ)(x − x1 )4 dx = 5 x0 x0 para algún ξ ′ ∈ (x0 , x2 ). Por otra parte, como h = x2 −x1 = x1 −x0 , sigue que (x2 −x1 )2 −(x0 −x1 )2 = (x2 −x1 )4 −(x0 −x1 )4 = 0, (x2 −x1 )3 −(x0 −x1 )3 = 2h3 y (x2 − x1 )5 − (x0 − x1 )5 = 2h5 . Por lo tanto, ∫ x2 f ′′ (x1 ) 3 f (4) (ξ ′ ) 5 h + h. f (x)dx = 2f (x1 )h + 3 60 x0 48 CAPÍTULO 2. DIFERENCIACIÓN E INTEGRACIÓN NUMÉRICAS Ahora, si usamos la fórmula en diferencia centrada para aproximar la segunda derivada (§2.1), obtenemos ∫ x2 [ f (x ) − 2f (x ) + f (x ) f (4) (ξ ′′ ) ] h3 f (4) (ξ ′ ) 0 1 2 f (x)dx = 2f (x1 )h + − h2 + h5 2 h 12 3 60 x0 h [ 1 (4) ′′ 1 (4) ′ ] h5 = [f (x0 ) + 4f (x1 ) + f (x2 )] − f (ξ ) − f (ξ ) . 3 3 5 12 Observemos que esta fórmula es exacta para los elementos de P3 con término de error O(h5 ). Def inición 2.1 La fórmula de cuadratura obtenida del proceso anterior, con n = 2 e intervalo [a, b], la cual está dada por ∫ b (a + b) ] b − a[ f (x)dx ≈ f (a) + 4f + f (b) , 6 2 a se denomina regla de Simpson. Ejercicio 5: Demostrar que el error de la regla de Simpson está dado por (−1/90)h5 f (4) (ξ), donde ξ ∈ (a, b) y h = (b − a)/2. (Sugerencia: observemos que F (a + 2h) = ∫ a+2h ∫x f (x)dx ≈ (h/3)[f (a) + 4f (a + h) + f (a + 2h)], donde F (x) = f (t)dt; a a el resultado sigue por aplicar el teorema de Taylor a ambos lados de la expresión.). Ejercicio 6: Suponiendo nodos igualmente espaciados, definimos h = (b − a)/n y xi = a + ih para i = 0, 1, . . . , n. Para un número par de intervalos (i.e., n par), podemos deducir la regla de Simpson compuesta: ∫ b f (x)dx = a n/2 ∫ ∑ i=1 x2i f (x)dx x2i−2 h∑ ≈ [f (x2i−2 ) + 4f (x2i−1 ) + f (x2i )] 3 i=1 n/2 n/2 n/2 ] ∑ ∑ h[ = f (x0 ) + 2 f (x2i−2 ) + 4 f (x2i−1 ) + f (xn ) . 3 i=2 i=1 2.2. INTEGRACIÓN NUMÉRICA 49 Demostrar que el error viene dado por (−1/180)(b − a)h4 f (4) (ξ), con ξ ∈ (a, b). Podemos considerar también fórmulas de cuadratura más generales. Por ejemplo, si w es una función de peso ≥ 0 dada, entonces ∫ b w(x)f (x)dx ≈ n ∑ a donde Ki = ∫b a Ki f (xi ), (2.3) i=0 w(x)ℓi (x)dx. Ejercicio 7: Encontrar una fórmula ∫ π cos2 xf (x)dx ≈ K0 f (−3π/4) + K1 f (−π/4) + K2 f (π/4) + K3 f (3π/4), −π que sea exacta para todo elemento de P3 . 2.2.2 Cuadratura gaussiana En la §2.2.1 consideramos fórmulas de cuadatura de la forma ∫ b f (x)dx ≈ a n ∑ Ki f (xi ), (2.4) i=0 las cuales resultan ser exactas para los elementos de Pn . La selección de los nodos x0 , x1 , . . . , xn se hacı́a de antemano, y se hallaban los coeficientes de manera única a partir del requerimiento de que la expresión anterior fuera una igualdad para todo f ∈ Pn . Asimismo, obtuvimos las fórmulas de NC integrando los polinomios de interpolación y utilizando los valores de la función en nodos igualmente espaciados, lo cual fue útil cuando dedujimos las reglas compuestas. Sin embargo, esta restricción no produce necesariamente una mejor aproximación. Por ejemplo, en el caso de la regla del trapecio, aproximamos la integral de una función en un intervalo dado [a, b] cuando integramos la recta entre los nodos a y b. Sin embargo, nos resulta intuitivamente claro que el segmento de recta que une los puntos extremos de la gráfica de la función, (a, f (a)) y (b, f (b)), no necesariamente es la mejor 50 CAPÍTULO 2. DIFERENCIACIÓN E INTEGRACIÓN NUMÉRICAS función lineal, que para ese intervalo, podemos considerar a fin de obtener el mejor estimado de la integral. En este sentido, la cuadratura gaussiana nos permite escoger los puntos para la estimación de la integral de una forma óptima. Gauss se percató de que el grado de exactitud de (2.4) podı́a ser llevado a 2n+1 si consideramos los nodos xi ’s como variables, en lugar de ser conocidos de antemano. Para ello, solamente necesitamos resolver el sistema de 2n + 2 ecuaciones para las 2n + 2 incógnitas K0 , K1 , . . . , Kn , x0 , x1 , . . . , xn , y que obtenemos al asumir la igualdad en (2.4) cuando f (x) es igual a x0 , x1 , x2 , hasta x2n+1 . Si [a, b] = [−1, 1], estas ecuaciones son, para j = 0, 1, . . . , 2n+1, n ∑ ∫ Ki ξij 1 xj dx = i=0 −1 Los ξi ’s que satisfacen este sistema son los denominados nodos de GaussLegendre. Aquı́ también podemos determinar los correspondientes Ki ’s de ∫1 Ki = −1 ℓi (x)dx. Sustituyendo estos valores en ∫ 1 −1 f (x)dx ≈ n ∑ Ki f (ξi ) i=0 obtenemos la denominada fórmula de cuadratura de Gauss-Legendre para n + 1 puntos. Ejemplo: Encontremos K0 , K1 , ξ0 y ξ1 que garanticen la igualdad para elementos de P3 ∫1 de −1 f (x)dx ≈ K0 f (ξ0 ) + K1 f (ξ1 ) (i.e., la cuadratura de Gauss-Legendre para 2 puntos). Para ello debemos resolver el sistema de ecuaciones: ∫1 ∫1 K0 + K1 = −1 dx = 2, K0 ξ0 + K1 ξ1 = −1 xdx = 0, ∫1 ∫1 K0 ξ02 + K1 ξ12 = −1 x2 dx = 23 , K0 ξ03 + K1 ξ13 = −1 x3 dx = 0. Este sistema no lineal puede resolverse más fácilmente si suponemos que los nodos ξ0 y ξ1 están localizados simétricamente alrededor del origen, y que los correspondientes valores de f (ξ0 ) y f (ξ1 ) tienen la misma ponderación (i.e., K0 = K1 ). De manera que ξ0 = −ξ1 y K0 = K1 . Estas ecuaciones, junto con las ecuaciones no homogéneas del√sistema, nos permite encontrar √ que K0 = K1 = 1, ξ0 = −1/ 3 y ξ1 = 1/ 3 (¡verificar!). Por lo tanto, la 2.2. INTEGRACIÓN NUMÉRICA 51 fórmula de cuadratura requerida es ∫ 1 −1 √ √ f (x)dx ≈ f (−1/ 3) + f (1/ 3). Ejercicio 8: Si [a, b] = [−1, 1], encontrar las fórmulas de cuadratura de Gauss-Legendre para 1 y 3 puntos. A fin de justificar el método, consideremos las fórmulas de cuadratura (2.3). El siguiente resultado nos dice en dónde debemos ubicar los nodos para que la fórmula de cuadratura sea exacta en P2n+1 . Teorema 2.1 Sea q ∫un polinomio distinto de cero de grado n + 1 y wb ortogonal a Pn (i.e., a w(x)q(x)p(x)dx = 0, ∀p ∈ Pn ). Si x0 , x1 , . . . , xn son los ceros de q, entonces la fórmula de cuadratura (2.3) será exacta para todo ϕ ∈ P2n+1 . Demostración: Sea ϕ ∈ P2n+1 . Si dividimos ϕ entre q obtendremos un cociente, digamos p, y un resto r, ambos en Pn . Es decir, ϕ = qp + r. Ası́ que ϕ(xi ) = r(xi ) (0 ≤ i ≤ n). Como la fórmula (2.3) es exacta para los elementos de Pn y q es w-ortogonal a Pn , sigue que ∫ ∫ b b w(x)ϕ(x)dx = a w(x)r(x)dx = a n ∑ i=0 Ki r(xi ) = n ∑ Ki ϕ(xi ). 2 i=0 El siguiente resultado demuestra que las raı́ces del polinomio q del teorema anterior son simples y se encuentra en el intervalo (a, b). Proposición 2.1 Sea w una función de peso positiva en C[a, b]. Supongamos que f ∈ C[a, b] es distinta de cero y w-ortogonal a Pn , entonces f cambia de signo en (a, b) por lo menos n + 1 veces. Demostración: Ejercicio. 2 Ejemplo: En el caso de que w(x) en el ejemplo √ √ 1], encontramos ∫ 1 = 1 y [a, b] = [−1, anterior (n = 1) que −1 f (x)dx ≈ f (−1/ 3) + f (1/ 3). Para el caso de 52 CAPÍTULO 2. DIFERENCIACIÓN E INTEGRACIÓN NUMÉRICAS que n = 4 (i.e., la cuadratura de Gauss-Legendre para 5 puntos) podemos demostrar que ∫ 1 4 ∑ f (x)dx ≈ Ki f (ξi ), −1 i=0 √ √ √ √ donde −ξ0 = ξ4 = (1/3) 5 + 2 10/7, −ξ1 = ξ3 = (1/3) 5 − 2 10/7 , √ √ ξ2 = 0, K0 =√K4 = 0.3(0.7 +√5 0.7)/(2 + 5 0.7), K2 = 128/225, K1 = K3 = 0.3(−0.7 + 5 0.7)/(−2 + 5 0.7). Los nodos en una fórmula gaussiana son las raı́ces de un polinomio qn+1 de grado n + 1, el cual debe cumplir las propiedades de ser un polinomio mónico y w-ortogonal a Pn . Este tipo de polinomio pertenece a los denominados polinomios ortogonales. En cuanto al cálculo de los coeficientes Ki de la fórmula gaussiana, los podemos estimar de la misma forma que en el caso de las fórmulas no gaussianas. La opción correcta para determinar los parámetros ξi (0 ≤ i ≤ n), necesarios para obtener una fórmula de aproximación exacta para cualquier elemento de P2n+1 , es aquella en que los parámetros son las raı́ces de los polinomios de Legendre de grado n + 1(ver Apéndice A2. en §1.8), las cuales son diferentes, se encuentran en el intervalo (−1.1) y son simétricas respecto al origen. Los nodos y los coeficientes de muchas fórmulas de integración pueden consultarse en [1], los cuales, para las funciones adecuadas, pueden usarse para obtener una precisión aceptable con un costo de tan sólo algunas evaluaciones. Para acanzar una mayor precisión se pueden usar fórmulas de un orden mayor. Ejercicio 9: Supongamos que ξ0 , ξ1 , . . . , ξn∫ son las raı́ces∑del polinomio de Legendre qn+1 . 1 Si p ∈ P2n+1 , demostrar que −1 p(x)dx = ni=0 Ki p(ξi ). (Sugerencia: ver el Teorema 2.1). Observación: • La integral en un intervalo dado [a, b] se puede expresar en una integral en [−1, 1] a través de un sencillo cambio de variable. Es decir, z = (2x − a − b)/(b − a) ∈ [−1, 1] sii x = [(b − a)z + b + a]/2 ∈ [a, b]. De manera que, ∫ ∫ b (b − a) 1 ( (b − a)z + b + a ) f (x)dx = f dz. 2 2 a −1 Lo cual nos permite obtener la fórmula de cuadratura gaussiana para cualquier intervalo [a, b]. Ejercicio 10: Encontrar la fórmula de cuadratura gaussiana en el caso de que [a, b] = [2, 4], w(x) = 1 y n = 2. Ejercicio 11: Demostrar∑ que en una fórmula de cuadratura gaussiana con [a, b] = [−1, 1] y w(x) = 1, ni=0 Ki = 2. 54 CAPÍTULO 2. DIFERENCIACIÓN E INTEGRACIÓN NUMÉRICAS 2.4 Experimentación numérica adicional Dado un conjunto de datos que describen una función, MATLAB nos permite calcular una aproximación a la derivada de la misma a través del uso del 2.4. EXPERIMENTACIÓN NUMÉRICA ADICIONAL 55 comando diff, que calcula la diferencia entre los elementos consecutivos de un arreglo. Como la derivada de y = f (x) está definida por f (x + h) − f (x) dy = lim , dx h→0 h que puede aproximarse por el cociente incremental f (x + h) − f (x) , h donde h > 0, podemos estimar la derivada escribiendo: >> dy = diff(y)./diff(x); >> dx = x(1:length(x)-1); donde x y y son arreglos dados y dx crea un nuevo arreglo a partir de x, pues dy es más corto que y (dx representa los valores de x que corresponden a la derivada). Ejercicio 1: Definamos los arreglos >> x = (0:0.1:1); >> y = [-.447 1.978 3.28 6.16 7.08 7.34 ... 7.66 9.56 9.48 9.30 11.2]; Encuentre el polinomio de ajuste (con orden de ajuste n = 2) y su derivada (usando polyder). Encuentre luego la derivada usando el comando diff. Grafique ambas aproximaciones de la derivada (puede usarse el comando plot). ¿Qué observa? Como la derivada de un polinomio es fácil de expresar, MATLAB cuenta con la función polyder para la diferenciación numérica de polinomios. Ası́, por ejemplo, si >> p = [2 3 7 5 3 2]; >> pp = polyder(p) pp = 10 12 21 10 3 56 CAPÍTULO 2. DIFERENCIACIÓN E INTEGRACIÓN NUMÉRICAS Siempre podemos usar mı́nimos cuadrados y obtener una curva de ajuste de los datos (para lo que podemos usar la función polyfit), para luego diferenciar el polinomio resultante usando polyder. MATLAB tiene dos funciones de cuadratura numérica: quad y quadl. La primera usa una forma adaptable de la regla de Simpson; la segunda usa la cuadratura adaptable recursiva de Lobatto de alto orden. Ambas funciones aproximan a la integral definida de una función dada con un error (por defecto) del orden de 10−6 (puediendo especificarse un error menor). La función quadl es mejor para manejar funciones con cierto tipo de singulari∫1√ dades, como es el caso de 0 xdx. ∫b√ Ejercicio 2: Estimar la integral de la función raı́z cuadrada, a xdx, usando quad y quadl, para diferentes valores no negativos de los extremos de integración (puede usar el comando input para introducir estos valores). Comparar los valores obtenidos con los valores analı́ticos para un intervalo dado [a, b], a,b > 0 (esto es, comparar con 23 (b3/2 − a3/2 )). Ejercicio 3: a) Como se vio en la parte teórica, MATLAB tiene dos procedimientos de cuadratura: quad y quadl. Use el comando help de MATLAB para saber cómo trabajan estas funciones. Efectúe algunas pruebas con algunas funciones conocidas (sen(x), cos(x), ex , polinomios, etc.) sobre algunos subintervalos de sus dominios. b) Investigue con el help de MATLAB la función humps. Aplique quad y quadl a la integral de la función humps desde 0 hasta 1, sobre el rango de tolerancias: 10−2 , 10−3 , 10−4 , 10−5 , 10−6 . c) Algunos M-archivos de interés pueden ser hallados en la Internet4 vı́a ftp: ftp://ftp.cs.cornell.edu/pub/cv Si selecciona chapter4 encontrará los M-archivos (“M-files”) correspondientes al tema de cuadratura numérica, y puede descargar, por ejemplo, el script ShowQuads que le resolverá el problema anterior. 4 Son los M-archivos mencionados al final de cada capı́tulo de [30]. 2.4. EXPERIMENTACIÓN NUMÉRICA ADICIONAL 57 También puede usar el script GLvsNC a fin de comparar las reglas de Newton-Cotes y Gauss cuando las aplicamos a la integral de sen(x) desde 0 a π/2, para distintos valores de n (= 2, 3, 4, 5, 6). ¿Qué pudiera inferirse de esta comparación? Ejercicio 4: Integración doble [26, Cap. 4]. Consideramos aquı́ resolver numéricamente la integral ∫ ymax ∫ xmax f (x, y) dxdy, ymin xmin donde f (x, y) = ysen(x) + xcos(y) (recuerde que el primer paso consiste en definir el integrando). MATLAB usa la función dblquad para el cálculo de integrales dobles, la cual evalúa el lazo exterior usando quad; luego, en cada iteración, quad llama una segunda función que evalúa el lazo interior. Vea la ayuda help dblquad. Para [xmin, xmax] = [π, 2π] y [ymin, ymax] = [0, π], calcule la integral doble de la función dada. Nota: La función MATLAB para integrales triples es triplequad. Escriba help triplequad para obtener información sobre la misma. Capı́tulo 3 Problemas de valores iniciales para EDOs Muchos sistemas fı́sicos y naturales dan lugar a modelos matemáticos que contienen ecuaciones diferenciales ordinarias (EDOs). Aunque pareciera ser mejor resolver analı́ticamente estas ecuaciones, muchas de ellas tienen soluciones analı́ticas complicadas o simplemente no las conocemos. En estos casos, requerimos del uso de una técnica numérica para buscar una solución aproximada de la ecuación diferencial. La bibliografı́a relacionada con este tema, al nivel que proponemos aquı́, es realmente extensa1 y nosotros, simplemente, hacemos una adaptación de la misma. 3.1 Preliminares Consideraremos aquı́ el estudio y análisis de métodos numéricos para la EDO de primer orden de la forma y ′ (t) = f (t, y(t)), donde y(t) es una función de valores reales (de la variable real t) y f es una función conocida que toma valores reales y depende de dos variables reales. Nuestro objetivo será el de encontrar soluciones numéricas de esta ecuación diferencial. Sin embargo, en general, la solución de esta ecuación es una familia infinita de curvas solución, que constituye la solución general. Por 1 Ver por ejemplo, [2], [6], [19], [22], [24], [27], [29], [34], [36]. 59 60 CAPÍTULO 3. PROBLEMAS DE VALORES INICIALES lo que para escoger una solución particular de esta familia necesitaremos, además, de una condición inicial. Dados dos números reales, t0 y y0 , el objetivo de un problema de valores iniciales (PVI) consiste en encontrar una solución y(t), para t > t0 , tal que y ′ (t) = f (t, y(t)), y(t0 ) = y0 , (3.1) A fin de garantizar la existencia de una solución única para el PVI (3.1), debemos considerar el siguiente teorema. Teorema 3.1 (Teorema de Picard (1856-1941)) Supongamos que la función de valores reales (t, y) 7→ f (t, y) es continua en la región R = {(t, y) ∈ R2 : y ∈ [y0 − C, y0 + C] ∧ t ∈ [t0 , TM ]}, que |f (t, y0 )| ≤ K cuando t ∈ [t0 , TM ], y que f satisface la condición de Lipschitz, i.e. existe λ > 0 tal que |f (t, u) − f (t, v)| < λ|u − v| ∀(t, u), (t, v) ∈ R. Si también suponemos que C ≥ (K/λ)(eλ(TM −t0 ) − 1), entonces existe una única función y ∈ C 1 [t0 , TM ] tal que y(t0 ) = y0 ∧ y ′ (t) = f (t, y(t)) para t ∈ [t0 , TM ]; además, |y(t) − y0 | ≤ C, t ∈ [t0 , TM ]. Demostración. Ver, por ejemplo, [3]. 2 Al aplicar este teorema necesitamos escoger la constante C tal que las hipótesis sean satisfechas. También, se puede demostrar que si TM − t0 es lo suficientemente pequeño y si ∂f /∂y es continua en una vecindad de (t0 , y0 ), entonces se satisfacerán las condiciones del teorema [3]. Ejemplo. Consideremos el PVI sguiente: y ′ (t) − αy(t) = β, y(t0 ) = y0 , donde α y β son constantes. Claramente, λ = |α| (independientemente de C) y K = |αy0 | + |β|. De manera que, para cualquier intervalo [t0 , TM ], si escogemos C lo suficientemente grande las condiciones son satisfechas. Por lo tanto, el PVI tiene una única solución definida en t ∈ [t0 , TM ], que es continuamente diferenciable. Ejercicio 1. Aplicar el Teorema 3.1 al siguiente PVI no lineal y ′ (t) = y 2 (t), y(0) = 1, 3.2. EDOS DE PRIMER ORDEN 61 ¿Cuál es la solución única de este PVI? En estas notas siempre supondremos que la función f satisface las condiciones del Teorema de Picard. Asumimos también que deseamos resolver el PVI (3.1) en el intervalo [t0 , TM ], el cual dividimos en N subintervalos usando los puntos tn = t0 + nh, n = 0, 1, . . . , N , donde h = (TM − t0 )/N . De manera que, para cada n, buscaremos estimar una aproximación yn de y(tn ). Estas aproximaciones se calculan de manera sucesiva para n = 1, 2, . . . , N . Llamaremos a h el tamaño del paso. 3.2 EDOs de primer orden Entre las técnicas numéricas más utilizadas para resolver ecuaciones diferenciales ordinarias están los denominados métodos de Runge-Kutta. Estos métodos se basan en aproximar una función a partir de su desarrollo en serie de Taylor. Ası́, un método de Runge-Kutta de primer orden2 usa un desarrollo de Taylor de primer orden, un método de Runge-Kutta de segundo orden usa un desarrollo de Taylor de segundo orden, etc. En el caso del método de Runge-Kutta de primer orden, en cada paso evaluamos f en el punto correspondiente a la solución aproximada actual (tn , yn ), para luego utilizar la información obtenida de la pendiente para hallar yn+1 . Ası́, la ecuación queda yn+1 = yn + hn f (tn , yn ), cuya aplicación sucesiva define el algoritmo: n=0 Se repite: fn = f (tn , yn ) Se define el paso hn > 0 tn+1 = tn + hn yn+1 = yn + hn fn n=n+1 Con un error local de truncamiento O(h3 ), obtenemos el método de 2 Éste es el denominado método de Euler. 62 CAPÍTULO 3. PROBLEMAS DE VALORES INICIALES Runge-Kutta de segundo orden: k1 = hf (tn , yn ) (3.2) k2 = hf (tn + h, yn + k1 ) (3.3) yn+1 = yn + k1 + k2 2 (3.4) Observemos que por cada paso se requieren dos evaluaciones de f . El método de Runge-Kutta más conocido es el siguiente método de cuarto orden: k1 = hf (tn , yn ) (3.5) h 1 k2 = hf (tn + , yn + k1 ) 2 2 (3.6) h 1 k3 = hf (tn + , yn + k2 ) 2 2 (3.7) k4 = hf (tn + h, yn + k3 ) (3.8) 1 yn+1 = yn + (k1 + 2k2 + 2k3 + k4 ) 6 (3.9) El cual requiere de cuatro evaluaciones de f por paso. A continuación estudiaremos con mayor detalle estas técnicas. 3.2.1 Métodos de un paso En este tipo de métodos yn+1 viene expresada en términos del valor yn obtenido en el paso anterior. El caso más simple de los métodos de un paso es el denominado método de Euler, que definiremos a continuación. Sabiendo que y(t0 ) = y0 , supondremos que ya hemos calculado yn , para algún n = 0, 1, . . . , N − 1 (N ≥ 1). Definimos entonces, para cada n = 0, 1, . . . , N − 1, de a un paso por vez, el siguiente esquema iterativo: yn+1 = yn + hf (tn , yn ), con el que buscaremos estimar, en la red de puntos dada, los valores aproximados yn de y(tn ). 3.2. EDOS DE PRIMER ORDEN 63 Observemos que al considerar el desarrollo de Taylor, hasta los dos primeros términos, de y(tn+1 ) = y(tn + h) alrededor de tn con y ′ (tn ) = f (tn , y(tn )), obtendremos y(tn + h) = y(tn ) + hf (tn , y(tn )) + O(h2 ). Si además sustituimos y(tn ) y y(tn +h) por sus valores aproximados yn y yn+1 respectivamente, y desechamos el término O(h2 ), obtendremos el método de Euler. En una forma más general podemos expresar los métodos de un paso como yn+1 = yn + hΨ(tn , yn , h), n = 0, 1, . . . , N − 1, y(t0 ) = y0 , (3.10) donde Ψ(tn , yn , h) es una función continua de sus variables. Ası́, por ejemplo, en el caso del método de Euler, Ψ(tn , yn , h) = f (tn , yn ). Al resolver una ecuación diferencial numéricamente se presentan diferentes tipos de errores. Def inición 3.1 Llamaremos error de truncamiento local el que ocurre en un paso dado cuando reemplazamos un proceso infinito por uno finito. El error de truncamiento global es la acumulación de todos los errores de truncamiento local. Denominaremos también error de redondeo global al que se presenta cuando acumulamos los errores de redondeo (local ) de los pasos anteriores. El error total es la suma de los errores de truncamiento global y de redondeo global. El error de truncamiento local está presente en cada paso del proceso de obtención de la solución numérica. El error de truncamiento global está asociado con el método numérico particular que aplicamos y es independiente del hardware que utilicemos. Para el caso del método numérico (3.10), consideraremos el error en ≡ y(tn ) − yn , también denominado error global, y el error de truncamiento ên ≡ y(tn+1 ) − y(tn ) − Ψ(tn , y(tn ), h). h (3.11) 3.2. EDOS DE PRIMER ORDEN 67 Métodos implı́citos de un paso ∫t Observemos que de y(tn+1 ) − y(tn ) = tnn+1 y ′ (t)dt y luego aproximar la integral usando la regla del trapecio, obtenemos el siguiente método de un paso: h yn+1 = yn + [f (tn+1 , yn+1 ) + f (tn , yn )], (3.14) 2 el cual se denomina método de la regla del trapecio3 y tiene una precisión de segundo orden. En efecto, como el error de truncamiento ên está dado por y(tn+1 ) − y(tn ) 1 ên = − [f (tn+1 , y(tn+1 )) + f (tn , y(tn ))] h 2 y como el error para la regla del trapecio viene dada por (−1/12)(tn+1 − tn )3 f ′′ (ξ), con ξ ∈ (tn , tn+1 ) (ver §2.2.1), entonces |ên | ≤ (1/12)h2 M, donde M = maxz∈[t0 ,tM ] f ′′ (z). Como yn+1 aparece a ambos lados de (3.14), para calcular yn+1 a partir de yn necesitamos resolver una ecuación que, por lo general, no es lineal. Podemos resolver la ecuación (3.14) para yn+1 , por ejemplo, usando el método de Newton (siempre y cuando la derivada fy sea relativamente fácil de calcular), usando como iterado inicial yn + hf (tn , yn ). Este tipo de métodos, en donde requerimos resolver una ecuación para determinar el nuevo valor de yn+1 , son de segundo orden (i.e., el error en es O(h2 )), y se conocen como métodos implı́citos. 3 También conocido como el método de Adams-Moulton de segundo orden. 68 CAPÍTULO 3. PROBLEMAS DE VALORES INICIALES Ejercicio 3. Para el mismo PVI del Ejercicio 2, aplicar el método de la regla del trapecio para los tamaños de paso h = 0.4 y h/2. Graficar los resultados obtenidos y comparar con el método de Euler del Ejercicio 2. ¿Qué efecto tiene la reducción del tamaño de paso por un factor de 2? Métodos de Runge-Kutta Comencemos por considerar la siguiente familia de métodos: yn+1 = yn + hΨ(tn , yn , h), (3.15) donde Ψ(tn , yn , h) = αf (tn , yn ) + βf (tn + µh, yn + νhf (tn , yn )) y α, β, µ y ν son parámetros a ser determinados. Observaciones. • (3.2)-(3.4) coincide con el caso α = β = 1/2 y µ = ν = 1. Este método se suele denominar método de Euler mejorado. Otro ejemplo es el método de Euler modificado, para el cual α = 0, β = 1 y µ = ν = 1/2. Asimismo, el método de Euler también es un miembro de esta familia (caso α = 1 y β = 0); no obstante, ahora nos interesan métodos con un orden de precisión mayor que 1. • De acuerdo con la Definición 3.2 (i.e., cuando Ψ(t, y, 0) = f (t, y)), un método de esta familia será consistente sii α + β = 1. Este es el caso de los ejemplos anteriores. Con el objeto de determinar el error de truncamiento (3.11) necesitaremos calcular algunas derivadas de y. A fin de simplificar la notación, supongamos que las funciones en el lado derecho de las siguientes expresiones están evaluadas en (tn , y(tn )), de manera que y ′ (tn ) = f, y ′′ (tn ) = ft + fy f, y ′′′ (tn ) = ftt + fty f + (fty + fyy f )f + fy (ft + fy f ), ... ... 3.2. EDOS DE PRIMER ORDEN 69 Y usando el desarrollo de Taylor en dos variables, tenemos que Ψ(tn , y(tn ), h) = 1 1 αf + β(f + µhft + νhf fy + (µh)2 ftt + µνh2 f fty + (νh)2 f 2 fyy + O(h3 )). 2 2 Por lo que el error de truncamiento queda y(tn + h) − y(tn ) − Ψ(tn , y(tn ), h) h 1 1 = f + h(ft + fy f ) + h2 (ftt + fty f + (fty + fyy f )f + fy (ft + fy f )) 2 3! 1 1 −[αf + β(f + µhft + νhf fy + (µh)2 ftt + µνh2 f fty + (νh)2 f 2 fyy )] 2 2 +O(h3 ). ên = Como α + β = 1, (1 − α − β)f = 0, y como el término h[(1/2)(ft + fy f ) − βµft − βνf fy ] se anula para toda f tal que βµ = βν = 1/2, el método será de segundo orden si ν = µ, β = 1/2µ y α = 1 − 1/2µ, con µ ̸= 0. De manera que el error de truncamiento del método queda: ên = h2 [( 1 6 − (1 µ) ] 1 µ) (ftt +fyy f 2 )+ − f fty + (ft fy +f fy2 ) +O(h3 ). (3.16) 4 3 2 6 Demostrando que en efecto existe una familia de métodos, dependiente de un parámetro (µ ̸= 0), que es de segundo orden. Observemos que en (3.16) no tenemos manera de escoger, para toda f , el parámetro µ para que el método sea de tercer orden (ver el Ejercicio 4). Ejercicio 4. Corroborar la última observación anterior para el caso del PVI: y ′ = y, y(0) = 1. ¿Cuál es el error de truncamiento? ¿Cómo depende de µ? Ejercicio 5. Para los métodos de Euler modificado y de Euler mejorado estimar sus respectivos errores de truncamiento y verificar que son métodos de segundo orden. 70 CAPÍTULO 3. PROBLEMAS DE VALORES INICIALES Podemos realizar un análisis similar, aunque más complicado, para obtener métodos de Runge-Kutta de orden mayor, como el método (3.5)-(3.9), el cual se conoce como el método clásico de Runge-Kutta de cuarto orden. Ejercicio 6. Para el mismo PVI del Ejercicio 2 y tamaños de paso, aplicar el métodos de la regla del trapecio y el clásico de Runge-Kutta de cuarto orden. Graficar, para cada h y en el mismo sistema coordenado, los resultados obtenidos junto con el método utilizado en el Ejercicio 2. Graficar los errores en otro sistema coordenado, indicando en el eje horizontal el número de puntos igualmente espaciados (N = 1.6/h), en una escala logarı́tmica, y en el eje vertical ln |eN |. Interpretar y comparar las gráficas que corresponden a cada uno de los tres métodos. 3.2.2 Métodos multi-paso Estos son los denominados métodos de k pasos, donde ahora yn+1 viene expresada en términos de los k valores anteriores: yn , yn−1 , . . . , yn−k+1 (k ≥ 2). Si bien está claro que cuando aplicamos los métodos de Runge-Kutta podemos alcanzar una mayor precisión, también es cierto que esto ocurre a costa de llevar a cabo un mayor trabajo computacional, pues se requiere de un número mayor de evaluaciones de f . Por otra parte, si consideramos, por ejemplo, los tres nodos tn−1 , tn = tn−1 + h y tn+1 = tn−1 + 2h, e integramos la ecuación diferencial y ′ (t) =∫ f (t, y(t)) entre tn−1 y tn+1 , entonces obtendremos tn+1 que y(tn+1 ) − y(tn−1 ) = tn−1 f (t, y(t))dt. Si a continuación aplicamos el método de Simpson (ver §2.2.1) para aproximar la integral del lado derecho, conseguimos el método h yn+1 = yn−1 + [f (tn+1 , yn+1 ) + 4f (tn , yn ) + f (tn−1 , yn−1 )], 3 (3.17) que tan sólo requiere de tres evaluaciones de la función f por paso. Observemos también que para calcular yn+1 en (3.17) necesitamos de los dos valores anteriores, yn−1 y yn , por lo que este método es diferente a los métodos de un paso que tan sólo requieren del valor anterior, yn . Este 3.2. EDOS DE PRIMER ORDEN 71 tipo de métodos se denomina métodos multi-paso lineales. Daremos a continuación una definición más general. Def inición 3.4 Sea {tn } una sucesión de nodos igualmente espaciados con tamaño de paso h. Entonces, el método k ∑ aj yn+j = h j=0 k ∑ bj f (tn+j , yn+j ), (3.18) j=0 donde los coeficientes aj y bj (j = 0, 1, . . . , k) son constantes reales con ak distinto de cero, se denomina método de k pasos lineal. Es mejor suponer también que no se da el caso de que a0 = b0 = 0. Si bk = 0 decimos que el método es explı́cito, y si bk ̸= 0 entonces decimos que es implı́cito. Ası́, por ejemplo, (3.17) es un método de 2 pasos lineal implı́cito. Observación: • En la definición anterior decimos que el método (3.18) es “lineal” porque sólo involucra combinaciones lineales de los yn+j y f (tn+j , yn+j ), para j = 0, 1, . . . , k. Ejemplos. El método de Euler es un método de un paso lineal explı́cito. Asimismo, el denominado método de Euler implı́cito yn+1 = yn + f (tn+1 , yn+1 ), es un método de un paso lineal implı́cito. El método de la regla del trapecio es también un método de un paso lineal implı́cito. El denominado método de Adams-Bashforth yn+4 = yn+3 + h (55fn+3 − 59fn+2 + 37fn+1 − 9fn ), 24 (3.19) en donde usamos la notación fk ≡ f (tk , yk ), es un método de 4 pasos lineal explı́cito. El denominado método de Adams-Moulton yn+3 = yn+2 + h (9fn+3 + 19fn+2 − 5fn+1 − 9fn ) 24 es un método de 3 pasos lineal implı́cito. (3.20) 72 CAPÍTULO 3. PROBLEMAS DE VALORES INICIALES ∫t Como ya hemos observado, partiendo de y(tn+1 ) = y(tn )+ tnn+1 f (t, y(t))dt, podemos aproximar la integral usando una fórmula de cuadratura numérica, para obtener una fórmula que genera, en cada paso, una solución aproximada del problema 3.1. La expresión obtenida será de la forma: yn+1 = yn + afn + bfn−1 + cfn−2 + . . . , la cual se denomina fórmula de Adams-Bashforth. A manera de ejemplo, supongamos que deseamos aproximar, para los puntos ti = t0 +ih (0 ≤ i ≤ n), la integral anterior de la siguiente manera: ∫ tn+1 f (t, y(t))dt ≈ h[Afn + Bfn−1 + Cfn−2 + Dfn−3 + Efn−4 ]. tn Determinaremos los coeficientes A, B, C, D y E de manera tal que esta expresión sea exacta siempre que el integrando sea un polinomio de grado ≤ 4. Sin pérdida de generalidad, podemos suponer que tn = 0 y h = 1 (¿por qué?); claramente tn+1 = 1, tn−1 = −1, tn−2 = −2, tn−3 = −3 y tn−4 = −4. Asimismo, podemos considerar convenientemente, como base de P4 , los polinomios p0 (t) = 1, p1 (t) = t, p2 = t(t + 1), p3 (t) = t(t + 1)(t + 2) y p4 = t(t + 1)(t + 2)(t + 3). Cuando los sustituı́mos en la ecuación ∫ 1 pn (t)dt = Apn (0) + Bpn (−1) + Cpn (−2) + Dpn (−3) + Epn (−4), 0 obtenemos el siguiente sistema de ecuaciones: 1=A+B+C +D+E 1 = −B − 2C − 3D − 2 5 = 2C + 6D + 12E 6 9 = −6D − 24E 4 251 = 24E, 30 4E que fácilmente resolvemos por sustitución hacia atrás, obteniendo la fórmula yn+1 = yn + h [1901fn − 2774fn−1 + 2616fn−2 − 1274fn−3 + 251fn−4 ], 720 denominada método de Adams-Bashforth de quinto orden. 3.2. EDOS DE PRIMER ORDEN 73 El procedimiento ilustrado es el método de los coeficientes indeterminados. De manera similar podemos obtener métodos de orden superior. A fin de mejorar la precisión, los métodos de Adams-Bashforth se suelen aplicar conjuntamente con otros métodos. Supongamos ahora que usamos un método de cuadratura numérica que incluya fn+1 , entonces ahora yn+1 = yn + afn+1 + bfn + cfn−1 + . . . Ejercicio 7. Aplicar el método de los coeficientes indeterminados para deducir el siguiente método: yn+1 = yn + h [251fn+1 + 646fn − 264fn−1 + 106fn−2 − 19fn−3 ]. 720 Se trata del método de Adams-Moulton de quinto orden. Notemos que este método no se puede aplicar directamente para avanzar en la solución, ya que yn+1 aparece a ambos lados de la ecuación. Sin embargo, podemos usar el método de Adams-Bashforth de quinto orden anterior p para estimar un valor de yn+1 , el predictor yn+1 , para luego utilizarlo con el método de Adams-Moulton de quinto orden para obtener un nuevo valor de c yn+1 , el corrector yn+1 . Este algoritmo se denomina el método predictorcorrector. De manera que, en la expresión anterior para el método de p Adams-Moulton de quinto orden, fn+1 = f (tn+1 , yn+1 ). Dado que tan sólo conocemos el valor inicial y0 , podemos usar, por ejemplo, el método de Runge-Kutta para obtener y1 , y2 , y3 y y4 . En general, se utilizan conjuntamente métodos de un mismo orden4 . Como se desprende de (3.18), requerimos de k valores iniciales, y0 , y1 , . . ., yk−1 , antes de aplicar el método de k pasos lineal al PVI (3.1). De ellos, como acabamos de observar, y0 está dado por la condición inicial, pero los demás debemos estimarlos de alguna otra forma, por ejemplo, usando un 4 La precisión de una solución numérica de una ecuación diferencial está determinada por el orden del método utilizado. El orden indica cuántos términos de una solución expresada en serie de Taylor está utilizando el método. Por ejemplo, decimos que un método dado es de cuarto orden porque produce de manera aproximada la misma precisión que la que se obtiene al usar una serie de Taylor con los términos h, h2 , h3 y h4 . De manera que en cada paso de la solución en la que se aplica el método esperamos que el error sea O(h5 ). Más adelante precisaremos esta idea intuitiva de orden 74 CAPÍTULO 3. PROBLEMAS DE VALORES INICIALES método de un paso. En cualquier caso, los valores iniciales contendrán errores numéricos, por lo que es importante saber cómo este hecho afectará a las siguientes aproximaciones yn ’s, para n ≥ k, que hemos calculado usando (3.18). Por lo tanto, es relevante considerar aquı́ la “estabilidad” del método numérico con respecto a “pequeñas perturbaciones” en las condiciones iniciales. 88 3.5 CAPÍTULO 3. PROBLEMAS DE VALORES INICIALES Experimentación numérica adicional Ejercicio 1. Usando un software de cómputo cientı́fico, implementar los métodos de Runge-Kutta de órdenes uno, dos y cuatro, con paso de tamaño fijo. Consideremos, por ejemplo, resolver numéricamente el siguiente PVI: y ′ (t) = 3y(t) + e2t , y(0) = 3, en el intervalo [0, 3] (la solución analı́tica es y = 4e3t − e2t ). Graficar la solución. Ejercicio 2. Aplicar el método de Runge-Kutta para resolver numéricamente el siguiente problema de valores iniciales: ′′ y (x) + xy(x) = 1, 0 ≤ x ≤ 1, y(0) = 3−2/3 Γ(1/3) ≈ 1.2878993169, y ′ (0) = −3−1/3 Γ(2/3) ≈ −0.9388929401, ∫∞ donde Γ es la función Gamma, la cual se define por Γ(s) = 0 ts−1 e−t dt, con s real > 0. Las soluciones de la ecuacion y ′′ (x) + xy = 1 se llaman 3.5. EXPERIMENTACIÓN NUMÉRICA ADICIONAL 89 funciones generalizadas de Airy9 de orden 0. A fin de comprobar el resultado, la respuesta en la red de puntos t = 0, 0.1, 0.2, . . . , 0.9, 1.0, es: 0 0.10000000000000 0.20000000000000 0.30000000000000 0.40000000000000 0.50000000000000 0.60000000000000 0.70000000000000 0.80000000000000 0.90000000000000 1.00000000000000 1.28789931690000 1.19880295408549 1.11852115068333 1.04601372670662 0.98037804300430 0.92082923969703 0.86668350462695 0.81734388182298 0.77228821288660 0.73105887250618 0.69325401561206 Obtener también la gráfica de la solución aproximada (ası́ como la de su derivada). Ejercicio 3. (Movimiento cerca de los puntos de Langrange) Consideremos dos grandes masas esféricas M1 y M2 , con M1 > M2 . En la ausencia de otras fuerzas, estos cuerpos se moverán en órbitas elı́pticas alrededor de su centro de masa común (como en el caso de la Tierra y la Luna). Bajo la influencia gravitacional de los dos cuerpos grandes, consideremos Las soluciones de la versión homogénea: y ′′ + xy = 0, conocidas como funciones de Airy, aparecen de un modo natural en muchos problemas de la Fı́sica-Matemática; por ejemplo, en la teorı́a de difracción de ondas de radio alrededor de la superficie terrestre; en el diseño de cáscaras toroidales delgadas, sometidas a la acción de presiones internas y fuerzas radiales distribuidas; en el estudio de la deformación, tanto de columnas sujetas a fuerzas longitudinales, como en placas delgadas en las cuales actúan además de fuerzas transversales, fuerzas centrı́fugas internas. Cuando se estudia la aproximación WKM (Wentzel - Kramers - Brillouin), para resolver determinados problemas de la mecánica cuántica, se usa un método de aproximación, en el cual aparece la ecuación uno-dimensional de Schrödinger, 9 d2 y 2m + 2 (E − V (x))y = 0 2 dx h (con E > V , E − V = toma la forma m 2 2V , y V la velocidad clásica), la cual, después de cierto análisis, d2 y − zy = 0, dz 2 que es una ecuación de Airy (para más detalles ver [12]). 90 CAPÍTULO 3. PROBLEMAS DE VALORES INICIALES el movimiento de un tercer cuerpo, como una nave espacial (con una masa insignificante en comparación con M1 y M2 ). Se producen entonces cinco puntos de equilibrio para el movimiento del cuerpo pequeño con relación a los dos cuerpos grandes. Tres de los mismos (encontrados por Euler) están sobre la lı́nea que une los dos cuerpos grandes. Los otros dos (encontrados por Lagrange) son los denominados puntos de Lagrange. Cada uno de ellos forma un triángulo equilátero en el plano de movimiento con las posiciones de los dos cuerpos grandes. Y estamos interesados en el movimiento de la nave cuando pasa cerca de un punto de Lagrange. A fin de simplificar nuestro análisis, supondremos que los dos cuerpos grandes se mueven en cı́rculos (por lo que mantienen una distancia constante entre sı́). Tomaremos como el origen del sistema de coordenadas el centro de masa y supondremos que el eje x siempre contiene a los dos cuerpos grandes. La distancia entre los cuerpos grandes será la unidad de distancia, y la suma de las dos masas será la unidad de masa (M1 +M2 = 1). Por último, la unidad de tiempo será tal que una órbita completa tome 2π unidades (en nuestro caso, 1 año ≡ 2π unidades, lo que equivale a tomar la constante gravitacional igual a 1). Con todas estas suposiciones, el parámetro fundamental es la masa 2 relativa del más pequeño de los dos cuerpos: µ = M1M+M = M2 . Entonces, la 2 posición de M1 es (−µ, 0) y√la de M2 es (1 − µ, 0). La posición del punto de Lagrange será ((1 − 2µ)/2, 3/2). Si (x, y) es la posición de la nave espacial, entonces las distancias a M1 y M2 son: r12 = (x + µ)2 + y 2 , r22 = (x − 1 + µ)2 + y 2 . Por último, las ecuaciones de Newton del movimiento aplicadas a este caso son: (1 − µ)(x + µ) µ(x − 1 + µ) − , r13 r23 .. (1 − µ)y µy . y +2 x −y = − − 3. r13 r2 .. . x −2 y −x = − (3.36) Encuentre el sistema de cuatro ecuaciones de primer orden equivalente al sistema (3.36) (ver Ejemplo de §6.2). Si los dos cuerpos son la Tierra y √ la Luna, µ = 0.0122, x = (1 − 2µ)/2 + ξ y y = 3/2 + η. Ası́, (ξ, η) es la posición de la nave relativa al punto de Lagrange. Comenzando con condiciones iniciales menores que 1/100 unidades de distancia del punto de 3.5. EXPERIMENTACIÓN NUMÉRICA ADICIONAL 91 Lagrange, calcular la solución. Para cada solución calculada, obtener la gráfica de η vs. ξ para observar el movimiento relativo al punto de Lagrange. Graficar además y vs. x, que incluya las posiciones de M1 y M2 , a fin de obtener una visión global del movimiento. (Nota: Tomado del texto de Polking y Arnold, 1999 [33]) Capı́tulo 4 Problemas con valores en la frontera para EDOs En muchos problemas prácticos requerimos determinar una solución para un sistema de ecuaciones diferenciales en un intervalo finito dado, con s condiciones complementarias conocidas en uno de los extremos del intervalo y m − s condiciones en el otro extremo. A un problema, con este tipo de condiciones, lo denominaremos un problema con valores en la frontera (PVF). Los métodos numéricos que abordan esta clase de problemas son diferentes a los considerados para los PVIs. Más precisamente, requerimos la solución en un intervalo [a, b], con algunas condiciones dadas en a, y el resto en b, sin embargo pueden darse situaciones más complicado, que involucran tres o más puntos. Proponemos pues el caso de un problema con valores en la frontera en dos puntos para una ecuación diferencial de segundo orden. Nos referimos al problema y ′′ = f (t, y, y ′ ), t ∈ (a, b), con las condiciones y(a) = α, y(b) = β, (4.1) donde α y β son números reales dados. Ejemplo. y ′′ = −y, y(0) = 3, y(π/2) = 7. (4.2) La solución general de la ecuación diferencial es y(t) = C1 sen t + C2 cos t. Hallamos las constantes C1 y C2 tales que se satisfagan las condiciones de frontera. Ası́, C1 = 7 y C2 = 3. De manera que la solución de (4.2) es 93 94 CAPÍTULO 4. PROBLEMAS CON VALORES EN LA FRONTERA y(t) = 7 sen t + 3 cos t. El procedimiento que seguimos en el ejemplo anterior deja de ser práctico cuando no conocemos la solución general de la ecuación diferencial (4.1). De allı́ la necesidad de contar con métodos numéricos adecuados que nos permitan abordar este tipo de problema. Consideremos ahora el siguiente problema de apariencia similar al anterior: y ′′ = −y, y(0) = 3, y(π) = 7. (4.3) Si imponemos las condiciones de frontera a la solución general, obtenemos la contradicción de que C2 = 7 y C2 = −7. Por lo que el problema (4.3) no tiene solución. El asunto de la existencia de soluciones de (4.1) tiende a ser más complicado que para el caso de los PVIs. Mostremos a continuación otro ejemplo. Ejemplo. ([34, §12.1]) Consideremos el PVF siguiente −y ′′ (t) = f (t), t ∈ (0, 1), y(0) = y(1) = 0. (4.4) Del TFC sigue que si y ∈ C 2 [0, 1] y satisface la ecuación diferencial −y ′′ (t) = f (t), entonces ∫ t y(t) = − F (s)ds + C1 t + C2 , ∫s donde C1 y C2 son constantes abitrarias y F (s) = 0 f (t)dt. Integrando por partes tenemos que ∫ t ∫ t t ∫ t ′ F (s)ds = sF (s) − sF (s)ds = (t − s)f (s)ds. 0 0 0 0 0 es claro que de las condiciones de frontera sigue que C2 = 0 y C1 = ∫Ahora, 1 (1 − s)f (s)ds. De manera que la solución de (4.4) se puede expresar como 0 ∫ 1 ∫ t y(t) = t (1 − s)f (s)ds − (t − s)f (s)ds, 0 o bien, ∫ y(t) = { 1 G(t, s)f (s)ds, donde G(t, s) = 0 0 s(1 − t) si s ∈ [0, t], t(1 − s) si s ∈ [t, 1], (4.5) 95 para cualquier t fijo. La función G se denomina función de Green para el PVF (4.4). Ésta es una función lineal a trozos de s para t fijo, y viceversa 1 (¡verificar!). Además, la función G es continua, ∫ 1 simétrica , nula en los puntos extremos del intervalo [0, 1], no negativa y 0 G(t, s)ds = t(1 − t)/2. Por esta razón podemos concluir que para toda f ∈ C[0, 1] existe una única solución y ∈ C 2 [0, 1] del PVF (4.4) que tiene la representación (4.5). Ejercicio 1. (a) Demostrar que si f ∈ C[0, 1] la solución de (4.4), dada por (4.5), tiene las propiedades de monotonicidad y del principio del máximo2 . (b) Demostrar que y(t) = −t ln(t) si f (t) = 1/t en (4.4). Esto muestra que y ∈ C 2 (0, 1), pero y(0) no está definida y además y ′ , y ′′ no existen en t = 0 (lo que implica que si f ∈ C(0, 1), pero no a C[0, 1], entonces y∈ / C[0, 1]). El siguiente teorema nos dice algo más. Teorema 4.1 El PVF Ly ≡ y ′′ = f (t, y) y(0) = 0, y(1) = 0, (4.6) tiene solución única si fy es continua, no negativa y acotada en el conjunto F = {(t, y) ∈ R2 : t ∈ [0, 1], y ∈ R}. Demostración: La demostración se desarrolla siguiendo un procedimiento similar, aunque más elaborado, al mostrado en el ejemplo anterior, donde se parte de la equivalencia entre una ecuación integral definida en términos de una función de Green para el operador L y el PVF (4.6). Para los detalles ver la referencia [28, §4.1]. 2 Esto es, G(t, s) = G(s, t) ∀t, s ∈ [0, 1]. La primera propiedad dice que si f ∈ C[0, 1] es una función no negativa, entonces y también lo es. La segunda establece que si f ∈ C[0, 1], entonces ∥y∥∞ ≤ 81 ∥f ∥∞ , donde ∥y∥∞ = maxt∈[0,1] |y(t)| es la norma del máximo. 1 2 96 CAPÍTULO 4. PROBLEMAS CON VALORES EN LA FRONTERA Ejercicio 2. Aplicar el teorema anterior para demostrar que el PVF en dos puntos y ′′ = (5y + sen 3y)et y(0) = y(1) = 0 tiene una solución única. Consideremos ahora el problema más general: y ′′ (t) = f (t, y) y(a) = α, y(b) = β, (4.7) Ejercicio 3. (a) Realizar el cambio de variable adecuado para que los problemas (4.7) y x′′ (s) = (b − a)2 f (a + (b − a)s, x(s)), x(0) = α, x(1) = β, (4.8) sean equivalentes. Es decir, demostrar que si x es una solución de (4.8), entonces la función y, definida por y(t) = x((t − a)/(b − a)) (a ≤ t ≤ b), es una solución de (4.7), y si y es una solución de (4.7), entonces la función x, definida por x(s) = y(a + (b − a)s) (0 ≤ s ≤ 1), es una solución de (4.8). (b) Demostrar que los siguientes PVFs { ′′ { ′′ y (t) = sen(ty) + y 2 , x (t) = 16{sen[(4s + 1)x] + x2 }, y(1) = 3, y(5) = 7, x(0) = 3, x(1) = 7, son equivalentes. Ejercicio 4. (a) Demostrar que los siguientes PVFs { ′′ { ′′ y (t) = f (t, y), z (t) = f (t, z + α + (β − α)t), y(0) = α, y(1) = β, z(0) = 0, z(1) = 0, son equivalentes. (b) Demostrar que el PVF { ′′ y (t) = [5y − 10t + 35 + sen(3y − 6t + 21)]et , y(0) = −7, y(1) = −5, tiene una solución única. 4.1. MÉTODO DEL DISPARO 4.1 97 Método del disparo El método del disparo reemplaza un problema con valores en la frontera en dos puntos por una sucesión de problemas de valores iniciales cuyas soluciones convergen a la solución del problema dado. De manera que la estrategia a seguir para abordar el PVF (4.1) es la de proponer un valor inicial y ′ (a) tal que el PVI asociado nos permita obtener una solución aproximada con la expectativa de que y(b) = β. Si este no fuera el caso, proponemos de nuevo otro valor para y ′ (a) y repetimos el proceso, el cual, por cierto, denominaremos de disparo. Estudiemos algunas estrategias para hacer esto. Supongamos pues que el PVI asociado es yγ′′ = f (t, yγ , yγ′ ), yγ (a) = α, yγ′ (a) = γ, (4.9) donde γ denota el valor propuesto para y ′ (a). Si denotamos por yγ la solución de este problema, claramente, nuestro objetivo es el de escoger γ de manera que yγ (b) = β. Ahora bien, si consideramos la función ϕ, definida por ϕ(γ) ≡ yγ (b) − β, (4.10) nuestro objetivo será entonces el de resolver para γ la ecuación, en general, no lineal ϕ(γ) = 0. Por lo que necesitamos de algún método numérico adicional para resover esta ecuación (e.g., un método tipo secante). El costo computacional involucrado será alto, ya que cada valor de ϕ(γ) lo obtenemos al resolver numéricamente un PVI. Supogamos que tenemos dos valores de ϕ, digamos ϕ(γ1 ) y ϕ(γ2 ), y que que ϕ es una función lineal. Entonces, ( ) ϕ(γ2 ) − ϕ(γ1 ) ϕ(γ) = ϕ(γ2 ) + (γ − γ2 ). γ2 − γ1 Si escogemos γ3 tal que ϕ(γ3 ) = 0 (i.e., el punto de corte con el eje de las abscisas), entonces ( ) γ2 − γ1 γ3 = γ2 − ϕ(γ2 ). ϕ(γ2 ) − ϕ(γ1 ) Podemos aplicar este mismo procedimiento a fin de obtener la sucesión {γi }∞ i=1 a partir de ( ) γn − γn−1 γn+1 = γn − ϕ(γn ) (n ≥ 1), ϕ(γn ) − ϕ(γn−1 ) 98 CAPÍTULO 4. PROBLEMAS CON VALORES EN LA FRONTERA que constituye el conocido método de la secante para ecuaciones no lineales (ver §??). Una estrategia adicional consiste en que después de que hayamos obtenido algunos valores de γ para los que ϕ(γ) ≈ 0, detengamos el proceso y apliquemos interpolación polinomial a fin de obtener una mejor estimación ([29, §8.8]); sin embargo, el éxito de esta estrategia depende de que la función inversa de ϕ sea diferenciable en una vecindad de la raı́z y de que ésta sea simple. Por supuesto que también podemos aplicar aquı́ el método de Newton para ecuaciones no lineales (§??): γn+1 = γn − ϕ(γn ) , ϕ ′ (γn ) n = 0, 1, . . . (4.11) Ejercicio 5. A partir de derivar parcialmente respecto a γ las ecuaciones en (4.9), demostrar que obtenemos el PVI µ′′ = fyγ (t, yγ , yγ′ )µ + fyγ′ (t, yγ , yγ′ )µ′ , µ(a) = 0, µ′ (a) = 1, (4.12) donde µ = ∂yγ /∂γ. Al resolverlo, podemos determinar µ(b) = ∂yγ (b)/∂γ = ϕ ′ (γ), lo que nos permitirá aplicar el método de Newton para hallar una raı́z de ϕ. Si γ0 es una primera aproximación lo suficientemente buena, la sucesión {γn } convergerá a la raı́z de (4.10) que buscamos. Si hacemos γ = γ0 los dos PVIs (4.9) y (4.12) se pueden resolver por alguno de los métodos, el que más convenga, de los estudiados en el capı́tulo anterior. Del PVI (4.9) obtenemos yγ0 y de (4.10), ϕ(γ0 ), mientras que de la solución del PVI (4.12) obtenemos ϕ ′ (γ0 ). De manera que, de (4.11), obtenemos un nuevo estimado γ1 , y el proceso se repite. Ejercicio 6. Escribir un algoritmo para el método del disparo usando el método de Newton. Resolver numéricamente el PVF y ′′ = −y + 2(y ′ )2 y −1 , t ∈ (−1, 1), y(−1) = y(1) = (e + e−1 )−1 . La solución de este problema es y(t) = (et + e−t )−1 . Plantear y resolver numéricamente el PVI (4.9) para el método del disparo (cuya solución denotaremos por yγ∗ ) y el PVI (4.12) usando el método de Runge-Kutta de 4.1. MÉTODO DEL DISPARO 99 segundo orden, con tamaño de paso h = 2/N y valores de N = 4, 8, 16, 32 y 64. Usar como iterado inicial para el método de Newton γ0 = 0.2 y como criterio de parada la condición |γn+1 − γn | < 10−10 . Tabular los resultados con columnas para N , γ ∗ − γ r y EN ≡ max0≤i≤N |y(ti ) − yγ∗r (ti )|, donde γ ∗ denota la raı́z que buscamos, γ r es la raı́z de la ecuación ϕ(γ) = yγ∗ − (e + e−1 )−1 = 0, los ti son los nodos usados en la resolución del PVI y yγ∗r es la solución del PVI cuando γ = γ r . El método del disparo puede ser, computacionalmente hablando, muy costoso. Sin embargo, en el caso de que la ecuación diferencial sea lineal el método de la secante proporciona la solución en un paso. En este caso el PVF en dos puntos será de la forma: y ′′ (t) = p(t)y ′ (t) + q(t)y(t) + r(t) y(a) = α, y(b) = β, (4.13) donde asumimos que las funciones p, q y r son continuas en [a, b]. Supongamos también que hemos resuelto los PVIs: yγ′′1 (t) = p(t)yγ′ 1 (t) + q(t)yγ1 (t) + r(t), yγ1 (a) = α, yγ′ 1 (a) = γ1 , yγ′′2 (t) = p(t)yγ′ 2 (t) + q(t)yγ2 (t) + r(t), yγ2 (a) = α, yγ′ 2 (a) = γ2 . y Observemos que la combinación lineal de yγ1 y yγ2 y(t) = λyγ1 (t) + (1 − λ)yγ2 (t), (4.14) con λ ∈ R, es una solución de la ecuación diferencial y satisface la condición y(a) = α. Escojamos pues λ tal que y(b) = β. Esto es, β = λyγ1 (b) + (1 − λ)yγ2 (b). De donde, λ= β − yγ2 (b) . yγ1 (b) − yγ2 (b) (4.15) Si usamos un software de cómputo cientı́fico para resolver numéricamente el problema (4.13), podemos tomar γ1 = 0 y γ2 = 1 en los dos PVIs anteriores, y para obtener yγ1 y yγ2 de manera simultánea, podemos transformar estos 100 CAPÍTULO 4. PROBLEMAS CON VALORES EN LA FRONTERA problemas de segundo orden en un solo sistema de primer orden. En efecto, si definimos y0 = t, y3 = yγ′ 1 , y4 = yγ′ 2 , obtendremos el siguiente sistema de ecuaciones de valores iniciales: ′ y =1 y0 (a) = a, 0′ yγ1 (a) = α, yγ1 = y3 yγ′ 2 = y4 yγ2 (a) = α, ′ y = f (y , y , y ) y3 (a) = 0, 3 0 γ1 3 ′ y4 (a) = 1. y4 = f (y0 , yγ2 , y4 ) A continuación, calculando λ mediante (4.15), obtenemos la solución y en cada valor de t usando (4.14). Ejercicio 7. Aplicar el método del disparo para resolver numéricamente el PVF siguiente: y ′′ = −(t + 1)y ′ + (cos t)y + et y(0) = 1, y(1) = 3. Utilizar el método clásico de Runge-Kutta de cuarto orden con h = 0.01. Notemos que la solución del problema (4.1), cuando es no lineal, no se puede expresar como una combinación lineal de las soluciones de dos problemas con valores iniciales como lo acabamos de hacer. Ejercicio 8. Demostrar que si resolvemos un PVF lineal en dos puntos con el método de Newton para ϕ, y calculamos ϕ ′ usando (4.12), el resultado debe ser el mismo que el que obtuvimos usando las ecuaciones (4.14) y (4.15). Los métodos de disparo se pueden aplicar a problemas más generales que (4.1) [28]. Una importante dificultad con el método del disparo es que el PVI asociado pueda presentar situaciones de inestabilidad, debido por ejemplo a curvas solución que divergen en parte del dominio; un hecho que crea una dificultad adicional para dar en el blanco deseado3 . Una posible solución a este problema está dada por la aplicación del denominado método del disparo múltiple, en el cual el intervalo [a, b] se divide en subintervalos y se 3 I.e., El PVI generado por el método del disparo es con frecuencia inestable, en el sentido de ser muy sensible a perturbaciones en las condiciones iniciales. 4.2. MÉTODO DE LAS DIFERENCIAS FINITAS 101 aplica el método del disparo en cada uno de ellos. Se requiere además de la continuidad de y y y ′ en los puntos internos del intervalo original, extremos de los subintervalos, lo que nos proporciona las condiciones de frontera necesarias para los subproblemas individuales. El sistema de ecuaciones que de ello resulta se puede resolver numéricamente usando, por ejemplo, el método de Newton. Otra dificultad, derivada de usar el método de Newton, consiste en que no tenemos una estrategia general para escoger una estimación inicial γ0 para la iteración de Newton, y con una mala elección, la iteración puede no converger. 4.2 Método de las diferencias finitas Otra estrategia para abordar numéricamente un PVF en dos puntos consiste en la discretización del intervalo de definición de t, para luego aplicar fórmulas que estiman de manera aproximada las derivadas. Por ejemplo, y ′ (t) = y(t + h) − y(t − h) 1 2 ′′′ − h y (ξ) 2h 6 y y ′′ (t) = y(t + h) − 2y(t) + y(t − h) 1 2 (4) − h y (ζ) h2 12 (ver §2.1). Consideremos nuevamente el problema (4.1) y definamos una partición del intervalo [a, b] mediante el uso de los puntos t0 , t1 , . . . , tn , tn+1 ∈ [a, b], no necesariamente igualmente espaciados, de manera que a = t0 < t1 < . . . < tn < tn+1 = b. Suponemos pues que ti = a + ih, i = 0, 1, . . . , n + 1, y h = (b − a)/(n + 1). Ası́, la discretización de (4.1) es yi+1 −2yi +yi−1 h2 ( −yi−1 ) = f ti , yi , yi+12h , i = 1, . . . , n, (4.16) y0 = α, yn+1 = β, el cual representa un sistema de orden n con y1 , y2 , . . . , yn como incógnitas. Si f depende de yi de una manera no lineal, entonces las ecuaciones serán no lineales y más difı́ciles de resolver. Si f es lineal en y y y ′ , entonces f es de la forma f (t, y, y ′ ) = p(t)y ′ (t) + q(t)y(t) + r(t). De manera que el sistema 102 CAPÍTULO 4. PROBLEMAS CON VALORES EN LA FRONTERA anterior será ahora un sistema lineal de la forma ai yi−1 + di yi + ci yi+1 = bi , i = 1, . . . , n, y0 = α, yn+1 = β, donde ai = −1 − 12 hpi , di = 2 + h2 qi , ci = −1 + 21 hpi , bi = −h2 ri , pi = p(ti ), qi = q(ti ) y ri = r(ti ), para i = 1, 2, . . . , n (¡verificar!). En notación matricial tenemos el sistema tridiagonal4 siguiente: y b − a α 1 1 1 d 1 c1 0 ... 0 0 b2 .. .. y2 a1 d2 c2 0 . . .. . . . . .. .. 0 ... ... ... . . . = . . . .. . .. ... ... .. . . 0 .. .. . . . . 0 an−2 dn−1 cn−1 yn−1 bn−1 0 ... ... 0 an−1 dn bn − cn β yn Observaciones: • Si h es lo suficientemente pequeño, los qi > 0 y | 12 hpi | < 1 (1 ≤ i ≤ n), entonces |di | > |1 + 21 hpi | + |1 − 12 hpi | = 2. Por lo que la matriz del sistema anterior es diagonal dominante y no singular. • Si p, q y r ∈ C[a, b] y q > 0, el PVF (4.1) con f lineal en y y y ′ , tiene solución única ([28, Cor. Th. 1.2.2]). Para el caso lineal, demostraremos el siguiente resultado de convergencia. Teorema 4.2 Si y ∈ C 4 [a, b], para i = 1, 2, . . . , n, |ei | = |y(ti ) − yi | converge a 0 cuando h → 0. Demostración: Como para i = 1, 2, . . . , n, y(ti−1 ) − 2y(ti ) + y(ti+1 ) 1 − h2 y (4) (ζi ) = ri + qi y(ti ) 2 h 12 [ y(t ) − y(t ) 1 ] i+1 i−1 − h2 y ′′′ (ξi ) . + pi 2h 6 4 Por lo que podemos resolver el sistema usando, por ejemplo, un algoritmo de eliminación gaussiana que aproveche la estructura particular de la matriz. 4.2. MÉTODO DE LAS DIFERENCIAS FINITAS 103 y [y − y ] yi−1 − 2yi + yi+1 i+1 i−1 , = r + q y + p i i i i h2 2h obtendremos, de sustraer la segunda ecuación de la primera, que [e − e ] ei−1 − 2ei + ei+1 i+1 i−1 = q e + p + h2 u i , i i i 2 h 2h donde ui = 1 2 (4) h y (ζi ) 12 − 16 h2 y ′′′ (ξi ). Agrupando términos encontramos que ai−1 ei−1 + di ei + ci ei+1 = −h4 ui (¡verificar!). De esta expresión sigue que |di ||ei | ≤ |ai−1 ||ei−1 | + |ci ||ei+1 | + h4 |ui |. Sea ∥e∥∞ = maxi=1,...,n |ei |. De manera que ∥e∥∞ (|di | − |ci | − |ai−1 |) ≤ h4 ∥u∥∞ , donde ∥y (4) ∥∞ ∥y ′′′ ∥∞ ∥u∥∞ = max |ui | ≤ + . i=1,...,n 12 6 De donde sigue, para h lo suficientemente pequeño, que h2 qi ∥e∥∞ ≤ h4 ∥u∥∞ (¿por qué?). Ası́, [ ] ∥u∥ ∞ ∥e∥∞ ≤ h2 . inf t∈[a,b] q(t) Por lo tanto, ∥e∥∞ es O(h2 ) cuando h → 0 como querı́amos ver. 2 Ejercicio 9. Aplicar el método de las diferencias finitas con h = 1/2 para resolver el PVF en dos puntos y ′′ (t) = −2y ′ (t) − 10t y(0) = 1, y(1) = 2. Calcular y1 ≈ y(1/2). Ejercicio 10. Escribir un algoritmo para resolver numéricamente PVFs lineales en dos puntos usando el método de las diferencias finitas. Usar el algoritmo con n = 10 y h = 0.1 para estimar la solución del PVF y ′′ (t) = −2t−1 y ′ (t) + 2t−2 y(t) + t−2 sen(ln t), t ∈ (1, 2), y(1) = 1, y(2) = 2. 104 CAPÍTULO 4. PROBLEMAS CON VALORES EN LA FRONTERA Comparar los resultados con los obtenidos al aplicar el método del disparo al mismo problema, ası́ como con la solución exacta y(t) = −(1/10) cos(ln t) − (3/10) sen(ln t) + C2 t−2 + C1 t, donde C1 = (1/70)(−4 cos(ln 2) − 12sen(ln 2) + 8) y C1 = (11/10) − C2 . Ejercicio 11. Resolver numéricamente el PVF del Ejercicio 6 usando el método de las diferencias finitas (4.16). Aquı́ EN ≡ max0≤i≤N |y(ti ) − yN (ti )|, donde yN (ti ) es la solución de (4.16) que obtenemos al resolver el sistema no lineal asociado. Resolver este sistema no lineal usando el método de Newton, con valor inicial (e + e−1 )−1 . En cada iteración de Newton estimar el máximo, respecto a i = 1, 2, . . . , N , de la magnitud de la diferencia entre dos iteraciones consecutivas del método. Terminar las iteraciones de Newton cuando este valor sea menor o igual a 10−10 . Comparar con los resultados obtenidos en el Ejercicio 6. Referencias [1] M. ABRAMOWITZ and I.A. STEGUN (eds). Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables. National Bureau and Standards, U.S. Government Printing Office, Washington, D.C., 1964. [2] K.E. ATKINSON. An Introduction to Numerical Analysis, Second Edition. John Wiley, N.Y., 1989. [3] G. BIRKHOFF and G.C. ROTA. Ordinary Differential Equations, Third Edition. John Wiley and Sons, Inc., New York, 1978. [4] A. CALLEJO, J. GARCIA de JALON, and A.F. HIDALGO. Diferenciación automática de fuerzas en la integración implı́cita de sistemas multicuerpo. In Actas del XVIII Congreso Nacional de Ingenierı́a Mecánica, pages 1–10, Ciudad Real, Universidad de Castilla La Mancha, 2010. Asociación Española de Ingenierı́a Mecánica. [5] W. CHENEY and D. KINCAID. Numerical Mathematics and Computing, Sixth Edition. Brooks/Cole Publishing Company, Pacific Grove, 2008. [6] S.D. CONTE and C. DE BOOR. Elementary Numerical Analysis: An Algorithmic Approach, Third Edition. McGraw-Hill, New York, 1980. [7] J.W. COOLEY and J.W. TUKEY. An Algorithm for the Machine Calculation of Complex Fourier Series. Math. Comput., 19(2):297–301, 1965. [8] G. DAHLQUIST and A. BJORCK. Numerical Methods. Prentice-Hall, Inc., Englewood Cliffs, N.J., 1974. 115 116 REFERENCIAS [9] P. DAVIS. Interpolation and Approximation. Ginn (Blaisdell), Massachusetts, 1963. [10] T.A. DAVIS and K. SIGMON. MATLAB Primer, Seventh Edition. CHAPMAN & HALL/CRC, Boca Raton, 2005. [11] J. DENNIS and R. SCHNABEL. Numerical Methods for Unconstrained Optimization and Nonlinear Equations. Prentice-Hall, Inc., Englewood Cliffs, New York, 1983. [12] R. ESCALANTE. Notas sobre la Función Generalizada de Airy. Technical Report RT 04-2000, Dpto. de Computación, Universidad Central de Venezuela, Caracas, Venezuela, 2000. [13] R. ESCALANTE and M. RAYDAN. Dykstra’s algorithm for a constrained least-squares matrix problem. Num. Linear Algebra Appl., 3(6):459–471, 1996. [14] R. ESCALANTE and M. RAYDAN. Dykstra’s algorithm for constrained least-squares rectangular matrix problems. Computers Math. Applic., 35(6):73–79, 1998. [15] R. ESCALANTE and M. VILLASANA. Curso introductorio de MATLAB, Segunda Edición. Editorial Equinoccio, Universidad Simón Bolı́var, Caracas, 2012. [16] D.E. ETTER. Engineering Problem Solving with MATLAB, Second Edition. Prentice-Hall. Inc., N.J., 1997. [17] L.V. FAUSETT. Applied Numerical Analysis Using MATLAB, Second Edition. Prentice-Hall. Inc., N.J., 1999. [18] G.E. FORSYTHE, M.A. MALCOLM, and C.B. MOLER. Computer Methods for Mathematical Computations. Prentice-Hall. Inc., N.J., 1977. [19] W. GAUTSCHI. Numerical Analysis, Second Edition. Boston, MA, 2012. Birkhäuser, [20] H.H. GOLDSTINE. A History of Numerical Analysis from the 16th Through the 19th Century. Springer-Verlag, Berlin, Heidelberg, and New York, 1977. REFERENCIAS 117 [21] G.H. GOLUB and C.F. VAN LOAN. Matrix Computations, Third Edition. The Johns Hopkins University Press, Baltimore, 1996. [22] G.H. GOLUB and J.M. ORTEGA. Scientific Computing and Differential Equations, An Introduction to Numerical Methods. Academic Press, San Diego, California, 1992. [23] S.I. GROSSMAN. Elementary Linear Algebra with Applications, Fifth Edition. Saunders College Publishing, 1994. [24] M.T. HEATH. Scientific Computing, An Introductory Survey, Second Edition. McGraw-Hill, New York, 2002. [25] D.J. HIGHAM and N.J. HIGHAM. MATLAB Guide, Second Edition. Society for Industrial and Applied Mathematics, Philadelphia, 2005. [26] THE MATHWORKS INC. Mathematics, Version 7. Disponible en http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.html, 3251Kb (pdf), Natick, 2005. [27] E. ISAACSON and H. KELLER. Analysis of Numerical Methods. Wiley, New York, 1966. [28] H.B. KELLER. Numerical Methods for Two-Point Boundary-Value Problems. Blaisdel Publishing Company, Waltham, Massachusetts, 1968. [29] D. KINCAID and W. CHENEY. Numerical Analysis: Mathematics of Scientific Computing, Third Edition. Brooks/Cole Publishing Company, Pacific Grove, 2002. [30] C.F. VAN LOAN. Introduction to Scientific Computing - A MatrixVector Approach Using MATLAB, 2nd. Edition. Prentice-Hall, Inc., N.J., 2000. [31] S. NAKAMURA. Numerical Analysis and Graphic Visualization with MATLAB. Prentice-Hall, Inc., N.J., 1996. [32] J.M. ORTEGA. Numerical Analysis, A Second Course. Academic Press, Nueva York, 1972. 118 REFERENCIAS [33] J.C. POLKING and D. ARNOLD. Ordinary Differential Equations using MATLAB, Second Edition. Prentice-Hall, N.J., 1999. [34] A. QUARTERONI, R. SACCO, and F. SALERI. Numerical Mathematics, Second Edition. Springer-Verlag, Berlin Heidelberg, 2007. [35] J. STOER and R. BULIRSCH. Introduction to Numerical Analysis, Third Edition. Springer-Verlag, New York, 2002. [36] E. SÜLI and D.F. MAYERS. An Introduction to Numerical Analysis. Cambridge University Press, Cambridge, 2003.