回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我试图在sympy中创建实值的变量,因为它只有实部,而不是复杂的,没有虚部。我使用的是Sympy1.0、iPython5.3.0和Python2.7.13。在</p>
<pre><code>In [48]: x = Symbol('x', real=True)
In [49]: x.assumptions0
Out[49]:
{'commutative': True,
'complex': True,
'hermitian': True,
'imaginary': False,
'real': True}
In [50]: x * conjugate(x)
Out[50]:
2
x
</code></pre>
<p>结果是正确的,但是它说<code>complex</code>和{<cd2>}都是{<cd3>},这让我担心未来的结果。如果我试着让它真实而不复杂,我会得到:</p>
^{pr2}$
<p>然后是一堆回溯信息。显然,这些假设在某种程度上相互冲突,我一定是误解了它们的含义。在</p>
<p>如果我试图确保<code>complex=False</code>我得到:</p>
<pre><code>In [52]: x = Symbol('x', complex=False)
In [53]: x.assumptions0
Out[53]:
{'algebraic': False,
'commutative': True,
'complex': False,
'composite': False,
'even': False,
'imaginary': False,
'integer': False,
'irrational': False,
'negative': False,
'noninteger': False,
'nonnegative': False,
'nonpositive': False,
'nonzero': False,
'odd': False,
'positive': False,
'prime': False,
'rational': False,
'real': False,
'transcendental': False,
'zero': False}
In [54]: x * conjugate(x)
Out[54]:
_
x⋅x
</code></pre>
<p>这清楚地表明它把它当作一个复杂的值来处理。在</p>
<p>我做错什么了吗?我真的可以相信<code>real=True</code>假设变量没有虚部吗?在</p>