You are on page 1of 7

Universidad Nacional del Litoral

TOPICOS DE CALCULO NUMERICO

METODOS DE UN PASO PARA PROBLEMAS DE VALORES INICIALES


EN SISTEMAS DE ECUACIONES DIFERENCIALES ORDINARIAS

CARLOS-ENRIQUE NEUMAN MEIRA

Indice
1. Introduccion. 1
1.1. El problema test. 2
1.2. Ecuaciones diferenciales de orden superior 2
1.3. Como se obtiene una solucion aproximada del IVP (1)? 3
2. Metodos de Euler y de Euler implcito. 3
3. Metodos de Runge-Kutta explcitos e implcitos. 4
4. Metodos de extrapolacion. 5
5. Metodos adaptativos. 6
5.1. El metodo de Runge-Kutta-Fehlberg 6
6. Metodo de Zadunaisky. 6
Referencias 7

1. Introduccion.
El objetivo de este texto es resumir las secciones 5.2 (pag. 256), 5.4 (pag. 272),
5.5 (pag. 282), 5.8 (pag. 307) y 5.9 (pag. 313) del libro de Burden y Faires [3, 4]: 5.2
Metodos de Euler, 5.4 Metodos de Runge-Kutta, 5.5 Control del error y el metodo
de Runge-Kutta-Fehlberg, 5.8 Metodos de extrapolacion, 5.9 Ecuaciones de orden
superior y sistemas de ecuaciones diferenciales. El captulo de ODE del libro de
Atkinson [1] es una referencia de muy buena calidad en este tema.

El problema de valores iniciales (IVP) para sistemas de ecuaciones diferenciales


ordinarias (ODE) de primer orden definido en el dominio D Rn+1 es
 0
y = f (x, y) x R, y, f Rn , (x, y) D Rn+1
(1)
y(x0 ) = Y0 (x0 , Y0 ) D
Si f es suficientemente regular entonces vamos a aceptar que existe y es unica la
solucion Y (x) de (1), (i.e. Y 0 (x) = f (x, Y (x)), Y (x0 ) = Y0 ), y, ademas, el IVP es
estable (para la existencia, unicidad y estabilidad, ver Birkhoff y Rota[2]). Que el
IVP sea estable, o bien puesto, significa que las soluciones de sistemas perturbados

Date: 31 de agosto de 2011.


1
2 CARLOS-ENRIQUE NEUMAN MEIRA

respecto de (1), tanto en la ecuacion diferencial como en la condicion inicial, no se


apartan demasiado de la solucion de (1).
Nota: en una primera lectura puede pensarse que la dimension del problema (1) es
n = 1 (problema escalar).

1.1. El problema test. Por el teorema de Taylor en n + 1 variables aplicado al


problema (1)

f f
y0 = f (x, y) = f (x0 , Y0 ) + (x0 , Y0 )(x x0 ) + (x0 , Y0 )(y y0 ) + hot (2)
x y
f f f
' (x0 , Y0 )y + f (x0 , Y0 ) + (x0 , Y0 )(x x0 ) (x0 , Y0 )y0 (3)
y x y
f
= (x0 , Y0 )y + g(x) (4)
y

donde fy (x0 , Y0 ) es la matriz jacobiana (constante) de derivadas parciales de las


componentes de f respecto de las componentes de y evaluadas en (x0 , Y0 ). Entonces,
cerca de (x0 , Y0 ) el problema resulta lineal con matriz A = f y (x0 , Y0 ) y perturbacion
g(x). Por esto para estudiar las propiedades de cada metodo de integracion en
cuestion, de las soluciones de (1) y en particular la estabilidad, se utiliza el problema
test


1
0 ..
y = y donde = diag(1 , . . . , n ) =



.


n
(5)

1
.
y(x0 ) = ..




1

cuya solucion analtica es


x
1 e 1
Y (x) = ex .. = ...
. (6)

1 en x

1.2. Ecuaciones diferenciales de orden superior. El IVP para una ODE de


orden n explcita es

y (n) = f (x, y, y 0 , . . . , y (n1) )



(7)
y(x0 ) = Y0 , y 0 (x0 ) = Y00 , . . . , y (n1) (x0 ) = Y0n1

Se lo puede convertir a un sistema de primer orden (que son los que efectivamente
estudiaremos) mediante el cambio de variables

y1 = y, y2 = y 0 , . . . , yn = y (n1) (8)
TOPICOS DE CALCULO NUMERICO 3

Entonces el sistema de primer orden equivalente a (7) queda


0
y1 = y2
y20 = y3




..



.



yn0 = f (x, y1 , . . . , yn )



(9)
y1 Y0



Y00

y2



(x0 ) =

..


..
. .




yn Y0n1

Nota: el IVP para una ODE de orden n implcita F (x, y, y 0 , . . . , y (n1) , y (n) ) = 0
con las mismas condiciones iniciales necesita un estudio mas detallado caso a caso.

1.3. Como se obtiene una solucion aproximada del IVP (1)? Veamoslo
con un ejemplo
Ejemplo: Consideremos el problema test (5) con n = 2, 1 = 2, 2 = 41 , cuya
 2x 
e
solucion es Y (x) = 1 .
e 4 x
Los pasos son
1. Programar una funcion de Matlab con la funcion f :
function dy=mif(x,y)
dy=diag([-2 -1/4])*y;
end

2. Utilizar la funcion (de Matlab) ode45 (ver [6] y help ode45):


[XX,YY]=ode45(@mif,[0,10],[1;1]);

3. Dibujar las soluciones aproximadas producidas por la funcion ode45:


figure; h1=plot(XX,YY);legend(h1);

4. Dibujar los errores:


figure; h2=plot(XX,YY-[exp(-2*XX) exp(-XX/4)]);legend(h2);

5. (opcional) Dibujar la trayectoria en el espacio de fases:


figure; h3=plot(YY(:,1),YY(:,2));hold;plot(1,1,*k);

2. Metodos de Euler y de Euler implcito.


Cuando en el problema (1) aproximamos la derivada resulta
y(x + h) y(x)
' f (x, y) (10)
h
lo que conduce a
yn+1 = yn + hf (xn , yn ), n0 (Euler) (11)
4 CARLOS-ENRIQUE NEUMAN MEIRA

el metodo de Euler, por Leonhard Euler (17071783). Si, en cambio, la aproximamos


as
y(x) y(x h)
' f (x, y) (12)
h
entonces resulta
yn+1 = yn + hf (xn+1 , yn+1 ), n0 (Backward Euler) (13)
Los dos metodos tienen orden 1, i.e. el error se puede escribir
Y (x) yh (x) = D(x)h + O(h2 ) (14)
donde D(x) es la solucion de un IVP (ver Atkinson [1, pag. 352 y 356]).
Nota: son generalizaciones de los metodos L(h) y R(h) para integrales numericas.
Otra: Las aproximaciones por el metodo de Euler convergen a la solucion exacta
cuando h 0 (ver Birkhoff y Rota [2]).
Cuando estos dos metodos se utilizan para el problema test (5) resulta (con n = 1
para simplificar el analisis)
yn+1 = (1 + h)yn (15)
y
1
yn+1 = yn (16)
1 h
respectivamente. Es facil observar en (15) que el metodo va a ser estable cuando
|1 + h| < 1 (un crculo en el semiplano izquierdo del plano complejo) y en (16)
1
que la region de estabilidad esta definida por | 1h | < 1 (el semiplano izquierdo
del plano complejo).

3. Metodos de Runge-Kutta explcitos e implcitos.


Los metodos de un paso de Runge-Kutta pueden definirse as
m
X
yn+1 = yn + h i ki (17)
i=1

donde
m
X
k1 = f (xn + 1 h, yn + 1,j hkj ) (18)
j=1
..
. (19)
m
X
km = f (xn + m h, yn + m,j hkj ) (20)
j=1

donde hay que especificar m y los s, s y s.


Nota: En realidad los metodos desarrollados en 1901 por Karl Runge (18561927)
y su alumno Martin Kutta (18671944) son explcitos (i,j = 0(j i)) y con n 4,
pero en 1945 mi primo John von Neumann (19031957) invento las computado-
ras, y ahora podemos utilizar metodos de Runge-Kutta que demandan mucho del
Calculo Cientfico.
En lo que resta de esta seccion solamente vamos a considerar el metodo clasico de
Runge-Kutta que generaliza el metodo de Simpson S(h). Para abreviar lo definimos
con un script de Matlab:
TOPICOS DE CALCULO NUMERICO 5

% MIRK Metodo de Runge-Kutta clasico


x0=0;x=x0;XX=x0;
xf=10;
h=0.01;hs2=h/2;
pasos=(xf-x0)/h;
Y0=[1;1];y=Y0;YY=Y0;
for i=1:pasos,
k1=mif(x,y);
k2=mif(x+hs2,y+hs2*k1);
k3=mif(x+hs2,y+hs2*k2);
k4=mif(x+h,y+h*k3);
y=y+h*(k1+2*k2+2*k3+k4)/6;YY=[YY;y];
x=x+h;XX=[XX;x];
end
En mif.m debe estar programada la funcion f . Una vez ejecutado mirk se puede
dibujar como antes:
figure; h1=plot(XX,YY);legend(h1); % solucion
figure; h2=plot(XX,YY-[exp(-2*XX) exp(-XX/4)]);legend(h2); %error
figure; h3=plot(YY(:,1),YY(:,2));hold;plot(1,1,*k); % trayectoria
(algoritmo 5.2, pag. 278 de BF [3], pag. 288 de BF [4]).
Cuando se aplica el metodo clasico de Runge-Kutta al problema test (5) con
n = 1 resulta
h2 2 h3 3 h4 4
 
yn+1 = 1 + h + + + yn (21)
2 6 24
que nos dice2 varias
2
cosas importantes.
3 3

4 4
Por un lado la zona de estabilidad sera
1 + h + h 2 + h 6 + h24 < 1 y por otro, el coeficiente de yn en (21) es el

polinomio de Taylor de la solucion exacta eh del IVP local. Tambien nos dice que
el metodo clasico de RK tiene orden 4. Por ultimo podemos conjeturar a partir de
Euler y RK que todos los metodos de RK aplicados al problema test tienen esta
forma: el correspondiente polinomio de Taylor de eh multiplicando a yn . Esto nos
deja a un (pequeno) paso de la demostracion de la convergencia de las aproxima-
ciones computacionales a la solucion exacta cuando el paso h 0 en el caso del
problema test.
Ejercicio: Demostrar la formula (21) para RK.
Ejercicio: Demostrar la convergencia de RK clasico aplicado al problema test.

El error del metodo RK clasico satisface


Y (x) yh (x) = D(x)h4 + O(h5 ) (22)
donde D(x) es solucion de un IVP (ver Atkinson [1, pag. 424]).

4. Metodos de extrapolacion.
A partir de la expresion (22) obtenemos, con paso 2h
Y (x) y2h (x) = 16D(x)h4 + O(h5 ) (23)
combinandolas para eliminar el termino que contiene a D(x) resulta
yh (x) y2h (x)
Y (x) yh (x) = + O(h5 ) (24)
15
6 CARLOS-ENRIQUE NEUMAN MEIRA

La expresion
yh (x) y2h (x)
yh (x) + (25)
15
es la extrapolacion de Richardson del metodo RK clasico, y la expresion
yh (x) y2h (x)
= O(h4 ) (26)
15
es la parte principal del termino de error o estimador de error a posteriori del RK.
Los metodos de extrapolacion de Richardson pueden emplearse en todos los casos
en que se cuenta con un desarrollo asintotico de error como por ejemplo (22).

5. Metodos adaptativos.
Cuando se cuenta con un estimador del error a posteriori es posible construir
metodos adaptativos en los que el paso h sea variable y se adapte de manera que el
error en cada subintervalo del proceso sea similar y menor que una dada tolerancia
mitol.
Para disenar un metodo adaptativo para RK clasico puede utilizarse el estima-
dor (26) y el metodo resultante es muy bueno. Sin embargo, para construir meto-
dos adaptativos suelen utilizarse otros estimadores de error basados en calcular la
diferencia entre dos metodos de integracion de distintos ordenes, preferiblemente
disenados de forma que se aprovechen lo mas posible las evaluaciones de la funcion
f en el dominio [xn , xn+1 ] Rn .
5.1. El metodo de Runge-Kutta-Fehlberg. Uno de los metodos adaptativos
mas conocidos para IVP es el de Runge-Kutta-Fehlberg, que esta programado en
la funcion ode45 de Matlab.
El metodo RKF es de 1969 (ver CSU Fullerton Mathews 1 y CSU Fullerton
Mathews 2 para detalles del metodo y un programa en Mathematica).
Utiliza dos metodos RK de cuarto y quinto orden que requieren solamente 6
evaluaciones de f y se utiliza la diferencia entre los dos resultados para decidir el
tamano de paso a partir de cada xn .

6. Metodo de Zadunaisky.
El metodo de Zadunaisky es original del matematico argentino Pedro Elas Za-
dunaisky (19172009), una referencia es su libro (Zadunaisky [7, pag. 32]).
El metodo fue originalmente disenado para el calculo con maxima exactitud
posible de las orbitas de planetas y cometas (que son elipses) de modo que la inter-
polacion polinomial con unos 10 nodos es bastante buena. A partir del nodo (xn , yn )
se utiliza el metodo computacional deseado para obtener los nodos (aproximados)
(xi , yi )n+m
i=n y se calcula el polinomio p de interpolacion por los m + 1 nodos.
Se utiliza un IVP auxiliar (pseudoproblema) que tiene a p como solucion exacta
 0
y = (f (x, p) f (x, y)) + p0
(27)
y(xn ) = yn
y se le aplica el mismo metodo computacional usado antes. La solucion aproximada
de (27) es (yi )n+m
i=n y como se conoce la solucion exacta de (27) los estimadores de
error en cada nodo son ei = yi yi (i = n, . . . , n + m), de modo que la solucion
corregida es yi ei (i = n, . . . , n + m).
Nota: en realidad no se interpolan los nodos (xi , yi )n+m
i=n para obtener p sino que
R x se
n+m
interpolan los nodos (xi , f (xi , yi ))i=n para obtener el polinomio q = p0 (p = q).
TOPICOS DE CALCULO NUMERICO 7

Referencias
[1] Atkinson, K.E., An Introduction to Numerical Analysis, second edition, John
Wiley & Sons, 1989, New York. 1, 2, 3
[2] Birkhoff, G. y Rota, G.: Ordinary differential equations, fourth edition, Wiley,
1989, New York. 1, 2
[3] Burden, R.L. y Faires, J.D., Analisis Numerico, septima edicion, Thomson
Learning, 2002, Mexico. 1, 3
[4] Burden, R.L. y Faires, J.D., Numerical Analysis, ninth edition, Brooks Cole,
2011, Boston, MA. 1, 3
[5] Kincaid, D. y Cheney, W., Analisis Numerico. Las Matematicas del Calculo
Cientfico Addison-Wesley Iberoamericana, 1994, Buenos Aires.
[6] Shampine, L.F. y Reichelt, M.W.: The Matlab ODE suite Mathworks, 2002,
Natick, MA, ode suite.pdf. 2
[7] Zadunaisky, P.E.: Sistemas Dinamicos, Teoras y Metodos Numericos Compu-
tacionales, DM, FCEyN, UBA, 2009, Buenos Aires, Fascculo 5.pdf. 6
Departamento de Matematica, FIQ, UNL, Santiago del Estero 2829, 3000 Santa Fe
E-mail address: ceneuman@fiq.unl.edu.ar

You might also like