如何告诉 Sympy 一个符号“大于另一个”

dar*_*izp 5 sympy

假设我有两个符号

x,y=symbols('x y')
Run Code Online (Sandbox Code Playgroud)

我的目标是告诉 Sympy x 总是大于 y (x>y)。有没有办法实现这一目标?

小智 9

没有办法直接做到这一点。假设模块不支持关系,而且它还没有与 SymPy 的其余部分集成,因此它的假设不会帮助您简化积分。

解决方法是引入一个符号来表达两个符号之间的差异,并将其声明为正数。例如,

y = symbols('y')
p = symbols('p', positive=True)
x = y + p
Run Code Online (Sandbox Code Playgroud)

现在 SymPy 知道 x > y:

>>> (x > y).simplify()
True
Run Code Online (Sandbox Code Playgroud)

这在涉及 x 的计算中有多有用取决于这样做是否 .subs(x, y + p)会将其变成简化的东西。

直接用 True 或 False 替换条件通常更容易,就像我在这里所做的那样。