【发布时间】:2021-05-19 05:14:29
【问题描述】:
我想使用 python 找到一个函数(几个变量)的局部最小值。 scipy.optimize.minimize 中描述的一组基于梯度的优化方法似乎是一个不错的起点。
我可以计算函数的值以及函数的梯度。事实上,当我评估函数时,我基本上是免费获得梯度的。 有没有办法利用这个属性来最小化使用 scipy.optimize.minimize 的函数调用次数?
我仅指使用基于梯度的优化的方法(例如 BFGS)。
更准确地说,如何将计算数学函数值及其梯度值的单个 python 函数插入到 scipy.optimize.minimize 中?
而不是这个:
res = minimize(fun, x0, method='BFGS', jac=grad_fun,options={'disp': True})
我想要这样的东西:
res = minimize(fun_and_grad, x0, method='BFGS', options={'disp': True})
谢谢!
【问题讨论】:
-
对不起!我认为这是重复的! stackoverflow.com/questions/37734430/… 我不知道该怎么处理这个问题。
-
副本是否回答了您的问题?然后它可以作为副本关闭。
-
是的,虽然我的问题所吸引的答案也很相关和有趣,并且没有出现在上一个问题中。
标签: python scipy scipy-optimize