【发布时间】:2020-03-06 02:21:33
【问题描述】:
我在符号数学中进行了一些大型运算,这花费了太长时间(以我的口味),我想测试将一些假设烘焙到符号中是否会加快速度。自变量为 t。
但是,我发现:
>>> t = sympy.Symbol('t', positive=True)
>>> t.is_complex
True
这是否意味着 Sympy 假定了复杂的值? 同时:
>>> t.is_real
True
什么?这现在是实数还是复数?让我们试着明确一点:
>>> t = sympy.Symbol('t', negative=False, real=True, complex=False)
*** InconsistentAssumptions: {'real': True, 'imaginary': False, 'hermitian': True, 'complex': True, 'commutative': True}, complex=False
所以...我显然不明白符号定义是如何工作的。我想要一个正实数,即不是复数,但出于某种原因,Sympy 似乎坚持认为它必须是复数,而且是 Hermitian 矩阵?或者是(1-元素)厄密矩阵的实标量特例?我认为我没有足够的数学课知道这一点
我也不确定positive=True 是否包含t 为零的可能性。 documentation 似乎也没有解释参数的确切含义或它们的解释方式。
如果这是相关的:我使用的是 SYmpy 0.7.6。我知道这已经相当老了,但升级不是一种选择,因为程序需要在更新计划不是我决定的机器上运行......
【问题讨论】: