Scipy optimize minimize 从Scipy.optimize最小化,其中函数有两个输入向量

Scipy optimize minimize 从Scipy.optimize最小化,其中函数有两个输入向量,scipy-optimize-minimize,Scipy Optimize Minimize,我正在学习python和scipy。在我的自学中,我试图使用scipy.optimize最小化以下函数 > def opti_min(sr1_opt,sr3_opt): > op = np.sqrt(np.sum(sr1_opt)+np.sum(sr3_opt)) > return op opt = minimize(opti_min,strip,method = 'nelder-mead') sr1_opt是一个列表:- [6.53605555487

我正在学习python和scipy。在我的自学中,我试图使用scipy.optimize最小化以下函数

>   def opti_min(sr1_opt,sr3_opt):
>     op = np.sqrt(np.sum(sr1_opt)+np.sum(sr3_opt))
>     return op


opt = minimize(opti_min,strip,method = 'nelder-mead')
sr1_opt是一个列表:- [6.536055554877E-07, 6.668262226847675e-07, 4.935691987513913e-07, 6.422223324E-07, 7.493249219562971e-07, 7.81250000001055E-07, 8.5130291362223E-07]

sr3_opt也是一个列表:- [4.127111433753003e-06、4.419413067362789e-06、4.721714700973233e-06]

条带也是用于初始值的列表:- 条带=[0.0025,0.005]

sr1_opt值计算为(实际值-条带[0])**2和 对于列表中的每个条目,sr3_opt值计算为(实际值-条带[1])**2

因此,所需的输出是将变量“op”最小化的条带值

我得到的错误是:- TypeError:opti_min()缺少1个必需的位置参数:“sr3_opt”

我错过了什么

更重要的是,如果我希望条带的输出大于零,我应该使用哪种方法进行约束最小化?
提前感谢

您可以在页面底部的文档中看到一个具体示例,用于最小化两个参数的函数

在您的情况下,您将
opti_min
视为二维变量
strip
的函数:

values = [0.12, 0.65, ...] # whatever your values are

def opti_min(strip, values=values):
    # get your lists of edited values
    sr1_opt = [(value - strip[0])**2 for value in values]
    sr3_opt = [(value - strip[1])**2 for value in values]

    # perform your sum
    return np.sqrt(np.sum(sr1_opt)+np.sum(sr3_opt))
    
# init your initial estimate
strip0 = np.array([0.0025,0.005])

res = minimize(opti_min, strip0, method='nelder-mead')

# print result
print(res.x)