% 4th order Runge-Kutta method for ODE system

dt = 0.1;
dt_mid = dt/2;
t_cur = 0;
T = 4*pi;
x0 = [1,0];
x_cur = x0;
nSteps = floor(T/dt);
x_soln = zeros(nSteps+1,2);
x_soln(1,:) = x_cur;

for step = 1:nSteps

    k1 = f_RK(t_cur,        x_cur);
    k2 = f_RK(t_cur+dt_mid, x_cur+dt_mid*k1);
    k3 = f_RK(t_cur+dt_mid, x_cur+dt_mid*k2);
    k4 = f_RK(t_cur+dt,     x_cur+dt*k3);
    k = (k1 + 2*k2 + 2*k3 + k4)/6;
    x = x_cur + dt*k;
    x_cur = x;
    x_soln(step+1,:) = x_cur;
    t_cur = t_cur + dt;

end

plot(x_soln(:,1), x_soln(:,2));