f = @(t,y) [y(2);cos(t) - y(2) - 4*y(1)]
a = 0
b = 1
N = 5000
h = 1
y(1) = 0
y(2) = 0.1
t(1) = a
for n = 1:1:N
t(n+1) = t(n) +h
y(n+1) = y(n) + h * f(t(n),y(n));
end
plot(t,y)
我正在尝试进行euler方法集成。运行此程序时出现错误。
请注意,您的系统是二维的,因此结果数组还具有两个数组维度。本质上,您需要编写时间步以强制使用y
列表的向量条目。
y(n+1,:) = y(n,:) + h * f(t(n),y(n,:))';
仅使用一个索引就给出了包含矩阵条目数值的平面数据数组的相应条目。
您可能还必须正确初始化y
列表,
y(1,:) = [ 0; 0.1]
clear all;
f = @(t,y) [y(2);cos(t) - y(2) - 4*y(1)];
a = 0;
b = 1;
N = 5000 ;
h = (b-a)/(N+1);
y(1,:) = [0; 0.1];
t(1) = a ;
for n = 1:1:N
t(n+1) = t(n) +h;
y(n+1,:) = y(n,:) + h * f(t(n),y(n,:))';
end
plot(t,y);