如何用Sympy求解含&与|的约束系统及二次方程约束问题
使用SymPy求解含逻辑与(&)、逻辑或(|)的约束系统
原始需求
需通过SymPy求解包含逻辑与(&)、逻辑或(|)的约束系统,具体场景示例如下:
逻辑与场景
from sympy import * var('x', reals=True) formula = (x < 0) & (x < 2) print(solve(formula)) # 期望输出:[x < 0]
逻辑或场景
from sympy import * var('x', reals=True) formula = (x > 0) | (x < 2) print(solve(formula)) # 期望输出:[],即x ∈ (-∞, +∞)
已知存在若干变通实现方式,但会显著提升程序复杂度。
更新需求
参考Oscar Benjamin的解答后,需进一步支持二次方程约束场景的求解,示例如下:
from sympy import * var('x', reals=True) range = (x > 2) | (x < 0) equation = Eq(x ** 2 - 1, 0) print(simplify(equation & range)) # 期望输出:[Eq(x, -1)]
内容的提问来源于stack exchange,提问作者Qinshi Wang
相关产品推荐
相关产品推荐

