创建只包含实数值的IndexedBase

时间:2018-07-19 09:20:07

标签: sympy

是否可以创建所有元素都为真值的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设置为实数将有助于我简化长表达式...知道如何做到这一点吗?

1 个答案:

答案 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)