Cálculo IV E.T.S.I. de Minas Departamento de Matemática Aplicada II Curso 2010–2011 Métodos numéricos para problemas de valor inicial 1 Introducción Consideramos el problema de valor inicial asociado a la ecuación diferencial ordinaria de primer orden: y (x) = f (x, y(x)), a ≤ x ≤ b, P.V.I. y(a) = y0 , Teorema 1 (de Picard). Supongamos que f : D ⊂ R → R, verifica: (H1) f es continua sobre D. (H2) ∃ k > 0/ |f (x, y1 ) − f (x, y2 )| ≤ k |y1 − y2 |, ∀(x, y1 ), (x, y2 ) ∈ D (Condición de Lipschitz) Entonces, para (x0 , y0 ) ∈ D el P.V.I. admite una única solución. Observación 1 Salvo en casos muy particulares, no se puede encontrar la solución del P.V.I., lo que hace conveniente disponer de métodos numéricos. En estos se sustituye el cálculo de una función solución y(x) por la aproximación del valor de esa solución en un conjunto discreto de puntos. 1. Se divide el intervalo (a, b) en n subintervalos. Dado el número natural n se define el paso de discretización: b−a h= n y los puntos de discretización o nodos: xi = a + ih, i = 0, 1, . . . , n. a = x0 < x1 < x2 < . . . < xn = b • • x0 • • x1 x2 1 ... xn−1 • xn 2. Se aproxima el valor de y en esos puntos. • y(xi ): valor exacto de la solución en xi . • yi : valor aproximado teórico de la solución en xi . • ỹi : valor que se obtiene en la práctica en el ordenador. De este modo se pueden analizar los siguientes errores: |ei | = |y(xi ) − yi | = error de discretización. |ri | = |yi − ỹi | = error de redondeo. Luego, en la práctica, el error total es: |y(xi ) − ỹi | = |ei | + |ri | Definición 1 Un método numérico se dice de un paso si para calcular yi+1 se utiliza el valor aproximado de yi : yi+1 = yi + h φ(xi , xi+1 , yi , yi+1 , h). Un método numérico se dice de k pasos (o multipaso) si para calcular yi+1 se utilizan los k valores anteriores, es decir, yi , yi−1 , . . . , yi−k+1 : yi+1 = yi + h φ(xi−k+1 , xi−k , . . . , xi , xi+1 , yi−k+1 , yi−k , . . . , yi , yi+1 , h). Los métodos multipaso necesitan iniciarse con métodos de un menor número de pasos. Definición 2 Un método numérico es explı́cito si calcula yi+1 a partir de los datos anteriores: yi+1 = yi + h φ(x0 , . . . , xi+1 , y0 , . . . , yi , h) Se dice que el método numérico es implı́cito en caso contrario. En general, los métodos implı́citos obligan a resolver una ecuación no lineal en cada iteración (bisección, regula-falsi, punto fijo, Newton-Raphson). 2 Métodos de un paso (1) Método de Euler explı́cito. Corresponde al esquema yi+1 = yi + h f (xi , yi ) ; y0 = y(x0 ). Es un método explı́cito y de un paso. (2) Método de Euler implı́cito. Corresponde al esquema yi+1 = yi + h f (xi+1 , yi+1 ) ; y0 = y(x0 ). (3) Método del trapecio. Se obtiene empleando la fórmula del trapecio para integración numérica: yi+1 = yi + h [f (xi , yi ) + f (xi+1 , yi+1 )] ; y0 = y(x0 ). 2 2 Es un método implı́cito. (4) Método de Euler corregido yi+1 = yi + h f (xi+1 , yi + h f (xi , yi )) ; y0 = y(x0 ). (5) Método de Euler mejorado o de Heun. h [f (xi , yi ) + f (xi+1 , yi + h f (xi , yi ))] ; y0 = y(x0 ). 2 (6) Métodos de Runge-Kutta Sea y(x) solución de la ecuación diferencial ordinaria y (x) = f (x, y). Por integración sobre [x, x + h] se tiene x+h y(x + h) = y(x) + f (s, y(s)) ds yi+1 = yi + x Por tanto, se utilizarán fórmulas de cuadratura numérica para aproximar dicha integral y aproximar la solución de la ecuación diferencial. b N g(x) dx = Ak g(xk ) NOTA: Fórmula de cuadratura numérica a k=0 donde xk son los nodos y Ak son los pesos. Según la fórmula utilizada se obtienen los distintos métodos. Los siguientes métodos son explı́citos, de un paso y se puede alcanzar cualquier orden p deseado. 1. Runge-Kutta de orden 1 (Método de Euler). yi+1 = yi + h K1 , i = 1, 2, . . . , n, K1 = f (xi , yi ). 2. Runge-Kutta de orden 2 (Método de Heun). h yi+1 = yi + (K1 + K2 ), i = 1, 2, . . . , n, 2 K1 = f (xi , yi ), K2 = f (xi + h, yi + h K1 ). 3. Runge-Kutta de orden 2 (Método de Euler modificado). yi+1 = yi + h K2 , i = 1, 2, . . . , n, K1 = f (xi , yi ), K2 = f (xi + h2 , yi + h 2 K1 ). 4. Método de Runge-Kutta de orden 3. h yi+1 = yi + (2K1 + 3K2 + 4K3 ), i = 1, 2, . . . , n, 9 K1 = f (xi , yi ), K2 = f (xi + h2 , yi + K3 = f (xi + h 2 K1 ), 3h 3h , yi + K2 ). 4 4 3 5. Método de Runge-Kutta de orden 4. h yi+1 = yi + (K1 + 2K2 + 2K3 + K4 ), i = 1, 2, . . . , n, 6 K1 = f (xi , yi ), K2 = f (xi + h2 , yi + K3 = f (xi + h2 , yi + h 2 h 2 K1 ), K2 ), K4 = f (xi + h, yi + h K3 ). Es el método más utilizado, conocido como método clásico. Observación 2 Como puede verse en los ejemplos anteriores, no existe un único método de Runge-Kutta para cada orden p, sino que hay toda una familia de métodos para un orden dado. También existen métodos implı́citos, pero no se usan tanto. 3 Métodos multipaso (1) Métodos de Adams-Bashforth Se conoce como fórmula de Adams-Bashforth de (k + 1) pasos a una fórmula del tipo: yi+1 = yi + h k βj fi−j , j=0 donde: fi = f (xi , yi ) y los coeficientes βj (pesos de la fórmula de cuadratura) se determinan de tal forma que la fórmula de cuadratura sea exacta para polinomios de grado menor o igual que k. Entonces, a partir de y0 , y1 , . . . , yk conocidos, se pueden calcular todos los restantes yi , i = k + 1, . . . , n. Claramente son métodos explı́citos. Fórmulas de Adams-Bashforth: 1. Caso k = 0 (1 paso, orden 1) (Es el método de Euler) yi+1 = yi + h fi 2. Caso k = 1 (2 pasos, orden 2) h yi+1 = yi + (3fi − fi−1 ) 2 3. Caso k = 2 (3 pasos, orden 3) h (23fi − 16fi−1 + 5fi−2 ) yi+1 = yi + 12 4. Caso k = 3 (4 pasos, orden 4) h (55fi − 59fi−1 + 37fi−2 − 9fi−3 ) yi+1 = yi + 24 4 (2) Métodos de Adams-Moulton Se conoce como fórmula de Adams-Moulton de k pasos a una fórmula del tipo: yi+1 = yi + h k βj fi+1−j , j=0 donde fi = f (xi , yi ) y los coeficientes βj se determinan de tal forma que la fórmula de cuadratura sea exacta para polinomios. Fórmulas de Adams-Moulton: 1. Caso k = 0 (orden 1) (Se conoce como método de Euler implı́cito) yi+1 = yi + h fi+1 2. Caso k = 1 (orden 2) h yi+1 = yi + (fi+1 + fi ) 2 3. Caso k = 2 (orden 3) h yi+1 = yi + (5fi+1 + 8fi − fi−1 ) 12 4. Caso k = 3 (orden 4) h yi+1 = yi + (9fi+1 + 19fi − 5fi−1 + fi−2 ) 24 Observación 3 Obsérvese que en todos los casos para el cálculo de yi+1 se utiliza el valor fi+1 = f (xi+1 , yi+1 ) que es desconocido. Esto hace que los métodos de Adams-Moulton no sean aplicables directamente para avanzar en la solución, ya que el valor yi+1 aparece en ambos lados de la ecuación. En contrapartida, los métodos implı́citos tienen orden de convergencia mayor que los explı́citos. Para calcular yi+1 se deberá recurrir a métodos iterativos de resolución de ecuaciones algebraicas (por ejemplo, el método de Newton-Raphson). 4 Métodos predictor-corrector Las fórmulas de Adams-Bashforth y de Adams-Moulton raramente se utilizan de manera independiente. Se suelen utilizar de manera conjunta para aumentar la precisión de la solución. Unos algoritmos muy eficientes son los conocidos como métodos predictor-corrector que consisten en el conjunto formado por un método implı́cito y otro explı́cito usados simultáneamente. Veamos cómo es el procedimiento: En primer lugar se utiliza un método explı́cito ∗ = yi + h φp (xi−k , . . . , xi , yi−k , . . . , yi , h) yi+1 ∗ . para “predecir” un valor aproximado de yi+1 , que denotaremos por yi+1 5 A continuación, se usa un método implı́cito ∗ , h) yi+1 = yi + h φc (xi−k , . . . , xi , xi+1 , yi−k , . . . , yi , yi+1 ∗ , esto es: para “corregir” el valor de yi+1 , utilizando para el cálculo de fi+1 el valor predicho yi+1 ∗ fi+1 = f (xi+1 , yi+1 ). (Esta “corrección” puede realizarse tantas veces como se quiera). 5 Métodos basados en la derivación numérica Sea y(x) solución del PVI y (x) = f (x, y(x)), y(a) = y0 , a ≤ x ≤ b, Los métodos basados en la derivación numérica proponer resolver numéricamente este problema mediante esquemas de la forma s 1 αj yi+1+j = f (xi+1 , yi+1 ) h j=−k donde el primer término representa una aproximación de y (xi ). Definición 3 Se denomina esquema BDF (Backward Differentiation Formulas) para la resolución del PVI a un método que se escribe de la forma 0 1 αj yi+1+j = f (xi+1 , yi+1 ) h j=−k Ejemplo 1 1. Empleando la fórmula de derivación numérica y(x + h) − y(x) = y (x + h) + O(h) h se obtiene un esquema con k = 1 (1 paso) yi+1 − yi = h f (xi+1 , yi+1 ) que coincide con el método de Euler implı́cito. 2. Empleando la fórmula de derivación numérica 3 2 y(x + h) − 2y(x) + 12 y(x − h) = y (x + h) + O(h2 ) h se obtiene un esquema con k = 2 (2 pasos) 1 3 yi+1 − 2yi + yi−1 = h f (xi+1 , yi+1 ) 2 2 6 Observación 4 En realidad se denominan esquemas BDF a la familia de esquemas que emplea, para cada valor de k (número de pasos), una fórmula de derivación numérica de orden k. Tabla de esquemas BDF 0 1 αj yn+1+j = f (xn+1 , yn+1 ) h j=−k k α0 α−1 α−2 α−3 α−4 α−5 1 1 -1 2 3/2 -2 1/2 3 11/6 -3 3/2 -1/3 4 25/12 -4 3 -4/3 1/4 5 137/60 -5 5 -10/3 5/4 -1/5 6 147/60 -6 15/2 -20/3 15/4 -6/5 α−6 1/6 Observación 5 No se emplean esquemas BDF con k ≥ 7 puesto que no satisfacen la condición denominada cero-estabilidad (al resolver un problema con f = 0, las soluciones numéricas deben ser acotadas). 6 Sistemas de ecuaciones diferenciales ordinarias Se quiere resolver el sistema de ecuaciones diferenciales ordinarias ⎧ y1 (x) = f1 (x, y1 (x), . . . , ym (x)), y1 (x0 ) ⎪ ⎪ ⎪ ⎪ y ⎪ ⎨ 2 (x) = f2 (x, y1 (x), . . . , ym (x)), y2 (x0 ) .. . ⎪ ⎪ ⎪ y (x) = fm−1 (x, y1 (x), . . . , ym (x)), ym−1 (x0 ) ⎪ ⎪ ⎩ m−1 (x) = f (x, y (x), . . . , y (x)), y (x ) ym m 1 m m 0 Considerando las incógnitas como componentes de una función vectorial de una variable Y (x) = (y1 (x), . . . , ym (x)) y las ecuaciones como componentes de una función vectorial de varias variables F (x, Y (x)) = (f1 (x, Y (x)), . . . , fm (x, Y (x))) dicho sistema se puede escribir como una ecuación vectorial Y (x) = F (x, Y (x)) De manera que los esquemas de ecuaciones se adaptan de modo natural. Por ejemplo, el método de Euler explı́cito se escribe: Yi+1 = Yi + h F (xi , Yi ) ; Y0 = (y1 (x0 ), . . . , ym (x0 )) 7 lo cual representa yi+1,1 = yi,1 + h f1 (xi , yi,1 , . . . , yi,m ), yi+1,2 = yi,2 + h f2 (xi , yi,1 , . . . , yi,m ), .. . yi+1,m = yi,m + h fm (xi , yi,1 , . . . , yi,m ) 7 Ecuaciones diferenciales ordinarias de orden superior La resolución numérica de una ecuación diferencial ordinaria de orden superior m y (x) = f (x, y(x), y (x), . . . , y m−1 (x)) y(x0 ) = y0 , y (x0 ) = y0 , . . . , y m−1 (x0 ) = y0m−1 se realizará transformándola en un sistema equivalente. Si se consideran las nuevas variables z1 = y, z2 = y , . . . , zm = y m−1 , la ecuación diferencial de orden m se puede escribir de forma equivalente como el sistema de m ecuaciones de primer orden ⎧ z1 = z2 = f1 (x, z1 , z2 , . . . , zm ) ⎪ ⎪ ⎪ ⎪ z ⎪ ⎨ 2 = z3 = f2 (x, z1 , z2 , . . . , zm ) .. . ⎪ ⎪ ⎪ = zm = fm−1 (x, z1 , z2 , . . . , zm ) z ⎪ ⎪ ⎩ m−1 = f (x, z , z , . . . , z ) = f (x, z , z , . . . , z ) zm m 1 2 m 1 2 m A continuación se denota Z(x) = (z1 (x), . . . , zm (x)), F (x, Z(x)) = (f1 (x, Z(x)), . . . , fm (x, Z(x))) 8 Conceptos ligados a los métodos numéricos Dado un PVI se considera su resolución numérica mediante el siguiente método numérico explı́cito de un paso: ⎧ ⎨ yi+1 = yi + h φ(xi , yi , h), i ≥ 0 (ME) ⎩ xi = x0 + i h, h = b − a n Definición 4 Un método numérico se dice de orden p si p es el mayor entero que verifica: y(x + h) − y(x) − h φ(x, y(x), h) = O(hp+1 ) siendo y(x) la solución exacta de y (x) = f (x, y(x)). O bien y(x + h) − y(x) − φ(x, y(x), h) = O(hp ) h El método numérico aproxima la ecuación diferencial con un orden p (error de orden p en h). 8 Observación 6 Se dice que F (h) = O(hk ) si ∃M > 0/ |F (h)| ≤ M |hk |, 0 < h < δ. Si consideramos x = xi , se tiene y(xi + h) − y(xi ) − h φ(xi , y(xi ), h) = y(xi+1 ) − yi+1 = error local de discretización = O(hp+1 ). Por ejemplo, el método de Euler explı́cito es de orden 1. Definición 5 Se dice que el método (ME) es consistente con la ecuación diferencial ordinaria y (x) = f (x, y(x)) si se verifica lim φ(x, y, h) = f (x, y) h→0 Observación 7 Puesto que yi+1 − yi − φ(xi , yi , h) h esta condición asegura que se aproxima a la ecuación diferencial ordinaria. El método de Euler explı́cito es claramente consistente. Definición 6 Se denomina error de truncamiento local del método numérico (ME) en el paso i-ésimo a y(xi+1 ) − y(xi ) − φ(xi , y(xi ), h) τi (h) = h Observación 8 1. Se puede interpretar como una medida del error cometido en xi+1 a partir del valor exacto y(xi ). 2. Si el método numérico es de orden p, entonces τi (h) = O(hp ) Proposición 1 El método numérico (ME) es consistente si y sólo si verifica lim ( max |τi (h)|) = 0. h→0 0≤i≤n Observación 9 Los métodos consistentes son de orden uno al menos. Definición 7 El método numérico (ME) se denomina estable si para toda terna de sucesiones {yi }, {zi }, {εi } yi+1 = yi + h φ(xi , yi , h) zi+1 = zi + h [φ(xi , zi , h) + εi ](∗), i = 0, 1, . . . , n − 1 existe M > 0, independiente de h, tal que max |yi − zi | ≤ M (|y0 − z0 | + max |εk |) 0≤i≤n 0≤k≤n 9 Observación 10 1. Suponiendo que f (x, y) es suficientemente regular, la solución exacta del PVI y una solución de un problema perturbado verifican una acotación similar. La ecuación (∗) supone la posibilidad de que haya un error en la formulación de la ecuación diferencial ordinaria y que la condición inicial tenga un error. 2. La condición de estabilidad de un método numérico asegura que los errores de redondeo εi que aparezcan en la resolución numérica originan errores |yi − zi | en la solución acotados por los anteriores. {εi } acotada ⇒ {|yi − zi |} acotada Proposición 2 Si la función φ(x, y, h) verifica la condición de Lipschitz con respecto a la segunda variable: ∃k > 0/ |φ(x, y, h) − φ(x, z, h)| ≤ k |y − z|, ∀x ∈ (a, b), y, z ∈ R entonces el método numérico (ME) es estable. Definición 8 Se dice que el método numérico (ME) es convergente si se verifica lim yi = y(xi ), xi = x0 + i h h→0 La solución exacta del PVI se puede aproximar tanto como se quiera sin más que reducir el paso h. Proposición 3 Consistencia + Estabilidad ⇔ Convergencia Ejercicio 1 Sea f una función que verifica una condición de Lipschitz respecto de la segunda variable para x ∈ [a, b]. Para aproximar el valor del problema de Cauchy y (x) = f (x, y(x)) , x ∈ [a, b] y(0) = 0 se considera el método de Heun yi+1 = yi + h [f (xi , yi ) + f (xi+1 , yi + h f (xi , yi ))] ; y0 = y(x0 ). 2 Estudiar si el método es consistente, estable y convergente. Solución: En el caso del método de Heun se tiene que 1 φ(x, y, h) = [f (x, y) + f (x + h, y + hf (x, y))]. 2 El método es obviamente consistente ya que 1 1 [f (x, y) + f (x + h, y + hf (x, y))] = [f (x, y) + f (x, y)] = f (x, y). h→0 2 2 lim φ(x, y, h) = lim h→0 10 Para ver que es estable bastará ver, gracias a la Proposición 2, que φ verifica una condición de Lipschitz respecto de la segunda variable. Ahora bien, como f la verifica, se tiene que ∃k > 0/ |f (x, y) − f (x, z)| ≤ k |y − z|, ∀x ∈ (a, b), y, z ∈ R. Ası́ pues, se tiene: 1 |φ(x, y, h) − φ(x, z, h)| = |f (x, y) + f (x + h, y + hf (x, y)) − f (x, z) − f (x + h, z + hf (x, z))| 2 1 1 ≤ |f (x, y) − f (x, z)| + |f (x + h, y + hf (x, y)) − f (x + h, z + hf (x, z))| ≤ 2 2 1 1 ≤ k |y − z| + k |y + hf (x, y) − z − hf (x, y)| ≤ 2 2 1 1 1 ≤ k |y − z| + k |y − z| + k |hf (x, y) − hf (x, y)| ≤ 2 2 2 1 ≤ k |y − z| + kh k|y − z| = M |y − z| , 2 donde M = k + (k2 h)/2. Finalmente, como el método es consistente y estable, en virtud de la Proposición 3, será convergente. 11