Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Euler
m=length(y0);
A=[zeros(m-1,1) eye(m-1);f];
B=[zeros(1,m-1),g]';
x=x0;
for i=1:n
dy=eval(A)*y0+eval(B);
y=y0+h*dy;
y0=y;
x=x+h;
end
Un orden
clc
clear
x0=.13;
y0=.32;
xf=.14
h=(.14-.13)/4;
n=4;
f=inline('sin(x)-log(y)','x','y');%f(x) dependiente de y
%%
h=(xf-x0)/n;
for i=1:n
dy=f(x0,y0);%pendiente
y=y0+h*dy;%calculo de y
y0=y;
x0=x0+h;
end
y
m=length(y0);
resultE=[x0 y0(1)];
A=[zeros(m-1,1) eye(m-1);a];
B=[zeros(1,m-1),f]';
x=x0;
for i=1:n
f=eval(A)*y0+eval(B);
y=y0+h*f;
y0=y;
x=x+h;
resultE=[resultE;x y(1)];
end
resultE
................................................
x0=2;
y0=[0]';
h=0,1;
n=20;
syms x;
a=[1/x];
f=1/(1+x^2);
m=length(y0);
resultH=[x0,y0(1)];
A=[zeros(m-1,1) eye(m-1);a];
B=[zeros(1,m-1),f]';
x=x0;
for i=1:n
f0=eval(A)*y0+eval(B);
x=x+h;
p1=y0+h*f0; %predictor
f1=eval(A)*p1+eval(B);
y=y0+(h/2)*(f0+f1);
resultH=[resultH;x y(1)];
y0=y;
end
resultH
........................................................
x2=x1+h;
x3=x2+h;
x4=x3+h;
m=length(y1);
A=[zeros(m-1,1) eye(m-1);f];
B=[zeros(1,m-1),g]';
for i=1:n
x=x2;
dy2=eval(A)*y2+eval(B);
x=x3;
dy3=eval(A)*y3+eval(B);
x=x4;
dy4=eval(A)*y4+eval(B);
p=y1+(4/3)*h*(2*dy2-dy3+2*dy4);
x=x+h;
dy5=eval(A)*p+eval(B);
y=y3+(h/3)*(dy3+4*dy4+dy5);
y1=y2;
y2=y3;
y3=y4;
y4=y;
x2=x3;
x3=x4;
x4=x;
end
.................................................................
x2=x1+h;
x3=x2+h;
x4=x3+h;
m=length(y1);
A=[zeros(m-1,1) eye(m-1);f];
B=[zeros(1,m-1),g]';
for i=1:n
x=x2;
dy2=eval(A)*y2+eval(B);
x=x3;
dy3=eval(A)*y3+eval(B);
x=x4;
dy4=eval(A)*y4+eval(B);
p=y1+(4/3)*h*(2*dy2-dy3+2*dy4);
if i>1
mod=p+(28/29)*(y4-p0);
else mod=p;
end
x=x+h;
dy5=eval(A)*mod+eval(B);
y=y3+(h/3)*(dy3+4*dy4+dy5);
y1=y2;
y2=y3;
y3=y4;
y4=y;
x2=x3;
x3=x4;
x4=x;
p0=p;
end
.........................................................
x2=x1+h;
x3=x2+h;
x4=x3+h;
m=length(y1);
A=[zeros(m-1,1) eye(m-1);f];
B=[zeros(1,m-1),g]';
for i=1:n
x=x2;
dy2=eval(A)*y2+eval(B);
x=x3;
dy3=eval(A)*y3+eval(B);
x=x4;
dy4=eval(A)*y4+eval(B);
p=y1+(4/3)*h*(2*dy2-dy3+2*dy4);
x=x4+h;
dy5=eval(A)*p+eval(B);
y=(9*y4-y2)/8+(3/8)*h*(-dy3+2*dy4+dy5);
y1=y2;
y2=y3;
y3=y4;
y4=y;
x2=x3;
x3=x4;
x4=x;
end
.......................................................
x2=x1+h;
x3=x2+h;
x4=x3+h;
m=length(y1);
A=[zeros(m-1,1) eye(m-1);f];
B=[zeros(1,m-1),g]';
for i=1:n
x=x2;
dy2=eval(A)*y2+eval(B);
x=x3;
dy3=eval(A)*y3+eval(B);
x=x4;
dy4=eval(A)*y4+eval(B);
p=y1+(4/3)*h*(2*dy2-dy3+2*dy4);
if i>1
mod=p+(112/121)*(y4-p0);
else mod=p;
end
x=x4+h;
dy5=eval(A)*mod+eval(B);
y=(9*y4-y2)/8+(3/8)*h*(-dy3+2*dy4+dy5);
y1=y2;
y2=y3;
y3=y4;
y4=y;
x2=x3;
x3=x4;
x4=x;
p0=p;
end
.....................................................................
un orden
m=length(y0);
resultRK=[x0,y0(1)];
A=[zeros(m-1,1) eye(m-1);a];
B=[zeros(1,m-1),f]';
x=x0;
for i=1:n
f0=eval(A)*y0+eval(B); %f0: es la pendiente en el inicio del intervalo
x=x+h/2;
y1=y0+(h/2)*f0;
f1=eval(A)*y1+eval(B); %f1: es la pendiente en el medio del intervalo
usando f0 para hallar
y2=y0+(h/2)*f1;
f2=eval(A)*y2+eval(B); %f2: es la pendiente en el medio del intervalo
usando f1 para hallar
x=x+h/2;
y3=y0+h*f2;
f3=eval(A)*y3+eval(B); %f3: es la pendiente en al final del intervalo
usando f2 para hallar
y=y0+h*(f0+2*f1+2*f2+f3)/6;
resultRK=[resultRK;x y(1)];
y0=y;
end
resultRK