我构造了一个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
。有人能告诉我如何修正它,这样我才能得到标准偏差吗
目前没有回答
相关问题 更多 >
编程相关推荐