Академический Документы
Профессиональный Документы
Культура Документы
m
%Resuelve una EDO por el metodo de Euler
function [t,y]=mieuler(f,t,y1)
% [t,y]=Solucion de aplicar Euler
% y1 es el valor inicial
% t nodos de integracion en [a,b]
% y es la solucion aproximada
n=length(t);
h=diff(t);
y=zeros(n,1);
y(1)=y1;
for k=1:n-1
y(k+1)=y(k)+h(k)*feval(f,t(k),y(k));
end
end
%Archivo circuito.m
function dI=circuito(t,I)
%
dI=-1/(2.1*1.1)*I+1/2.1*exp(-0.06*pi*t)...
.*(-0.06*pi*sin(2*t-pi)+2*cos(2*t-pi));
end
En la ventana de comandos
>> [t,y1]=mieuler('circuito',0:0.2:2,1)
t=
Columns 1 through 6
0.2000
0.4000
0.6000
0.8000
1.0000
Columns 7 through 11
1.2000
1.4000
1.6000
1.8000
2.0000
y1 =
1.0000
0.7229
0.4981
0.3439
0.2674
0.2645
0.3207
0.4147
0.5212
0.6160
0.6786
function [t,y]=eulerMod(f,t,y1)
% [t,y]=Solucion de aplicar Euler modiificado
% y1 es el valor inicial
% t nodos de integracion en [a,b]
% y es la solucion aproximada
n=length(t);
h=diff(t);
y=zeros(n,1);
y(1)=y1;
for k= 1:n-1
y12=y(k)+h(k)/2*feval(f,t(k),y(k)); %Estimacion de yk+h/2
y(k+1)=y(k)+h(k)*feval(f,t(k)+h(k)/2,y12);%Estimacion de
end
>> [t,y1]=eulerMod('circuito',0:0.2:2,1)
t=
Columns 1 through 6
0.2000
0.4000
0.6000
0.8000
1.0000
Columns 7 through 11
1.2000
1.4000
1.6000
1.8000
2.0000
y1 =
1.0000
0.7457
0.5520
0.4312
0.3846
0.4031
0.4692
0.5601
0.6516
0.7219
0.7547
%Archivo heun.m
% Resuelve una EDO de primer orden por el metodo de HEUN
% Este metodo es conocido como Predictor-Corrector
function [t,y]=heun(f,t,y1)
% [t,y]=Solucion de aplicar Heun
% y1 es el valor inicial
% t nodos de integracion en [a,b]
% y es la solucion aproximada
n=length(t);
h=diff(t);
y=zeros(n,1);
y(1)=y1;
for k= 1:n-1
k1=feval(f,t(k),y(k));
yp=y(k)+h(k)*k1;
%Predictor
k2=feval(f,t(k)+h(k),yp);
y(k+1)=y(k)+h(k)/2*(k1+k2);%Corrector
end