Python 3.x SymPy:索引符号到总和

Python 3.x SymPy:索引符号到总和,python-3.x,sympy,Python 3.x,Sympy,我有这样一个表达: -(a[1]*b[1] + a[2]*b[2])/((a[1]*b[1] - a[1] + a[2]*b[2] - a[2])) 把它转过来 (-summation(b[omega]*a[omega]))/(summation((b[omega]-1)*a[omega])) 在哪里 有可能吗?Python循环可能比您尝试执行的操作更简单 差不多 分子=-sum([b[omega]*a[omega]表示范围内的ω(len(a))) 分母=总和([(b[omega]-1)*

我有这样一个表达:

-(a[1]*b[1] + a[2]*b[2])/((a[1]*b[1] - a[1] + a[2]*b[2] - a[2])) 
把它转过来

(-summation(b[omega]*a[omega]))/(summation((b[omega]-1)*a[omega]))
在哪里


有可能吗?

Python循环可能比您尝试执行的操作更简单

差不多

分子=-sum([b[omega]*a[omega]表示范围内的ω(len(a)))
分母=总和([(b[omega]-1)*a[omega]表示范围内的ω(len(a))])
结果=分子/分母
如果您想要更多地基于Symphy的东西,那么您必须更多地参与进来,因为Python在索引数组时不接受符号。可能有很多方法可以做到这一点,但这是第一个想到的方法:

来自sympy导入的
*
ω=符号(‘ω’)
a=符号('a1 a2')
b=符号('b1 b2')
A类(功能):
@类方法
def eval(自身,x):
如果存在(x,符号):
返回
其他:
返回a[x]
B类(功能):
@类方法
def eval(自身,x):
如果存在(x,符号):
返回
其他:
返回b[x]
#索引从0开始
分子=-总和(B(ω)*A(ω)(ω,0,1))
分母=总和((B(ω)-1)*A(ω),(ω,0,1))
结果=分子/分母
omega = 1,2