SymPy:评估总和

Mak*_*rov 5 sympy python-2.7

我需要使用SymPy来评估表达式:

在此输入图像描述

我希望得到类似的东西

在此输入图像描述

问题是代码

import sympy as sy

n,i,j = sy.symbols('n i j', integer=True)
a = sy.Function('a')

print sy.Sum(sy.Sum(a(j), (j,1,i)), (i, 1, n)).doit()
Run Code Online (Sandbox Code Playgroud)

打印只是双倍总和

Sum(a(j), (j, 1, i), (i, 1, n))
Run Code Online (Sandbox Code Playgroud)

asm*_*rer 4

您试图获得的答案不正确。内求和变量为j,在a(j)中使用,因此无法进一步计算内求和,并且i是内求和的上限,因此也无法进一步计算外求和。

\n\n

给出您想要的答案的总和是Sum(a(i), (j,i,n), (i, 1, n)),即

\n\n
  n     n\n ___   ___\n \xe2\x95\xb2     \xe2\x95\xb2\n  \xe2\x95\xb2     \xe2\x95\xb2   a(i)\n  \xe2\x95\xb1     \xe2\x95\xb1\n \xe2\x95\xb1     \xe2\x95\xb1\n \xe2\x80\xbe\xe2\x80\xbe\xe2\x80\xbe   \xe2\x80\xbe\xe2\x80\xbe\xe2\x80\xbe\ni = 1 j = i\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果您调用 ,SymPy 将进行计算doit()。顺便说一句,请注意,通过将外部限制作为进一步的参数传递,您可以通过对 Sum 的单次调用来创建双倍总和。

\n