使用scipy.optimize最大化目标函数

3

scipy.optimize模块提供了scipy.optimize.minimize函数,可以找到最小化目标函数的值。但是没有scipy.optimize.maximize函数。为什么?我该如何使用SciPy解决最大化问题?


4
也许这是一个愚蠢的评论,但是你不能简单地翻转目标函数的符号并最小化它吗? - Sven Harris
3
@SvenHarris 这不是愚蠢的评论。这就是这个问题的答案。 :D - Dominik Stańczak
1个回答

11
为了最大化函数f,我们将最小化-f。一个小例子是最大化正弦函数f
from scipy.optimize import minimize
import numpy as np
f = lambda x: np.sin(x)  # function to be MAXIMIZED
res = minimize(lambda x: -f(x), 0)
print('Maximum {} attained at {}'.format(-res.fun, res.x))

打印出 "最大值 1.0 在 [1.57079632] 处达到"。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接