matlab 题!!!!

来源:百度知道 编辑:UC知道 时间:2024/05/16 11:40:42
x1=5.93;

Delta=0.003

x=x0:Delta:x1;

i=1;
y(i)=0.26;
while (x(i)<x1)
y(i+1)=y(i)+Delta*(-y(i)+(x(i).^2+x(i)+1)*y(i).^2);
i=i+1;
end;

plot(x,y);

??? Attempted to access x(1978); index out of bounds because numel(x)=1977.

Error in ==> Untitled1 at 16
while (x(i)<x1)

后面出现错误了
图出不来

请问怎么修改啊
X0=0

改了
plot(x,y(1:end-1))
还是不对,
??? Attempted to access x(1978); index out of bounds because numel(x)=1977.

Error in ==> Untitled1 at 16
while (x(i)<x1)

你的y比x多一个数据。
你求y是求下一个y,所以在最后一个x时,就不要再求y了。

不过也可以直接修改作图的时候
plot(x,y(1:end-1))
即可

x0是什么?
将while的条件判断改为:
i<numel(x)
与x(i)<x1等价的,因为数组x的数据是递增的.
,但后者最后一次判断时,i的数值会到1978,而数组x只有1977个,所以数组越界.

while内的i=i+1;在终止循环的时候i=1978,但是x只有1977个元素,所以越界

x的维数不对,你检查x和y的维数,他们相等才能绘图。注意你的循环过程

rt