是否可以创建所有元素都为真值的IndexedBase?喜欢
k = sympy.IndexedBase('k', real = True))
上面的行不起作用。 Sympy始终将IndexedBase假定为复杂:
In [9]: import sympy
k= sympy.IndexedBase('k')
sympy.expand_complex(1/k)
Out[9]:
re(k) ⅈ⋅im(k)
─────────────── - ───────────────
2 2 2 2
re (k) + im (k) re (k) + im (k)
将k设置为实数将有助于我简化长表达式...知道如何做到这一点吗?
答案 0 :(得分:0)
目前尚无法对索引对象SymPy issue #13992进行假设。顺便说一句,通常本身不应该在表达式中出现IndexedBase k
:我希望看到k[j]
,其中j
是某个索引。
一种解决方法是使用函数语法。毕竟,IndexedBase对象(从数学上来说)只是一个带有整数参数的函数。区别仅在于参数的下标表示法和括号表示法之间。
k = Function('k', real=True)
j = Idx('j')
expand_complex(1/k(j)) # 1/k(j)