You are on page 1of 1

clear all

clc
f=inline('t-2*y+3');
y(1)=0.5;
a=0;
b=5;
n=100;
h=(b-a)/n;
fe=inline(dsolve('Dy=t-2*y+3','y(0)=0.5'));
totalerr=0;
x(1)=a;
disp(sprintf('|-----------------------------------------------|'))
disp(sprintf('| Metode Runge Kutta 4 |'))
disp(sprintf('|-----------------------------------------------|'))
disp(sprintf('| i |x(i)| k1 | k2 | k3 | k4 | y(i)|ye(i)|error |'))
disp(sprintf('|-----------------------------------------------|'))
for i=1:n;
ye(i)=fe(x(i));
err=abs(y(i)-ye(i));
totalerr=totalerr+err;
k1=h*f(x(i),y(i));
k2=h*f(x(i)+(h/2),y(i)+(k1/2));
k3=h*f(x(i)+(h/2),y(i)+(k2/2));
k4=h*f(x(i)+h,y(i)+k3);
y(i+1)=y(i)+(k1+(2*k2)+(2*k3)+k4)/6;
disp(sprintf('|%2g|%3.2f|%6.4f|%6.4f|%6.4f|%6.4f|%7.7f|%7.7f|%7.7f |',i-1,x(i),k
1,k2,k3,k4,y(i),ye(i),err));
x(i+1)=x(i)+h;
end
disp(sprintf('|-----------------------------------------------|'))
NRE=totalerr/i;
disp(sprintf('Nilai Total Error = %10.7f', NRE))
plot (x,y);

You might also like