在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)
目前没有回答
相关问题 更多 >
编程相关推荐