【发布时间】:2018-04-16 15:04:17
【问题描述】:
我正在尝试使用 matlab 实现正向 Euler 方法,但不明白我遇到的错误。这是我写的:
function y = ForwardEulerMethod(f,y0,T,N)
h=T/N;
t=zeros(N+1,1);
for i=0:N
t(i)=i.*h; %line 5
end
y=zeros(N+1,1);
y(0)=y0;
for i=1:N
y(i)=y(i-1)+h.*f(t(i-1),y(i-1));
end
end
我的错误在于第 5 行,它说:“下标索引必须是真正的正整数或逻辑。”我熟悉这条规则,但看不出我是如何打破它的。我只是想用一个数值替换 t 中每个位置的零。我错过了什么?
【问题讨论】:
-
当 i==1 y(i-1)=0。你应该从 1=2 开始循环
-
错误很清楚,如果不够清楚,您必须阅读它并使用调试器。还可以使用“出错时停止”选项,它会在出错时自动中断。
标签: matlab