我需要使用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)
您试图获得的答案不正确。内求和变量为j,在a(j)中使用,因此无法进一步计算内求和,并且i是内求和的上限,因此也无法进一步计算外求和。
\n\n给出您想要的答案的总和是Sum(a(i), (j,i,n), (i, 1, 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\nRun Code Online (Sandbox Code Playgroud)\n\n如果您调用 ,SymPy 将进行计算doit()。顺便说一句,请注意,通过将外部限制作为进一步的参数传递,您可以通过对 Sum 的单次调用来创建双倍总和。