clear all;clc; a = 2; % syntelestis tou ekthetikou x0 = 1; % i arxiki synthiki % ftiaxno to dianysma me tis xronikes stigmes d = 0.1; tf = 2; T = [0:d:tf]; % ftiaxno ta dianysmata pou tha balo tis lyseis X_eul = 0*T; % se afto tha mpei i lysi me Euler X_rk4 = 0*T; % se afto tha mpei i lysi me Runge-Kutta % edo arxizei to loop tis EULER X_eul(1) = x0; for it=2:length(T) x =X_eul(it-1); X_eul(it) = x + d * Xdot(x,a); end % edo arxizei to loop tis RUNGE-KUTTA X_rk4(1) = x0; for it=2:length(T) x = X_rk4(it-1); k1 = Xdot(x,a); k2 = Xdot(x+k1*d/2,a); k3 = Xdot(x+k2*d/2,a); k4 = Xdot(x+k3*d,a); X_rk4(it) = x + d * (k1+2*k2+2*k3+k4)/6; end % i analytiki lysi Xtheor = x0*exp(a*T); % zografizo tis 3 lyseis (Euler, RK4, analytiki) figure(3) plot(T,X_eul,'b',T,X_rk4,'g',T,Xtheor,'--r')