我想找到函数 f(x) 的局部最大值,其中 x 可以介于两个固定值之间,因为如果 x 趋于 +inf,f(x) 会趋于 +inf。我一直在尝试使用scipy.optimize.fmin_l_bfgs_b
和scipy.optimize.fmin_tnc
(来自 scipy.ref 指南)这样的算法,但我不知道如何正确设置边界。(我知道,这一定很愚蠢,但我是 Python 的菜鸟)。让我们举一个简单的例子:
>>>import scipy.optimize as opt
>>>import scipy
>>>from numpy import *
>>>def f (x): return x**(1/2.0)
>>>max_x = opt.fmin_l_bfgs_b(lambda x: -f(x), [0,0], bounds=([0,0],[9,0])) #I want x to range between 0 and 9 and fmax be 3
但是,输出很奇怪:我什么也没得到!甚至没有错误!我错过了什么?