1

我试图在 Sage 中制作一个汇总列表。命令是:

sage: var('n')
sage: var('x')
sage: f = (2/n)*(sin(n*x)*(-1)^(n+1)) 
sage: funclist = [sum(f,n,1,20) for n in range(1,3)]

但这是错误的:

TypeError: need a summation variable

但是当我在 python shell 上尝试一些类似的东西时。没有任何问题。

>>> x=1
>>> [pow(x,2) for x in range(1,9)]
[1, 4, 9, 16, 25, 36, 49, 64]

回到 Sage,如果我像这样在 Sage 上运行程序没有问题:

sage: var('n')
sage: var('x')
sage: sum(f,n,1,20)
-1/2*sin(4*x) + 2/3*sin(3*x) - sin(2*x) + 2*sin(x)

我不知道 Sage 如何将“求和”函数结合到其程序中。而且不知道如何解决这个问题。

4

1 回答 1

1

Sage shell 与 Pytyhon shell 不同,功能sum也不同。在 Sage 中,它试图找到一个符号和,这就是为什么第二个参数需要是一个variable。在您的第一个代码块中,您实际上是在尝试评估

[sum(f, 1, 1, 20), sum(f, 2, 1, 20)]

从数学的角度来看,你如何求和1?这就是 Sage 给你一个错误的原因。请注意,在最后一个代码块中,当您使用变量 时n,Sage 能够计算总和。

于 2013-10-30T10:57:06.030 回答