如何使用带有附加参数的optimize.minimize函数?

时间:2018-09-05 19:05:41

标签: python-3.x optimization scipy

这只是我做的测试功能。给定一个列表,如果我可以向列表中添加一个值,那么哪个值可以最大程度地减少列表的差异?

from scipy import optimize

def var_func(x,observations):
    path_var=variance([x]+observations)
    return path_var


observations=[15,24,46,23,54]
var_func_bet=optimize.minimize(var_func,100,args=(observations))

我成功地使用了optimize.minimize成功实现单变量函数,但是在这里它不起作用。

尝试上面的代码给了我错误:

TypeError: can't convert type 'ndarray' to numerator/denominator

1 个答案:

答案 0 :(得分:0)

使用numpy.var来计算方差,并确保将参数作为元组传递(请参见hpaulj的注释):

from scipy.optimize import minimize
import numpy as np

def var_func(x,observations):
    return np.var([x]+observations)


observations = [15,24,46,23,54]
var_func_bet = minimize(var_func, 100, args=(observations,))