根据我对 BFGS 方法的基本理解,该算法将迭代直到梯度范数小于或等于 Python 中称为“gtol”的设定值。
但是,当使用此方法并检查输出时,将显示以下内容:
迭代次数:2 函数评估:76 梯度评估:13
“由于精度损失,不一定能达到预期误差。”
这让我很困惑。算法不应该多次迭代以达到收敛吗?它是如何通过仅迭代两次达到收敛的?在这种情况下,如果算法收敛得这么快,为什么我们可以指定最大迭代次数?
根据我对 BFGS 方法的基本理解,该算法将迭代直到梯度范数小于或等于 Python 中称为“gtol”的设定值。
但是,当使用此方法并检查输出时,将显示以下内容:
迭代次数:2 函数评估:76 梯度评估:13
“由于精度损失,不一定能达到预期误差。”
这让我很困惑。算法不应该多次迭代以达到收敛吗?它是如何通过仅迭代两次达到收敛的?在这种情况下,如果算法收敛得这么快,为什么我们可以指定最大迭代次数?