Documentos de Académico
Documentos de Profesional
Documentos de Cultura
y (t 0 ) = y 0
Y es sumamente til para casos en los que la solucin no puede hallarse por los mtodos
convencionales (como separacin de variables). Hay variaciones en el mtodo de RungeKutta de cuarto orden pero el ms utilizado es el mtodo en el cual se elige un tamao de
paso h y un nmero mximo de iteraciones n tal que
y 0 = y (t 0 )
k1 = h f (t i , y i )
k
h
k 2 = h f t i + , yi + 1
2
2
k
h
k 3 = h f t i + , yi + 2
2
2
k 4 = h f (t i + h, y i + k 3 )
Y se realiza la iteracin
y i +1 = y i +
1
(k1 + 2k 2 + 2k 3 + k 4 )
6
Para i = 0,, n-1. La solucin se da a lo largo del intervalo (to, to+ hn).
Anlisis Numrico
Carlos Armando De Castro Payares
El algoritmo para el mtodo de Runge-Kutta de cuarto orden en seudo cdigo es el
siguiente:
INICIO
INPUT: Nmero de iteraciones n (o tamao de paso h), punto inicial del intervalo a
(punto final del intervalo b), condicin inicial y (t0) = y0.
n = (b a ) / h;
t = t0 ;
y = y0 ;
OUTPUT
(t , y )
PARA i = 1,, n;
k1 = h f (t , y );
k
h
k 2 = h f t + , y + 1 ;
2
2
k
h
k 3 = h f t + , y + 2 ;
2
2
k 4 = h f (t + h, y + k 3 );
y = y + (k1 + 2k 2 + 2k 3 + k 4 );
t = t + i h;
OUTPUT
(t , y )
FIN PARA
FIN
Anlisis Numrico
Carlos Armando De Castro Payares
Un software apropiado y muy til adems de fcil de programar es Matlab, con el cual
resolveremos el siguiente ejemplo:
dy (t )
= sin( 4t ),
dt
y (1) = 0
Solucin: Es claro que la ecuacin diferencial dada no tiene una solucin analtica exacta
ya que al realizar separacin de variables nos encontramos con una funcin que no posee
antiderivada. Entonces tenemos que
f (t , y ) =
sin( 4t )
t
Anlisis Numrico
Carlos Armando De Castro Payares
La grfica del resultado que entrega el programa es la siguiente:
Interpolacin por "splines" de orden 3.
0
-0.05
-0.1
-0.15
-0.2
-0.25
-0.3
-0.35
10
20
30
40
50
60
70
80
90
100
con el mtodo de Runge-Kutta de 4 orden con h = 0.5 en el intervalo [0, 20] y comparar
con la solucin exacta
1 e 0.2t
y (t ) = 350
7 5e 0.2t
Solucin: Para hallar la solucin numrica por el mtodo de Runge-Kutta de cuarto
orden se elabor un algoritmo en Matlab que grafica la solucin numrica en rojo
marcando los puntos con asteriscos y unindolos por medio de rectas y en la misma
pantalla grafica la solucin exacta en azul. El programa tambin entrega una tabla que
tiene el valor de t en la primera columna, el valor y* de la aproximacin hallada
numricamente en la segunda columna, el valor de y exacto en la tercera columna, y
el error absoluto | y-y*|. Todo lo anterior en el intervalo [0, 20].
Anlisis Numrico
Carlos Armando De Castro Payares
El algoritmo en lenguaje Matlab es el siguiente:
function [A]=RungeKutta4_1
a=0;
b=20;
t=0;
y=0;
h=0.5;
n=(b-a)/h;
X(1,1)=t;
X(2,1)=y;
for i=1:n;
k1=h*0.01*(70-y)*(50-y);
k2=h*0.01*(70-(y+k1/2))*(50-(y+k1/2));
k3=h*0.01*(70-(y+k2/2))*(50-(y+k2/2));
k4=h*0.01*(70-(y+k3))*(50-(y+k3));
y=y+(k1+2*k2+2*k3+k4)/6;
t=a+i*h;
X(1,i+1)=t;
X(2,i+1)=y;
end
n=length(X(1,:));
for i=1:n-1;
m(i)=(X(2,i+1)-X(2,i))/(X(1,i+1)-X(1,i));
b(i)=X(2,i);
x=X(1,i):0.01:X(1,i+1);
y=m(i)*(x-X(1,i))+b(i);
hold on;
plot(x,y,'r');
end
for i=1:n;
hold on;
plot (X(1,i),X(2,i),'*','MarkerEdgeColor','r','LineWidth',1);
title('Interpolacin de los puntos por "splines" de orden 1.');
end
%Solucin exacta:
x=0:0.5:20;
y=350*(1-exp(-0.2*x)).*(7-5*exp(-0.2*x)).^(-1);
hold on;
plot(x,y,'b');
A(:,1)=X(1,:);
A(:,2)=X(2,:);
Anlisis Numrico
Carlos Armando De Castro Payares
A(:,3)=y;
A(:,4)=abs(A(:,3)-A(:,2));
y*
0
13.4511
21.8278
27.5216
31.6258
34.7110
37.1040
39.0058
40.5466
41.8144
42.8710
43.7610
44.5175
45.1654
45.7238
46.2079
46.6296
46.9984
47.3223
47.6076
47.8596
48.0829
48.2810
48.4572
48.6142
48.7543
48.8795
48.9915
49.0918
49.1818
49.2625
49.3350
49.4002
49.4588
49.5116
49.5591
49.6019
49.6404
y
0
13.4529
21.8296
27.5231
31.6270
34.7119
37.1048
39.0065
40.5471
41.8148
42.8714
43.7614
44.5178
45.1656
45.7240
46.2081
46.6297
46.9986
47.3224
47.6077
47.8597
48.0829
48.2811
48.4572
48.6142
48.7543
48.8795
48.9915
49.0918
49.1818
49.2625
49.3350
49.4002
49.4588
49.5116
49.5591
49.6019
49.6405
| y-y*|
0
0.0018
0.0018
0.0015
0.0012
0.0010
0.0008
0.0006
0.0005
0.0005
0.0004
0.0003
0.0003
0.0002
0.0002
0.0002
0.0002
0.0001
0.0001
0.0001
0.0001
0.0001
0.0001
0.0001
0.0001
0.0001
0.0001
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
Anlisis Numrico
Carlos Armando De Castro Payares
19.0000 49.6752 49.6752
19.5000 49.7066 49.7066
20.0000 49.7349 49.7349
0.0000
0.0000
0.0000
Puede observarse en la grfica que la aproximacin realizada por el mtodo de RungeKutta es muy cercana al valor exacto de la solucin, lo cual puede confirmarse con la
vista de los errores absolutos, siendo el mayor error del orden de 10-3 e igual a cero luego
de t =13.5, es decir, la aproximacin numrica es igual a la solucin real en esos casos.
Bibliografa:
BURDEN, Richard. Anlisis Numrico. 2a edicin. Grupo Editorial Iberoamrica.