📄 ex1-3_linearsimex1.m
字号:
function LinearSimEx1
% Compare rectangular, trapezoidal, and fourth order Runge Kutta integration.
% Integrate xdot = cos(t).
tf = 1;
TArray = [0.1 0.05 0.025];
for i = 1 : length(TArray)
T = TArray(i);
% Rectangular integration
j = 1;
xRect(j) = 0;
for t = 0 : T : tf - T + T/10
j = j + 1;
xRect(j) = xRect(j-1) + cos(t) * T;
end
% Trapezoidal integration
j = 1;
xTrap(j) = 0;
for t = 0 : T : tf - T + T/10
j = j + 1;
xTrap(j) = xTrap(j-1) + (cos(t) + cos(t+T)) * T / 2;
end
% Fourth order Runge Kutta integration
j = 1;
xRK(j) = 0;
for t = 0 : T : tf - T + T/10
t1 = t + T/2;
d1 = cos(t);
d2 = cos(t1);
d3 = cos(t1);
d4 = cos(t+T);
j = j + 1;
xRK(j) = xRK(j-1) + (d1 + 2 * d2 + 2 * d3 + d4) * T / 6;
end
errRect = 100 * abs(xRect(end) - sin(tf)) / sin(tf);
errTrap = 100 * abs(xTrap(end) - sin(tf)) / sin(tf);
errRK = 100 * abs(xRK(end) - sin(tf)) / sin(tf);
disp(['T = ', num2str(T), ': ', num2str(errRect), ', ', num2str(errTrap), ', ', num2str(errRK)]);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -