for k = 1:klast yp = (1 - a*h)*y(k) + h*r; y(k+1) = (1 - a*h/2)*y(k) + (2*r-a*yp)*h/2; tvec(k+1) = tvec(k) + h; end
% Noi suy tìm yt tuong ung voi t
yt_interp = interp1(t,yt,tvec);
% Tính toán sai so
E = abs(y - yt_interp); % sai so tuyet doi varepsilon = E./yt_interp; % sai so tuong doi
% Hien thi ket qua
plot(t, yt, 'k'); hold on; plot(tvec, y, 'b'); plot(tvec, yt_interp, 'r'); legend('Nghiem giai tich', 'Nghiem Euler', 'Nghiem noi suy'); title('Giai phuong trình vi phan bang phuong phap Euler bien doi');
fprintf('Sai so tuyet doi tai t = 1: %f\n', E(tvec == 1));
fprintf('Sai so tuyet doi tai t = 2: %f\n', E(end)); fprintf('Sai so tuong doi tai t = 1: %f\n',varepsilon(tvec == 1)); fprintf('Sai so tuong doi tai t = 2: %f\n',varepsilon(end)); end