You are on page 1of 2

10/12/13 6:52 AM E:\PDN I\RK_4_vector.

1 of 2

%Metode Runge-Kutta Orde 4


clear all

dt =
t=0:dt
N=length(t)
u = zeros(N,2)
u(1,:) = [4/3 2/3]
u_eks(1,:) = u(1,:)
err(1,:) =
y0 = u(1,:)
for n = 1:N-1
k1 = dt*fungsiRK_vec(t(n),y0)
k2 = dt*fungsiRK_vec(t(n)+0.5*dt,y0+0.5*k1)
k3 = dt*fungsiRK_vec(t(n)+0.5*dt,y0+0.5*k2)
k4 = dt*fungsiRK_vec(t(n)+dt,y0+k3)
y1 = y0 + (1/6)*(k1 + 2*k2+2*k3+k4 )
%solusi RK2
u(n+1,:) = y1
y0 = y1
u_eks(n+1,1) = 2*exp(-3*t(n+1)) - exp(-39*t(n+1)) + cos(t(n+1))
u_eks(n+1,2) = -exp(-3*t(n+1)) + 2*exp(-39*t(n+1)) - cos(t
(n+1))

10/12/13 6:52 AM E:\PDN I\RK_4_vector.m

2 of 2

err(n+1,1)=abs(u(n+1,1)-u_eks(n+1,1))
%kesalahan
mutlak
%kesalahan
err(n+1,2)=abs(u(n+1,2)-u_eks(n+1,2))
mutlak
end
figure(1)
subplot(3,1,1)
size(t)
size(u(:,1))
plot(t,u(:,1),'ko',t,u_eks(:,1),'k', t,u(:,2),'ro',t,u_eks(:,2),'r')
subplot(3,1,2)
plot(t,err(:,1),'k')
subplot(3,1,3)
plot(t,err(:,2),'r')
function du = fungsiRK_vec(t,y)
u1 = y(1)
u2 = y(2)
du1 = 9*u1 +24*u2 + 5*cos(t) - sin(t)
du2 = -24*u1 - 51*u2 - 9*cos(t) + sin(t)
du = [du1 du2]

You might also like