【发布时间】:2015-07-12 06:27:57
【问题描述】:
scipy.optimize.minimize 函数基本上实现了与 MATLAB 的“fminunc”函数等效的函数,用于查找函数的局部最小值。
在 scipy 中,梯度函数和 Hessian 函数是分开的。
res = minimize(rosen, x0, method='Newton-CG',
... jac=rosen_der, hess=rosen_hess,
... options={'xtol': 1e-30, 'disp': True})
但是,我有一个函数,其 Hessian 和梯度共享相当多的计算,我想一起计算 Hessian 和梯度,以提高效率。在 fminunc 中,目标函数可以写成返回多个值,即:
function [ q, grad, Hessian ] = rosen(x)
有没有一种好方法可以将一个函数传递给 scipy.optimize.minimize 以一起计算这些元素?
【问题讨论】:
标签: python matlab numpy optimization scipy