如何解决Sympy Typeerror:无法确定关系的真值如何确保 x > 0
对于 x1 的每个正值,我想检查 6**x1 是否大于 0。我正在使用 sympy。
我做了以下事情:
x1 = sm.symbols('x_1',nonnegative=True)
u = 6**x1
def checker(func):
if u > 0:
return True
else:
return False
但是,我收到错误:
TypeError: 无法确定 Relational 的真值
我认为这是因为函数不知道 x1 是正数。但是我如何确保它知道这一点?显然,仅使用 sm.symbols 定义还不够。
斑马线
解决方法
SymPy 仅让您将可以计算为具有文字 >
(和类似内容)的数字的事物进行比较。如果您想对符号表达式进行查询,请使用 expr.is_positive
或 (expr.is_extended_positive
如果您也想考虑 oo
)。
>>> u.is_positive
True
这也可以是 None 或 False。当无法做出明确决定时,不会返回 None,例如symbols('x').is_positive is None -> True
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。