【发布时间】:2021-03-11 14:31:09
【问题描述】:
我正在尝试匹配最佳参数以拟合实验曲线。 为此,我希望我的求解器最小化平方残差的总和。有人知道我做错了什么吗? 谢谢!
print(len(X))
print(len(Y))
model = ConcreteModel()
model.FRAT5= Var(domain=PositiveReals , initialize =3)
model.PRICE0 = Var(domain=PositiveIntegers , initialize = 400)
model.price0_constraint = Constraint(expr = model.PRICE0 >= 51)
model.FRAT5_constraint = Constraint(expr = model.FRAT5 >= 0.05 )
residuals = [ (exp(- (-log(0.5)/(model.FRAT5 - 1 )) * (X[k]/model.PRICE0 -1) ) - Y[k] ) for k in range(len(X)) ]
model.obj = Objective(expr=sum(residuals[k]**2 for k in range(len(X))), sense=minimize)
SolverFactory('ipopt', executable='/content/ipopt').solve(model).write()
回答:
100
100
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-127-d00a8ec5b470> in <module>()
9 model.FRAT5_constraint = Constraint(expr = model.FRAT5 >= 0.05 )
10
---> 11 residuals = [ (exp(- (-log(0.5)/(model.FRAT5 - 1 )) * (X[k]/model.PRICE0 -1) ) - Y[k] ) for k in range(len(X)) ]
12
13 model.obj = Objective(expr=sum(residuals[k]**2 for k in range(len(X))), sense=minimize)
<ipython-input-127-d00a8ec5b470> in <listcomp>(.0)
9 model.FRAT5_constraint = Constraint(expr = model.FRAT5 >= 0.05 )
10
---> 11 residuals = [ (exp(- (-log(0.5)/(model.FRAT5 - 1 )) * (X[k]/model.PRICE0 -1) ) - Y[k] ) for k in range(len(X)) ]
12
13 model.obj = Objective(expr=sum(residuals[k]**2 for k in range(len(X))), sense=minimize)
TypeError: unsupported operand type(s) for /: 'int' and 'NoneType'
【问题讨论】: