You are on page 1of 5

Informe de Laboratorio N°02-01

Del alumno

:

Helbert Justo Luque Zevallos

Al profesor

:

Angel Sangiacomo

Asunto

:

Método de Runge Kutta de orden 4

Fecha

:

09-09-2015

Tengo a bien informar a usted sobre la práctica en el laboratorio sobre el
método de Runge Kutta de orden 4 .
¿Qué es?
Es un algoritmo que implementa el método de Runge Kutta de orden 4 para la
solución de una E.D.O. con valor inicial.
¿Cómo es?
Definiendo un problema de valor inicial como:

Entonces el método RK4 para este problema está dado por la siguiente
ecuación:

Donde

Así, el siguiente valor (yn+1) es determinado por el presente valor (yn) más el
producto del tamaño del intervalo (h) por una pendiente estimada. La pendiente
es un promedio ponderado de pendientes, donde
es la pendiente al principio
del intervalo,
es la pendiente en el punto medio del intervalo, usando
para
determinar el valor de y en el punto
usando el método de Euler.
es otra
vez la pendiente del punto medio, pero ahora usando
para determinar el
valor dey;
es la pendiente al final del intervalo, con el valor de y determinado
por . Promediando las cuatro pendientes, se le asigna mayor peso a las
pendientes en el punto medio:

Esta forma del método de Runge-Kutta, es un método de cuarto orden lo cual
significa que el error por paso es del orden de
total acumulado tiene el orden

, mientras que el error

. Por lo tanto, la convergencia del método

es del orden de
, razón por la cual es usado en los métodos
computacionales, mientras sean mononúcleo ya que es un método que es muy
costoso al paralelizarlo, por lo que se prefieren otros.

¿Qué hace?
Obtiene una aproximación al problema de valor inicial bien planteado.
a≤t ≤b

∂y
=f ( t , y )
∂t
y 0=a
k 1=h∗f ( t i , y i )
1
1
k 2=h∗f t i + ∗h , y i + ∗k
2
2 1

)

1
1
k 3 =h∗f t i + ∗h , yi + ∗k
2
2 2

)

(
(

k 4=h∗f ( t i +h , y i+ k 3 )
k
2∗(¿ ¿ 2+k 3 )+k 4
k 1 +¿
1
y i+1= y i + ¿
6

Variables:
fu: Función f(t,y) en formato texto debe contener variables “t” y “y”
vi: Valor de Valor Inicial
a: Valor de a
b: Valor de b
n: Numero de iteraciones

h: Tamaño de paso
ti: Valor Inicial de la variable t
k1: contiene la primera parte
k2: contiene la segunda parte
k3: contiene la tercera parte
k4: contiene la cuarta parte
yii: Valores de la variable y obtenido por el método de Runge Kutta 04

Algoritmo
function f=f(z,t,y)
f=eval(z);
z : función en formato texto debe contener variables “t” y “y”
mrungekutta04.m
clc;
disp(' METODO DE RUNGE KUTTA 04 ');
fu=input('ingrese funcion f(t,y) = ');
vi=input('ingrese Valor de Valor Inicial = ');
a=input('ingrese Valor de A = ');
b=input('ingrese Valor de B = ');
n=input('ingrese iteraciones = ');
h=(b-a)/n;
disp('h=');
disp(h);
ti=a;
yii=vi;
%--------------------hold off;
xlabel('Pasos')
ylabel('Valor aproximado')
%--------------------plot(ti,yii,'+');
disp(' ti
y(ti)
');
for i=1:n+1
fprintf ('\n%5.5f
%5.5f
',ti,yii);
k1=h*f(fu,ti,yii);
k2=h*f(fu,ti+h/2,yii+k1/2);
k3=h*f(fu,ti+h/2,yii+k2/2);
k4=h*f(fu,ti+h,yii+k3);
yii=yii+1/6*(k1+2*(k2+k3)+k4);
ti=ti+h;
%--------------------hold on;
plot(ti,yii,'+');
%--------------------end
%--------------------hold on;
legend('Metodo de Runge Kutta 04');
%--------------------disp('');

METODO DE RUNGE KUTTA 04
ingrese funcion f(t,y) = 'y+t'
ingrese Valor de Valor Inicial = 0
ingrese Valor de A = 0
ingrese Valor de B = 1
ingrese iteraciones = 10
h=
0.100000000000000
ti
y(ti)
0.00000
0.10000
0.20000
0.30000
0.40000
0.50000
0.60000
0.70000
0.80000
0.90000
1.00000

0.00000
0.00517
0.02140
0.04986
0.09182
0.14872
0.22212
0.31375
0.42554
0.55960
0.71828