我想在我的 matlab 代码中添加一个 While-循环,以便在迭代足够好时它会停止。具有某种宽容,例如。1e-6.
这是我现在的代码。所以我需要添加某种停止标准,我已经尝试了几次,但它不起作用......我感谢您的帮助!
x(1)=1;
iterations = 0;
tolerance = 1e-6;
%在这里应该是...
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;
好吧,您需要以某种方式计算您在每次迭代中所做的"错误"。在您的情况下,它将是这样的:
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
但您可能需要以另一种方式计算此错误。
只要误差低于容差,循环就会退出。