如果方差可用,则以pyomo为单位计算标准偏差

2024-05-18 14:50:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我构造了一个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。有人能告诉我如何修正它,这样我才能得到标准偏差吗


Tags: modelreturndefrule向量x1x2const

热门问题