变量xx
通过假设变为正数。
因此,exp(xx)> 1和exp(xx)-1必须为正数。
此页面上似乎有类似的示例返回派生结果:
http://docs.sympy.org/latest/modules/assumptions/
我理解Sympy 1.0中的关系还不行。 我是否在这里间接遇到了这个问题?
# Should this Sympy 1.0 code print True (or why not?)
# This code prints `None'
from sympy import *
from sympy.assumptions.assume import global_assumptions
xx=symbols('xx')
xxPos= Q.positive(xx)
with assuming(xxPos):
print(ask(Q.positive(exp(xx)-1)))
## None
答案 0 :(得分:1)
问题很简单:范围的假设未实施。唯一允许的实数子范围是正,负,非正和非负区间。
您的表达式 exp(xx)-1 是一个 Add 对象,其中包含 exp 对象和 -1 作为加数。要有一个想法,请查看处理添加的正面假设的代码:
https://github.com/sympy/sympy/blob/sympy-1.0/sympy/assumptions/handlers/order.py#L267
从代码中可以清楚地看出积极性添加的评估:
在你的表达式中有一个负数,因此for循环将被中断,将返回默认值 None 。
注意强>
这种描述可能看起来缺少所有术语都是否定的情况。在这种情况下,指向函数返回 None ,稍后由SAT求解器处理并确定为 False 。