Está en la página 1de 4

Informe de Laboratorio N02-02

Del alumno

Helbert Justo Luque Zevallos

Al profesor

Angel Sangiacomo

Asunto

Mtodo de AdamsBashForth de 3 pasos de RK4

Fecha

09-09-2015

Tengo a bien informar a usted sobre la prctica en el laboratorio sobre el


mtodo de de AdamsBashForth de 3 pasos de RK4.
Qu es?
Es un algoritmo que implementa el mtodo de AdamsBashForth de 3 pasos de
RK4 para la solucin de una E.D.O. con valor inicial.
Cmo es?
Los mtodos de euler, Heun, Taylor y Runge-Kutta se llaman mtodo de un
paso porque en el clculo de cada punto slo se usa la informacin del ltimo
punto. Los mtodos multipaso utiliza la informacin de los puntos previos, a
saber, yi, yi-1,..., yi-m+1 para calcular yi+1. Por ejemplo, en un mtodo de tres pasos
para calcular yi+1 , se necesita conocer yi, yi-1, yi-2. El principio que subyace en un
mtodo multipaso es utilizar los valores previos para contruir un polinomio
interpolante que aproxime a la funcin f(t,y(t)). El nmero de valores previos
considerados para determinar el polinomio interpolante nos determina el grado
del polinomio. Por ejemplo, si se consideran tres puntos previos, el polinomio
de aproximacin es cuadrtico; si se usan cuatro puntos previos, el polinomio
es cbico
La idea fundamental del mtodo de Adams-Bashforth de n pasos es usar un
polinomio de interpolacin de f(t,y(t)) que pasa por los n puntos: (ti,fi), (ti-1,fi1),..., (ti-n+1,fi-n+1).
Los mtodos de Adams-Bashforth(A-B) de n pasos tienen la forma general:

Qu hace?
Obtiene una aproximacin al problema de valor inicial bien planteado.
at b

y
=f ( t , y )
t

Obtener

f i , f i1 , f i2

por medio de mtodo de runge Kutta 4 (se puede utilizar

otros mtodos)
f ( t i , y i ) =f i

f ( t i1 , y i1 )=f i1

f ( t i2 , y i2 )=f i2

f ( t i+1 , y i+1 )= y i +

h
[ 23f i 16f i1 +5f i2 ]
12

Variables:
fu: Funcin 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: Tamao de paso
t: Vector con los datos obtenidos pata la variable t
RungeKutta4: Vector con los datos obtenidos por rk4
AdamsBasforth03: Vector con los datos obtenidos por AdamsBasforth de tres
pasos

Algoritmo
f=f(z,t,y): funcin en formato texto debe contener variables t y y
function f=f(z,t,y)
f=eval(z);
RungeKutta4(z,a,b,vi,n) : Funcion que devuelve un vector con los valores de Rk4
function mRungeKutta4=RungeKutta4(z,a,b,vi,n)
mRungeKutta4=[];
h=(b-a)/n;
ti=a;
yrk4=vi;
mRungeKutta4(1)=vi;
for r=2:n+1
k1=h*f(z,ti,yrk4);
k2=h*f(z,ti+h/2,yrk4+k1/2);
k3=h*f(z,ti+h/2,yrk4+k2/2);
k4=h*f(z,ti+h,yrk4+k3);
yrk4=yrk4+1/6*(k1+2*k2+2*k3+k4);
mRungeKutta4(r)=yrk4;
ti=ti+h;
end
Basforth03 (z,a,b,vi,n) : Funcion que devuelve un vector con los valores de Rk4
function mBasforth=Basforth03(z,a,b,vi,n)
mBasforth03=[];
h=(b-a)/n;
ti=a;
yBasforth03=vi;
mBasforth03=RungeKutta4(z,a,b,vi,n);
ti=ti+(3)*h;
r=4;
yBasforth03=mBasforth03 (r-1)+h/12*(23*f(z,ti-1*h,mBasforth03 (r-1))-16*f(z,ti-2*h,mBasforth03
(r-2))+5*f(z,ti-3*h,mBasforth03 (r-3)));
ti=ti+h;
mBasforth03 (r)=yBasforth03;
AdamsBashForth03.m
%------Metodos de AdamsBashForth de 3 pasos-----clc;
disp(' Metodos de AdamsBashForth de 3 pasos ');
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;
fprintf ('\n ti
yi \n ');
AdamsBasforth03=Basforth03(fu,a,b,vi,n);
for i=1:n+1
t(i)= (i-1)*h;
fprintf ('%5.5f %5.5f \n ',t(i),AdamsBasforth03(i));
end
hold off;
plot(t,AdamsBasforth03,'+');
xlabel('Pasos');
ylabel('Valor aproximado');
legend('Metodo AdamsBashForth de 3 pasos');
hold on;
disp('________________');

Metodos de AdamsBashForth de 3 pasos


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
ti
yi
0.00000 0.00000
0.10000 0.00517
0.20000 0.02140
0.30000 0.04982
0.40000 0.09182
0.50000 0.14872
0.60000 0.22212
0.70000 0.31375
0.80000 0.42554
0.90000 0.55960
1.00000 0.71828
________________