第一个我跑了这个:
sage: f(x)=(2/n)*(sin(n*x)*(-1)^(n+1))
sage: sum(f, n, 1, 2) #using summation function
-sin(2*x) + 2*sin(x)
因此,在这种情况下,结果被正确评估。
但如果我试图将第一行和第二行合并在一起:
sage: f(x,k) = sum((2/n)*(sin(n*x)*(-1)^(n+1)), n, 1, k)
#where n = 1,2,3 ... k
sage: f(x,2)
-2*sum((-1)^n*sin(n*x)/n, n, 1, 2)
结果没有完成。
为什么圣人在这种情况下无法评估数学表达式?
另一个试图证明Sage可以将其变量从左功能传递到右功能,即使右功能是嵌套功能:
sage: f(x) = sin(arcsin(x))
sage: f(0.5)
0.500000000000000
答案 0 :(得分:2)
sage: n, k = var('n, k')
sage: f(x,k) = sum((2/n)*(sin(n*x)*(-1)^(n+1)), n, 1, k)
#where n = 1,2,3 ... k
sage: f
(x, k) |--> -2*sum((-1)^n*sin(n*x)/n, n, 1, k)
我不确定你认为这里的错误。 2和因子-1都被考虑在内,这就是全部。
但是,我确实同意这不会扩大。发生的事情是我们将总和发送给Maxima
if algorithm == 'maxima':
return maxima.sr_sum(expression,v,a,b)
然后通常当它返回时,它仍然是一个Maxima对象(可能是一个bug?)。但是当我们把它放在函数中时,它就变成了一个Sage对象 - 但是我们没有一个Sage“sum”对象。所以我认为这是必须解决的问题。