首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中求解具有多变量的等式和不等式

在python中求解具有多变量的等式和不等式
EN

Stack Overflow用户
提问于 2021-02-12 03:51:57
回答 1查看 153关注 0票数 0

我正在尝试解决以下问题:

代码语言:javascript
复制
 2*x + 4*y = 6 
 0 <= x <= 2
 0 <= y <= 1

我试过希姆西

代码语言:javascript
复制
from sympy import Poly
from sympy.solvers.inequalities import solve_rational_inequalities
from sympy.abc import x, y, z

solve_rational_inequalities([[
((Poly(2*x + 4*y ), 6), '=='),
((Poly(x), 2), '<='),
((Poly(y), 1), '<='),
((Poly(x), 0), '>='),
((Poly(y), 0), '>=')]])

但我有个例外,polynomialError:

代码语言:javascript
复制
  only univariate polynomials are allowed

有没有办法解决这个问题,可以使用sympy或任何其他的python库?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-12 04:19:26

您可以使用python-constraint

代码语言:javascript
复制
import constraint

problem = constraint.Problem()

problem.addVariable('x', range(2))
problem.addVariable('y', [1])

def our_constraint(x, y):
    if 2*x + 4*y == 6:
        return True

problem.addConstraint(our_constraint, ['x','y'])

solutions = problem.getSolutions()

for solution in solutions:
    print(solution)

输出:{'y': 1, 'x': 1}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66161837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档