提问人:slow_learner 提问时间:5/24/2020 更新时间:5/24/2020 访问量:270
如果方差可用,则计算 pyomo 标准差
Calculation of standard deviation in pyomo if variance is avaiable
问:
我构造了一个 pyomo 代码,其中我计算 3 个向量的加权平均值为
def meanX_definition(model, i):
return m.meanX[i] ==(m.x1[i]+4*m.x2[i]+m.x3[i])/6
m.meanX_const = Constraint(m.N, rule = meanX_definition)
然后,我将方差计算为
def varX_definition(model, i):
return m.varX[i] ==((m.x1[i]-m.meanX[i])**2+ 4*(m.x2[i]-m.meanX[i])**2+(m.x3[i]-m.meanX[i])**2)/6
m.varX_const = Constraint(m.N, rule = varX_definition)
由于我的模型是随机模型,因此我想设置限制,因为 x1、x2 和 x3 必须定位在平均值和 +-2 标准差之间。
为此,我尝试将标准偏差计算为
def stdX_definition(model, i):
return m.desvestX[i] == sqrt(m.varX[i])
m.stdX_const = Constraint(m.N, rule = stdX_definition)
和
def stdX_definition(model, i):
return m.desvestX[i] == m.varX[i]**(0.5)
m.stdX_const = Constraint(m.N_notinitial_notfinal, rule = stdX_definition)
我还尝试定义所有点的标准差,但第一个点和最后一个点的标准差,以防误差是 [0] 和 [n] 处的标准差为 0,因为所有 3 个向量的起点和终点都相同。
不幸的是,发生了错误。有人可以告诉我如何修复它以便我得到标准偏差吗?ApplicationError: Solver (ipopt) did not exit normally
答: 暂无答案
评论
sqrt(m.varX[i]+0.001)
m.varX
ValueError: Cannot load a SolverResults object with bad status: error
Error in an AMPL evaluation. Run with "halt_on_ampl_error yes" to see details. Warning: Cutting back alpha due to evaluation error