[英]Sympy simplification of maximum
我不明白为什么 Sympy 不会将下面简化的表达式返回给我(不确定它是我代码中的错误还是 Sympy 的功能)。
import sympy as sp
a = sp.Symbol('a',finite = True, real = True)
b = sp.Symbol('b',finite = True, real = True)
sp.assumptions.assume.global_assumptions.add(sp.Q.positive(b))
sp.assumptions.assume.global_assumptions.add(sp.Q.negative(a))
sp.simplify(sp.Max(a-b,a+b))
我希望输出为 $a+b$,但 Sympy 仍然给我 $Max(ab,a+b)$。
谢谢; 如您所见,我是 Sympy 的初学者,因此感谢您提供任何提示/帮助。
结果当然应该是a + b
...
您可以通过在符号上设置假设来做到这一点,如下所示:
In [2]: a = Symbol('a', negative=True)
In [3]: b = Symbol('b', positive=True)
In [4]: Max(a - b, a + b)
Out[4]: a + b
您正在尝试使用新的假设系统,但该系统仍处于实验阶段,并未在 sympy 中广泛使用。 新假设不用于核心评估,因此例如 Max 函数不知道您已经在 a 和 b 上声明了全局假设,除非这些假设是在我上面显示的符号上声明的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.