【发布时间】:2019-08-05 20:11:23
【问题描述】:
我有一种情况,即在每次循环迭代时计算一个变量(在这种情况下为a),并在两次迭代之间的值增量足够小的地方停止。
我想知道在这种情况下找到该变量值的一般方法,而不必使用循环进行“收敛”工作。
我想知道解决方案是否是将所有内容放入方程式中,或者是否存在一些工具来解决这个问题。
a = 10
b = 10
diff = 1
while diff > .1:
old_a = a
a += b
diff = 1 - (old_a/a)
print(diff)
当前代码产生:
0.5
0.33333333333333337
0.25
0.19999999999999996
0.16666666666666663
0.1428571428571429
0.125
0.11111111111111116
0.09999999999999998
因此,需要 9 次迭代才能找到两次迭代之间a 值的相对差异小于 10%。
【问题讨论】:
-
你可以试试动量算法
-
您是特别询问您的代码,还是您的意思是更笼统的问题?
-
抱歉,不清楚:更笼统。
标签: python loops optimization convergence