SciPy.optimize-求解器不一致?

时间:2019-10-31 09:05:08

标签: python optimization scipy nonlinear-optimization

SciPy.optimize reference的末尾有一个称为“旧版函数”的部分,其中指出scipy.optimize.broyden1之类的方法可通过上述接口提供的更新,更一致的接口访问。

但是,在测试这些接口(例如scipy.optimize.root(method ='broyden1'))时,由于存在相同的优化问题,对于相同的容差,我的计算速度降低了10倍,最终结果也有所不同。

是否有办法在scipy.optimize中实现新功能与旧功能的对等,也许是通过某些选项或者算法的差异太大了?

代码看起来像这样,尽管我不想详细介绍特定功能,因为我认为结果的差异是由于更普遍的原因造成的:

import scipy.optimize

def f(x):
    return abs(a-b)

result1 = scipy.optimize.broyden1(F=f, xin=[0.47], f_tol=1e-6)
result2 = scipy.optimize.root(fun=f, x0=[0.47],method='broyden1', tol=1e-6)

0 个答案:

没有答案