Está en la página 1de 2

%%Prueba 1 - Parcial II.

%%Ejercicio1 .A.
clc
clear all
[x,y]=mieulerMejorado('funcionEjercicio',0,0.1,1,1)
[z,t]=mieuler('funcionEjercicio',0,0.1,1,1)
r=[x,y,t]
%%
%%Ejercicio1 B
[x,y]=mieuler('funcionEjercicio',0,0.1,1,1)
yex=exp(2*x);
vabs=yex-y;
r=[x,y,vabs]
%%
%%Ejercicio1 C
[x,y]=mieuler('funcionEjercicio',0,0.1,1,1)
yex=exp(2*x);
vabs=yex-y;
error=(vabs./yex)*100;
r=[x,y,vabs,error]
%%
%%Ejercicio1 D
[x,y]=mieulerMejorado('funcionEjercicio',0,0.1,2,1)
[z,t]=mieuler('funcionEjercicio',0,0.1,2,1)
r=[x,y,t]
%%
%%Ejercicio 2

%%
%%Ejercicio. 3 h=0.1
[x,y]=RK4('funcionEjercicio',1,1.4,10,1)
plot(x,y)
%%
%%Ejercicio 3 h=0.05
[x,y]=RK4('funcionEjercicio',1,1.4,5,1)
[z,t]=mieulerMejorado('funcionEjercicio',1,1.4,5,1)
r=[x,y,t]

%%
%%Ejercicio 4
[x,y]=RK4('funcionSisEcua',0,0.2,5,[1,2])
[x,y]=RK4('funcionSisEcua',0,0.2,4,[1,2])

--------------------------------------------------------------------
function f=funcionEjercicio(x,y)
%%Ejercicio1..
%f=2*y;

%%Ejercicio3
f=x^2+y^3;
end
-----------------------------------------------------------
function [x,y]=mieulerMejorado(f,a,b,N,y0)
h=(b-a)/N;
x=a:h:b;
x=x(:);
y=zeros(N+1,1);
y(1)=y0;
for n=1:N
y(n+1)=y(n)+(h*(feval(f,x(n),y(n))+feval(f,x(n+1),y(n)+h*feval(f,x(n),y(n)))))/2;
end
end
--------------------------------------------
function [x,y]=mieuler(f,a,b,N,y0)
h=(b-a)/N;
x=a:h:b;
x=x(:);
y=zeros(N+1,1);
y(1)=y0;
for n=1:N
y(n+1)=y(n)+h*feval(f,x(n),y(n));
end
end
------------------------------------------------------
function [ x,y ] = RK4(f,a,b,N,y0)
h=(b-a)/N;
x=a:h:b;
x=x(:);
y=zeros(N+1,length(y0))
y(1,:)=y0;
for k=1:N
k1=feval(f,x(k),y(k,:));
k2=feval(f,x(k)+h/2,y(k,:)+k1'*h/2);
k3=feval(f,x(k)+h/2,y(k,:)+k2'*h/2);
k4=feval(f,x(k)+h,y(k,:)+k3'*h);
y(k+1,:)=y(k,:)+(h/6)*(k1'+2*k2'+2*k3'+k4');
end
end
----------------------------------------------------------------------------

También podría gustarte