【发布时间】:2017-07-26 21:09:19
【问题描述】:
我正在尝试使用 Scipy 全局优化器来查找函数的全局最小值,但它没有给出全局最小值作为答案,而是停留在局部最小值中。 代码:
def f(x):
return x**2 + 10*np.sin(x)
x = np.arange(-10, 10, 0.1)
print(optimize.basinhopping(f, 3))
谁能告诉我为什么?您认为 Scipy 中哪种方法是解决全局优化的最佳方法?
【问题讨论】:
-
默认
stepsize为0.5。它没有采取足够大的步骤来逃离盆地。 -
如果您不知道局部最小值有多宽,请在优化的基础上应用模拟退火。
标签: python numpy optimization