【发布时间】:2019-11-20 20:19:22
【问题描述】:
它说 diff 函数位置 1 的索引必须是正整数或逻辑值,所以为什么会出现此错误?我正在尝试在 MATLAB 中实现基本的欧拉方法
y=zeros(1,6);
h=0;
x(1)= 0;
y(1)= 0;
i=1;
diff(y,x)= x+y
while h<=1
y(i+1)=y(i) + h*f(x(i))
h=h+0.2;
i=i+1;
end
编辑:将其更改为下面的代码,但它仍然在 y(i+1)= 行中引发相同的错误...
y=zeros(1,6);
x=zeros(1,6);
h=0;
i=1;
g=x+y;
while h<=1
y(i+1)=y(i) + h*g(x(i),y(i));
h=h+0.2;
i=i+1;
end
【问题讨论】:
-
这看起来不像一个合适的 MATLAB 程序。
x是什么?y?f?diff是什么?你想定义它吗? -
我试图写 dy/dx 等于 x+y 但我认为它不起作用,所以我现在将其更改为随机变量。我稍微更改了代码,但我仍然收到相同的错误,但现在以 y(i+1) 开头的行。我已经编辑了帖子以显示新代码。
-
您认为
f和g是函数吗?他们不是。除非您将它们定义为函数,否则它们是变量,x(i)是该变量(数组)的索引。