Star-Alliance-CC2-Student-Team* Formula Compilation Valparaı́so, 28 de noviembre de 2006** 1. EDOs Conversión de ecuaciones diferenciales de segundo orden a sistema de ecuaciones diferenciales de primer orden: Sea y ′′ = f (x, y, y ′ ) x0 = a, y(x0 ) = y0 , y ′ (x0 ) = y0′ , a ≤ x ≤ b (1) Esta ecuación diferencial de segundo orden se convierte en un sistema de ecuaciones diferenciales de primer grado, de la forma: x0 = y′ = z′ = a z f (x, y, z) y(x0 ) = y0 z(x0 ) = y0′ (2) a≤x≤b Ahora, se puede resolver este sistema de ecuaciones aplicando cualquier algoritmo de resolución numérica para EDOs de primer orden. NOTA: Para los métodos de Euler, Heun y Runge-Kutta, se supone un problema del tipo y = f (x, y), a ≤ x ≤ b, y(a) = b (3) tomando N pasos en el algoritmo. El problema propuesto en (3) se llama también AWP 1 Método de Euler: El más simple y con más error asociado. Se buscan las soluciones a partir del valor de la pendiente de la función solución en el punto en el que nos encontremos. Los pasos son: 1. Calculamos h = (b − a)/N . Luego, para cada paso del algoritmo seguimos los pasos 2 y 3. 2. xi+1 = xi + h 3. yi+1 = yi + f (xi , yi )h Heun: El siguiente en complejidad. Se toman la pendiente actual, y la pendiente que se obtendrı́a en el siguiente paso por método de Euler, y se promedian entre ellas para obtener el siguiente punto. Tiene asociados un error por cada paso de elocal (xi ) = O(x3 ), y un error global acumulado de eglobal (xi ) = O(x2 ). Los pasos son parecidos al método de Euler: * Proyecto Salas de Estudio Edificio C, UTFSM 2006 Desarrollo de Textos Decentes Tobar Carrizo, Valparaı́so, 28 de noviembre de 2006. De antemano se agradece toda correción, crı́tica, o comentario que el amable lector tenga a bien hacer llegar a rtobar@alumnos.inf.utfsm.cl. 1 Anfangs Wert Problem ** Rodrigo c 1 1. Calculamos h = (b − a)/N . Luego, para cada paso del algoritmo seguimos los pasos 2 al 5. 2. xi+1 = xi + h 3. k1 = f (xi , yi )h 4. k2 = f (xi+1 , yE ), yE = yi + f (xi , yi )h k1 + k2 h 5. yi+1 = yi + 2 Runge-Kutta: El más poderoso de todos. Sigue la idea de Heun, ahora calculando más pendientes, ponderándolas y promediándolas. Los errores asociados son elocal (xi ) = O(x5 ) y eglobal (xi ) = O(x4 ). Los pasos del algoritmo son los siguientes: 1. Calculamos h = (b − a)/N . Luego, para cada paso del algoritmo seguimos los pasos 2 al 7. 2. xi+1 = xi + h 3. k1 = f (xi , yi ) 4. k2 = f (xi + h/2, yi + k1 h/2) 5. k3 = f (xi + h/2, yi + k2 h/2) 6. k4 = f (xi + h, yi + k3 h) k1 + 2k2 + 2k3 + k4 7. yi+1 = yi + h 6 Método del Disparo: Acá se explica el método del disparo para ecuaciones diferenciales de segundo grado no lineales con condiciones de borde. Dicho problema estarı́a dado por: y ′′ = f (x, y, y ′ ) a ≤ x ≤ b, y(a) = α, y(b) = β (4) donde f (x, y, y ′ ) no es lineal. Se propone un t0 como pendiente inicial, y basándonos en ella calculamos una solución y(x) (el conjunto de puntos que la conforman). Luego, verificando la diferencia entre β e y(b), calculamos otro tk , o nos quedamos con la solución encontrada. Ası́, nuestro problema queda expresado por: y ′′ = f (x, y, y ′ ) a ≤ x ≤ b, y(a) = α, y ′ (a) = tk (5) Para encontrar las soluciones y(x) podemos usar cualquiera de los tres algoritmos anteriores. Además, tenemos dos métodos de calcular nuestro nuevo tk : • Regula Falsi (Método de la secante): Necesitamos definidos no sólo t0 , sino que t0 y t1 . Ası́, el cálculo de tk se reduce a: tk = tk−1 − (y(b, tk−1 ) − β)(tk−1 − tk−2 ) y(b, tk−1 ) − y(b, tk−2 ) (6) Con Regula Falsi se debe resolver iterativamente para un tk sólo la ecuación inicial, mediante Runge-Kutta preferencialmente. Luego, si y(b, tk ) − β ≤ T OL, (T OL = tolerancia, error máximo deseado para la función en el borde b), entonces nos quedamos con esa solución. Si no, calculamos un nuevo tk , y calculamos nuevamente y(x) para nuestro nuevo valor de t. 2 • Método de Newton: Es más poderoso que Regula Falsi. El cálculo de tk se hace de la forma: tk = tk−1 − y(b, tk−1 ) − β dy (b, tk−1 ) dt (7) Ahora, para calcular la derivada del denominador, debemos recurrir a la transformación z = dy (x, t), con lo cual tendremos que resolver la ecuación: dt z ′′ = ∂f ∂f z + ′ z′ ∂y ∂y a ≤ x ≤ b, z(a) = 0, z ′ (a) = 1 (8) Ahora, para calcular y(x) debemos resolver la ecuación (5) y (8), ambas al mismo tiempo, para poder calcular tk en caso de que debamos hacerlo, y para calcular y(x) en la iteración presente. 2. EDPs La resolución de EDPs se hace construyendo una malla en el dominio en el que se define la función a encontrar. Los intersecciones de la malla se nombran con la numeración X(i, j), recorriendo con i el eje de las abscisas y con j el de las ordenadas. Además, tenemos el problema definido de la siguiente forma: Ω = {a ≤ x ≤ b, c ≤ y ≤ d} f (x, y, ux , uy , uxx , uyy ) = 0 u(a, y) = g(x, y) u(b, y) = h(x, y) u(x, c) = i(x, y) u(x, d) = j(x, y) (9) Para el problema (9) debemos entonces definir una malla a usar. Quedarı́a algo como la figura 1. y j −→ 1 b b b b b b b b b 0 0 1 2 x i −→ Figura 1: Malla de 9 nodos para Ω = {1 ≤ x ≤ 2, 0 ≤ y ≤ 1} Ahora debemos considerar las siguientes aproximaciones para las derivadas parciales respecto de x (abscisa): 3 Xi−1,j − 2Xi,j + Xi+1,j ∂ 2u = ∂x2 (∆x)2 Xi−1,j + Xi+1,j ∂u = ∂x 2∆x (10) (11) Si las derivadas son con respecto a y (ordenada), las ecuaciones serán: ∂ 2u Xi,j−1 − 2Xi,j + Xi,j+1 = 2 ∂y (∆y)2 Xi,j−1 + Xi,j+1 ∂u = ∂y 2∆y (12) (13) Ahora, debemos usar las ecuaciones (10), (11), (12) y (13) para construir la ecuación diferencial del problema (9). Una vez hecho el reemplazo, se debe evaluar la ecuación cada uno de los puntos de la malla. Esto significa, evaluar para i x j puntos. Ası́, obtendremos i x j ecuaciones, las cuales resolveremos por el sistema: a1,1 a2,1 a3,1 .. . an,1 a1,2 a2,2 a3,2 .. . an,2 a1,3 a2,3 a3,3 .. . an,3 ... ... ... .. . a1,n a2,n a3,n .. . an,n ... X1,1 X1,2 X1,3 .. . Xn,n = C1 C2 C3 .. . Cn (14) Se resuelve el sistema planteado en (14) y se encuentran los valores de X, es decir, los valores de la función u(x, y) evaluada en cada punto X. LATEX 2ε /rtobar/jmorera/mmora 4