Scipy优化方法为输入参数选择nan

时间:2016-01-23 12:08:36

标签: python numpy optimization scipy

通过4个参数输入我的数学函数。参数也有界限:

a = [0,2]
b = [-1,1]
c = [eps, inf]
d = [-inf, inf]

我想最小化最终值并找到函数中的最佳参数。 在Scipy中,只有3个函数支持边界优化问题'TNC', 'SLSQP' and 'L-BFGS-B' [参考:optimizations]。

问题是当SLSQP和有时其他方法为参数选择nan时,函数的结果会转到nan获取值。它突然发生,例如,在step i-1中运行正常并返回实际值,但对于step i输入参数为nan,因此最终结果将转到nan。从那时起,输入和输出为nan,同时达到最大迭代次数!

问题出在哪里?

夏季代码在这里:

bnds = [(eps, 2.), (-1.,1.), (eps, np.inf), (-np.inf, np.inf)]
scipy.optimize.fmin_slsqp(myFunc, params, bounds=bnds)

scipy.optimize.minimize(myFunc, params, method='SLSQP', bounds=bnds)

由于这个问题没有真正的解决方案,我被迫改变了我的问题!

0 个答案:

没有答案