我使用迭代方法计算向量的值。在每次迭代中,向量中的值都会发生变化。经过多次迭代后,值会收敛。我不想根据迭代次数停止迭代/循环,而是希望在错误率低于特定阈值时停止。
我的矢量V
有n
个元素。 V
的元素总和始终为1.我所做的是保留V
的旧副本,然后计算新副本。然后我计算两个向量之间的差异,如E = V_new - V_old
。所有向量都是numpy
个数组。所以E
在这里保留旧值和新值之间的差异。但是在这一点上,我无法知道如何处理E
以及如何使用它来停止循环。我认为解决这个问题的一种方法是将E
的所有元素相加,然后当和的值低于阈值时停止循环,但是由于总和的结果导致零结果为零。第一次迭代,因为一些元素是负面和其他积极因素。现在我被卡住了!
编辑:我只想到使用E
的绝对值。
答案 0 :(得分:0)
不确定我是否理解,但你不能尝试:
while abs(E).max() > epsilon: