Scipy optimize minimize 从Scipy.optimize最小化,其中函数有两个输入向量
我正在学习python和scipy。在我的自学中,我试图使用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
> 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)