本文整理汇总了Python中pyomo.environ.ConcreteModel.e方法的典型用法代码示例。如果您正苦于以下问题:Python ConcreteModel.e方法的具体用法?Python ConcreteModel.e怎么用?Python ConcreteModel.e使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pyomo.environ.ConcreteModel
的用法示例。
在下文中一共展示了ConcreteModel.e方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_nonlinear
# 需要导入模块: from pyomo.environ import ConcreteModel [as 别名]
# 或者: from pyomo.environ.ConcreteModel import e [as 别名]
def test_nonlinear(self):
m = ConcreteModel()
m.x = Var()
m.y = Var(initialize=0)
m.c = Constraint(expr=m.x**2 == 16)
m.x.set_value(1.0) # set an initial value
calculate_variable_from_constraint(m.x, m.c, linesearch=False)
self.assertAlmostEqual(value(m.x), 4)
# test that infeasible constraint throws error
m.d = Constraint(expr=m.x**2 == -1)
m.x.set_value(1.25) # set the initial value
with self.assertRaisesRegexp(
RuntimeError, 'Iteration limit \(10\) reached'):
calculate_variable_from_constraint(
m.x, m.d, iterlim=10, linesearch=False)
# same problem should throw a linesearch error if linesearch is on
m.x.set_value(1.25) # set the initial value
with self.assertRaisesRegexp(
RuntimeError, "Linesearch iteration limit reached"):
calculate_variable_from_constraint(
m.x, m.d, iterlim=10, linesearch=True)
# same problem should raise an error if initialized at 0
m.x = 0
with self.assertRaisesRegexp(
RuntimeError, "Initial value for variable results in a "
"derivative value that is very close to zero."):
calculate_variable_from_constraint(m.x, m.c)
# same problem should raise a value error if we are asked to
# solve for a variable that is not present
with self.assertRaisesRegexp(
ValueError, "Variable derivative == 0"):
calculate_variable_from_constraint(m.y, m.c)
# should succeed with or without a linesearch
m.e = Constraint(expr=(m.x - 2.0)**2 - 1 == 0)
m.x.set_value(3.1)
calculate_variable_from_constraint(m.x, m.e, linesearch=False)
self.assertAlmostEqual(value(m.x), 3)
m.x.set_value(3.1)
calculate_variable_from_constraint(m.x, m.e, linesearch=True)
self.assertAlmostEqual(value(m.x), 3)
# we expect this to succeed with the linesearch
m.f = Constraint(expr=1.0/(1.0+exp(-m.x))-0.5 == 0)
m.x.set_value(3.0)
calculate_variable_from_constraint(m.x, m.f, linesearch=True)
self.assertAlmostEqual(value(m.x), 0)
# we expect this to fail without a linesearch
m.x.set_value(3.0)
with self.assertRaisesRegexp(
RuntimeError, "Newton's method encountered a derivative "
"that was too close to zero"):
calculate_variable_from_constraint(m.x, m.f, linesearch=False)
# Calculate the bubble point of Benzene. THe first step
# computed by calculate_variable_from_constraint will make the
# second term become complex, and the evaluation will fail.
# This tests that the algorithm cleanly continues
m = ConcreteModel()
m.x = Var()
m.pc = 48.9e5
m.tc = 562.2
m.psc = {'A': -6.98273,
'B': 1.33213,
'C': -2.62863,
'D': -3.33399,
}
m.p = 101325
@m.Constraint()
def f(m):
return m.pc * \
exp((m.psc['A'] * (1 - m.x / m.tc) +
m.psc['B'] * (1 - m.x / m.tc)**1.5 +
m.psc['C'] * (1 - m.x / m.tc)**3 +
m.psc['D'] * (1 - m.x / m.tc)**6
) / (1 - (1 - m.x / m.tc))) - m.p == 0
m.x.set_value(298.15)
calculate_variable_from_constraint(m.x, m.f, linesearch=False)
self.assertAlmostEqual(value(m.x), 353.31855602)
m.x.set_value(298.15)
calculate_variable_from_constraint(m.x, m.f, linesearch=True)
self.assertAlmostEqual(value(m.x), 353.31855602)
# Starting with an invalid guess (above TC) should raise an
# exception
m.x.set_value(600)
output = six.StringIO()
with LoggingIntercept(output, 'pyomo', logging.WARNING):
if six.PY2:
expectedException = ValueError
else:
#.........这里部分代码省略.........
示例2: Disjunction
# 需要导入模块: from pyomo.environ import ConcreteModel [as 别名]
# 或者: from pyomo.environ.ConcreteModel import e [as 别名]
# Form the new disjunction
ans.disjunction = Disjunction(expr=[ans.disjuncts[i] for i in ans.INDEX])
#
# Deactivate the old disjunctions / disjuncts
#
for i in ans.DISJUNCTIONS:
disjunctions[i].deactivate()
for d in disjunctions[i].disjuncts:
d._deactivate_without_fixing_indicator()
return ans
if __name__ == '__main__':
from pyomo.environ import ConcreteModel, Constraint, Var
m = ConcreteModel()
def _d(d, i):
d.x = Var(xrange(i))
d.silly = Constraint(expr=d.indicator_var == i)
m.d = Disjunct([1,2], rule=_d)
def _e(e, i):
e.y = Var(xrange(2,i))
m.e = Disjunct([3,4,5], rule=_e)
m.dd = Disjunction(expr=[m.d[1], m.d[2]])
m.ee = Disjunction(expr=[m.e[3], m.e[4], m.e[5]])
m.Z = apply_basic_step([m.dd, m.ee])
m.pprint()