Vous êtes sur la page 1sur 19

Ecuaciones Diferenciales Ordinarias

Problemas de valor inicial


Campo de direcciones
Mtodos numricos para el problema de valor inicial
Mtodo de Euler
Mtodo de Heun
Mtodo de Euler modificado
Mtodo de Runge-Kutta
Problemas de valor inicial
Ecuacin diferencial
Condicin inicial
Ejemplo: modelo de poblacin de Verhulst
' = e y t f t y t t a b ( ) ( , ( )) , [ , ]
y a y ( ) =
0
' = = y t ay t by t y t y ( ) ( ) ( ) , ( )
2
0 0
Campo de direcciones
Curvas solucin de una ecuacin diferencial
Pendiente de las curvas solucin
Campo de direcciones
y y t t a b = e ( ) , [ , ]
m y t f t y t t a b = ' = e ( ) ( , ( )) , [ , ]
( , ) ( , ( , )), [ , ], [ , ] t y f t y t a b y c d e e 1
Campo de direcciones
t=a:h:b; y=c:h:d;
[tt,yy] = meshgrid(t,y);
uno = ones(size(tt));
dy = f(tt,yy);
quiver(tt,yy,uno,dy)
Campo de direcciones
0 0.5 1 1.5 2 2.5 3
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
Ecuacin Logstica
Mtodos numricos para el
P.V.I.
Problema de Valor Inicial
Discretizacin
Forma integral del problema de valor inicial
y t y t f s y s ds
t
t
( ) ( ) ( , ( )) = +
} 0
0
' = e = y t f t y t t a b y a y ( ) ( , ( )), [ , ], ( )
0
a t t t b
y y t y y t y y t
n
n n
= < < < =
= ~ ~
0 1
0 0 1 1

( ), ( ), ( )
Mtodos numricos para el
P.V.I.
Error local del mtodo iterativo
Error mximo
Convergencia
Mtodo de orden p:
e y y t
k k k
= ( )
E h max e
k
k
( ) =
limE h
h
=
0
0 ( )
E h Mh M const
p
( ) , . ~ =
Mtodo de Euler
Forma integral de la ecuacin diferencial
Aproximacin (Frmula de los rectngulos)

Paso fijo
Mtodo de Euler: para k=1,2...,n
y t y t f t y t dt
t
t
( ) ( ) ( , ( ))
1 0
0
1
= +
}
y y t t f t y
1 0 1 0 0 0
= + ( ) ( , )
y y hf t y
1 0 0 0
= + ( , )
y y hf t y
k k k k +
= +
1
( , )
Mtodo de Euler
function [t,y]=mieuler(a,b,y0,n)
h=(b-a)/n; t=a:h:b;
y=zeros(size(t)); y(1)=y0;
for k=1:n
y(k+1)=y(k)+h*f(t(k),y(k));
end
Soluciones aproximadas (Euler)
0 0.5 1 1.5 2 2.5 3
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
Ecuacin Logstica
Mtodo de Heun
Forma integral de la ecuacin diferencial
Aproximacin (Frmula de los trapecios)
Aproximacin por Euler (prediccin)

Mtodo de Heun (correcccin)
y t y t f t y t dt
t
t
( ) ( ) ( , ( ))
1 0
0
1
= +
}
f t y dt h f t y f t y
t
t
( , ) / ( ( , ) ( , ))
0
1
2
0 0 1 1 }
~ +
y y hf t y
p
1 0 0 0
= + ( , )
y y h f t y f t y
p
1 0 0 0 1 1
2 = + + / ( ( , ) ( , ))
Mtodo de Heun
function [t,y]=heun(a,b,y0,n)
h=(b-a)/n; t=a:h:b;
y=zeros(size(t)); y(1)=y0;
for k=1:n
k1=f(t(k),y(k));
ykp=y(k)+h*k1;
k2=f(t(k+1),ykp);
y(k+1)=y(k)+h/2*(k1+k2);
end
Mtodo de Euler modificado
Forma integral de la ecuacin diferencial
Aproximacin (Frmula del punto medio)
Aproximacin por Euler

Mtodo de Euler modificado
y t y t f t y t dt
t
t
( ) ( ) ( , ( ))
1 0
0
1
= +
}
f t y dt hf t h y t h
t
t
( , ) ( / , ( / ))
0
1
0 0
2 2
}
~ + +
y t h y y h f t y ( / ) / ( , )
/ 0 1 2 0 0 0
2 2 + ~ = +
y y hf t h y
1 0 0 1 2
2 = + + ( / , )
/
Mtodo de Euler modificado
function [t,y]=eulermod(a,b,y0,n)
h=(b-a)/n; t=a:h:b;
y=zeros(size(t)); y(1)=y0;
for k=1:n
yk2=y(k)+h/2*f(t(k),y(k));
y(k+1)=y(k)+h*f(t(k)+h/2,yk2));
end
Mtodo de Runge-Kutta
Forma integral de la ecuacin diferencial
Aproximacin de la integral (Regla de
Simpson)
y t y t f t y t dt
t
t
( ) ( ) ( , ( ))
1 0
0
1
= +
}
f t y dt
h
f t y f t y f t y
t
t
( , )
( ( , ) ( , ) ( , ))
/ /
0
1
6
4
0 0 1 2 1 2 1 1
}
~
+ +
Mtodo de Runge-Kutta (cont.)
Estimaciones previas
Aplicacin de la frmula
y y h k k k k
1 0 1 2 3 4
6 2 2 = + + + + / ( )
k f t y
k f t h y h k
k f t h y h k
k f t h y hk
1 0 0
2 0 0 1
3 0 0 2
4 0 0 3
2 2
2 2
=
= + +
= + +
= + +
( , )
( / , / )
( / , / )
( , )
Mtodo de Runge-Kutta
function [t,y]=rungekut(a,b,y0,n)
h=(b-a)/n; t=a:h:b;
y=zeros(size(t)); y(1)=y0;
for k=1:n
k1=f(t(k),y(k)); tk2=t(k)+h/2;
k2=f(tk2,y(k)+h/2*k1);
k3=f(tk2,y(k)+h/2*k2);
k4=f(t(k+1),y(k)+h*k3);
y(k+1)=y(k)+h/6*(k1+2*k2+2*k3+k4);
end
Comparacin de mtodos
Mtodo Orden del
error
Evaluaciones
funcionales
Euler h 1
Heun h
2
2
Euler
modificado
h
2
2
Runge-Kutta h
4
4

Vous aimerez peut-être aussi