我想在我的matlab代码中添加一个While循环,以便在迭代足够好时停止。有某种宽容,例如。 1E-6。
这是我的代码。所以我需要添加一些停止标准,我已经尝试了好几次但是它不起作用...我感谢所有你的帮助!
x(1)=1;
iterations = 0;
tolerance = 1e-6;
%这应该是...... [/ p>
for i=1:N
x(i+1)=x(i);
for j=1:N
x(i+1)=F(x(i),x(i+1));
end
end
iter= iter + 1;
答案 0 :(得分:1)
好吧,不知怎的,你需要计算你在每次迭代中所做的'错误'。在你的情况下,它将是这样的:
iter = 0;
tolerance = 1e-6;
error=1;
x=F(x);
while(error>tolerance)
x2=x;
x=F(x);
error = x-x2;
iter= iter + 1;
end
注意一开始错误是如何设置为1所以我们确保它进入循环内部。我们还计算循环外的x
的第一个实例。 F(x)将是您评估的功能,可根据您的需要进行更改。
在循环内部将x
的旧值分配给x2
,然后计算新的x
并最终计算错误。在这里,我将错误计算为x-x2
,但您可能需要以另一种方式计算此错误。
只要误差低于容差,循环就会退出。