如何强制scipy的optimize模块的函数同时取函数及其梯度

x-A*_*A-x 3 python optimization scipy

我有一个相当复杂的函数 f(x) 想要优化,并且我正在使用 Scipy 的 scipy.optimize 模块中的 fmin_bfgs 函数。它迫使我分别给出最小化函数和梯度函数 f'(x),这很遗憾,因为梯度的一些计算可以在评估函数 f(x) 时完成。

有没有办法将这两个功能结合起来?我正在考虑保存两个函数所需的中间值,但我不知道 fmin_bfgs 函数是否保证 f(x) 在 f'(x) 之前进行评估。

谢谢

Tob*_*han 5

scipy.optimize.minimize 方法有一个名为“jac”的参数。如果设置为 True,minimum 将期望可调用 f(x) 返回函数值及其导数。