Está en la página 1de 5

8.

Solución de Ecuaciones diferenciales

Se denomina ecuación diferencial a aquella ecuación que contiene una variable


dependiente y sus derivadas con respecto a una o más variables independientes.
Muchas de las leyes generales de la naturaleza se expresan en el lenguaje de las
ecuaciones diferenciales; abundan también las aplicaciones en ingeniería, economía,
matemáticas y en muchos otros campos de la ciencia aplicada. En este capítulo
iniciamos el tratamiento computacional de las EDO, estudiando los métodos de Euler,
los cuales son adecuados para una programación rápida debido a su sencillez; sin
embargo, a pesar de su gran estabilidad, requiere un tamaño de paso muy pequeño
para alcanzar una precisión razonable por lo cual muchas veces es inútil para
problemas prácticos.

8.1 Solución de ecuaciones diferenciales ordinarias de primer orden

Si se tiene una función y = f(x); entonces, puede calcularse su derivada dy/dx,


la cual se interpreta como la razón de cambio de y con respecto a x, esto es útil dado
que en cualquier proceso natural, las variables incluidas y sus razones de cambio se
relacionan entre sí, mediante estos símbolos matemáticos que en conjunto se
denominan ecuación diferencial.

Una ecuación diferencial ordinaria (EDO), de primer orden puede escribirse como:
dy
= f(x, y) (8.1)
dx

Su solución general debe contener una constante arbitraria c, de modo que la función
solución es:
f(x, y, c) = 0 (8.2)
Donde para cada valor de c, existe una solución particular, analíticamente dicha
constante se obtiene exigiendo que la solución de esa ecuación pase por algún punto
(x0, y0), es decir:
y(x 0 ) = y 0 (8.3)
Esto significa que la variable y vale y0, cuando la variable x vale x0.

8.2 Métodos explícitos e implícitos

Se acostumbra a llamar una formula explicita tal como la de Euler una fórmula
de tipo abierto, dado que requieren información sobre la solución en un solo punto x =
x0, a partir de la cual procede para obtener f(x) en el punto siguiente x = xn+1. Cuando
la formula requiere un valor desconocido para calcular valores de la función se les
denomina implícitas o de tipo cerrado tal es el caso del esquema modificado de Euler.
Las fórmulas de tipo cerrado conducen en general a mejores resultados si el proceso
iterativo de aproximación para el valor desconocido es eficiente y estable; por ello, se
les suele combinar con las formulas abiertas a fin de garantizar mejor exactitud. A este
tipo combinado de esquemas numéricos se les denomina predictores-correctores,
sobre ellos trataremos más adelante.

La construcción de fórmulas explicitas e implícitas se puede realizar con mayor


facilidad recurriendo a las soluciones numéricas por diferencias obtenidas previamente
para las derivadas tanto de primer como de segundo orden. Así una ecuación
diferencial ordinaria de primer orden:
dy
= f ( x , y) (8.31)
dx

Se puede solucionar aplicando una aproximación por diferencias hacia delante para
una derivada de primer orden (DNGF), la cual en su forma general está dada por:

t −1 ∆ y k
t
1 m
y'm ( x k ) = ∑
∆x t =1
( −1)
t
+ O[(∆x ) m ] (8.32)

La ecuación (8.32) puede emplearse como solución de la ecuación (8.31), en el caso


más sencillo, usando m = 1, tenemos:

dy ∆y k
= + O[(∆x )] (8.33)
dx tk ∆x

Luego, reemplazando (8.33) en (8.31) se obtiene:

∆y k
= fk = f (x k , yk ) (8.34)
∆x

A la ecuación (8.34), se le conoce como la formula recursiva de Euler que


explícitamente se escribe como:

y k +1 = y n + f k ∆x + O[(∆x ) 2 ] (8.35)

Esta fórmula es precisa solo en primer orden, ocurriendo discrepancias respecto al


valor solución verdadera conforme se incrementa ∆x. El error local o error por
intervalo de paso es proporcional a ∆x2.

Método explicito Adams-Bashforth

Este método hace uso de diferencias finitas, es decir requiere información


acerca de la solución en más de un punto. Supongamos que hemos obtenido
aproximaciones a y’ y a y en un número de puntos igualmente espaciados digamos x0,
x1, x2,….., xn., es posible emplear la integración numérica sobre la ecuación diferencial,
si establecemos los limites, desde xn hasta xn+1, entonces tendríamos:

x n +1 x n +1 x n +1

xn
y' dx = ∫
xn
f ( x , y( x ))dx ⇒ y n +1 = y n + ∫
xn
f ( x , y( x ))dx (8.36)

Si aproximamos la función f(x,y(x)) con el polinomio interpolante de orden m en la


formulación NGB para los m+1 puntos tabulados xn, xn-1, xn-2,….., xn-m. Si usamos la
notación:
f ( x k , y( x k )) = f k
Podemos usar la formula recursiva de Newton de grado m para este propósito:

m
− s x − xn
Fm ( x ) = ∑ (−1) k  ∇ k f n − k ; Con: s = (8.37)
k =0 k  ∆x

Insertando (8.37) en la ecuación (8.36) y observando que dx = ∆xds, obtenemos:

1m − s
y n +1 = y n + ∆x ∫ ∑ (−1) k  ∇ k f n − k ds
0
k =0 k  (8.38)
[
= y n + ∆x γ 0 f n + γ 1 ∇f n −1 + γ 2 ∇ 2 f n − 2 + ....... + γ m ∇ m f n − m ]
Dónde:
1 − s 
γ k = (−1) k ∫  ds
 
0 k

A partir de la definición de función binomial podemos calcular fácilmente los γk, los
primeros valores calculados son:

1 5 3 251
γ 0 = 1, γ 1 = , γ2 = , γ3 = , γ4 =
2 12 8 720

La fórmula (8.38) se conoce como el método de Adams-Bashforth; el caso más simple,


obtenido haciendo m = 0, lleva al método de Euler. En la práctica se usa comúnmente
la formula desarrollada para m = 3; ahora, dado que en la práctica es más conveniente
desde el punto de vista computacional trabajar con ordenadas en lugar de diferencias.
Reemplazando el valor de los operadores de diferencias en (8.38), tenemos:

∆x
y n +1 = y n + [55f n − 59f n −1 + 37f n − 2 − 9f n −3 ] (8.39)
24
Donde n varía desde cero hasta algún número N, que representa el total de puntos
requeridos de la ecuación diferencial.

Para usar la ecuación (8.39), debemos tener cuatro valores iniciales, estos deben
obtenerse de alguna fuente independiente; tal como, los métodos Runge-Kutta o Euler.
Debemos estar seguros que estos valores iniciales son tan precisos como sea
necesario para la precisión total requerida. La ventaja de este método es que solo
requieren una evaluación de la derivada por paso, son por consiguiente más rápidos y
requieren menos trabajo computacional.
Ejemplo:

Usando el cambio de variables y el método explicito de Adams-Bashforth,


resolver la siguiente ecuación diferencial:

d2y
y' ' = 2
= 2xy 2 − 5 y' 2
dx

Condiciones iniciales: x0 = 0.0, xf = 1.0, N = 10, y0 = 1.5, y’0 = 2.5

Los resultados computacionales obtenidos usando el método explicito de Adams-


Bashforth para una EDO de Segundo Orden son los siguientes:

SOLUCIÓN DE EDO DE 2DO ORDEN MÉTODO ADAMS BASHFORTH

CONDICIONES INICIALES

INGRESE X0,Y0,Z0
0.0 1.5 2.5
INGRESE PUNTO FINAL DEL DOMINIO
1.0
INGRESE NUMERO DE PUNTOS
10

RESULTADOS
-------------------------------------
=====================================
X Y(X) Y`(X)
=====================================
0.0000 1.500000 2.500000
0.1000 1.750000 -0.625000
0.2000 1.687500 -0.759063
0.3000 1.611594 -0.933244
0.4000 1.394224 -0.180692
0.5000 1.488654 0.607459
0.6000 1.556872 -0.015458
0.7000 1.411137 0.879047
0.8000 1.716810 -0.077219
0.9000 1.457853 1.695453
1.0000 2.001476 -2.148483
=====================================
Codificación:

La codificación que genera los resultados computacionales mostrados es la


siguiente:

PROGRAM ADAMS_BASHFORTH_2DO_ORDEN

REAL(4) X(1000),Y(1000),Z(1000)

WRITE(*,*)' SOLUCIÓN MÉTODO ADAMS BASHFORTH'


WRITE(*,*)''
WRITE(*,*)' CONDICIONES INICIALES'
WRITE(*,*)''
WRITE(*,*)' INGRESE X0,Y0,Z0'
READ(*,*)X(1),Y(1),Z(1)
WRITE(*,*)' INGRESE PUNTO FINAL DEL DOMINIO'
READ(*,*)XF
WRITE(*,*)' INGRESE NUMERO DE PUNTOS'
READ(*,*)N
H=(XF-X(1))/N
DO I=1,N+1
X(I+1)=X(I)+H
END DO
! METODO DE EULER
DO I=1,4
Z(I+1)=Z(I)+H*F(X(I),Y(I),Z(I))
Y(I+1)=Y(I)+H*Z(I)
END DO
! METODO DE ADAMS-BASHFORTH
DO I=4,N
Z(I+1)=Z(I)+(0.0416666*H)*(55.0*F(X(I),Y(I),Z(I))-59.0*F(X(I-1),Y(I-
1),Z(I-1))+37.0*F(X(I-2),Y(I-2),Z(I-2))-9.0*F(X(I-3),Y(I-3),Z(I-3)))
Y(I+1)=Y(I)+(0.0416666*H)*(55.0*Z(I)-59.0*Z(I-1)+37.0*Z(I-2)-9.0*Z(I-
3))
END DO
WRITE(*,*)' RESULTADOS'
WRITE(*,*)' -------------------------------------'
WRITE(*,*)' ====================================='
WRITE(*,*)' X Y(X) Y`(X) '
WRITE(*,*)' ====================================='
18 DO I=1,N+1
WRITE(*,20)X(I),Y(I),Z(I)
END DO
20 FORMAT(2X,F9.4,2X,F12.6,2X,F12.6)
END

FUNCTION F(X,Y,Z)
F=2*X*(Y**2)-5*Z**2
RETURN
END

También podría gustarte