我遇到了scipy.optimize.fmin_tnc
的问题。
我正在使用一个简单的函数测试优化器的标志:
f(x)=(x-2)**2+5
优化器按预期工作,除非我使用已知最小值作为初始猜测。
当我这样做时,我收到一条消息Linear search failed
。在网上看,这个错误似乎是说方程式表现不好,但我知道情况并非如此。
为什么我收到此消息?
答案 0 :(得分:1)
我不知道scipy,但根据scipy.optimize.fmin_tnc docs,该函数使用"截断牛顿算法"。 Newton's method涉及除以当前 x 值的导数,并且由于导数,导致最小值(或最大值或拐点)不能很好地解决那里是零。
然而,scipy-0.15.1具有密切相关的scipy.optimize.fmin
使用下坡单纯形算法最小化函数。
此算法仅使用函数值,而不是导数或秒 衍生物。
希望那个人能在静止点附近表现良好。