Está en la página 1de 2

function ERsiskutta()

ecu1=input('Ingrese la primera ecuacion entre


comillas y en terminos de f(x,y,u):');
ecu2=input('Ingrese la segunda ecuacion entre
comillas y en terminos de F(x,y,u):');
a=input('Ingrese el limite inferior del intervalo
:');
b=input('Ingrese el limite superior del intervalo
:');
in1=input('Ingrese la condicion inicial de la
primera ecuacion diferencial:');
in2=input('Ingrese la condicion inicial de la
segunda ecuacion diferencial:');
n=input('valor de n :');
h=(b-a)/n;
t=zeros(1,n+1);
ap1=zeros(1,n+1); ap2=zeros(1,n+1);
t(1)=a;
ap1(1)=in1;
ap2(1)=in2;
for i=2:n+1
x=t(i-1); y=ap1(i-1); u=ap2(i-1); a=eval(ecu1);
ka=h*a;
x=t(i-1); y=ap1(i-1); u=ap2(i-1); a=eval(ecu2);
qa=h*a;
x=t(i-1)+(h/2);
y=ap1(i-1)+(ka/2);
u=ap2(i-1)+(qa/2); b=eval(ecu1);
kb=h*b;
x=t(i-1)+(h/2); y=ap1(i-1)+(ka/2);
u=ap2(i-1)+(qa/2); b=eval(ecu2);
qb=h*b;
x=t(i-1)+(h/2); y=ap1(i-1)+(kb/2);
u=ap2(i-1)+(qb/2); c=eval(ecu1);
kc=h*c;
x=t(i-1)+(h/2); y=ap1(i-1)+(kb/2);
u=ap2(i-1)+(qb/2); c=eval(ecu2);
qc=h*c;
x=t(i-1)+(h); y=ap1(i-1)+(kc);
u=ap2(i-1)+(qc); d=eval(ecu1);
kd=h*d;
x=t(i-1)+(h); y=ap1(i-1)+(kc);
u=ap2(i-1)+(qc); d=eval(ecu2);
qd=h*d;

f=(ka+2*kb+2*kc+kd)/6;
ap1(i)=ap1(i-1)+f;
f2=(qa+2*qb+2*qc+qd)/6;
ap2(i)=ap2(i-1)+f2;
t(i)=t(i-1)+(h);
end
for i=1:n+1
fprintf(' %.4f %.4f %.4f
\n',t(i),ap1(i),ap2(i));
end
plot(t,ap1,t,ap2);
xlabel('eje x');
ylabel('eje y');
title('Solucion numerica de la E.D.O. ');
legend('y(xi)','u(xi)',-1);

También podría gustarte