0

最初にこれを実行しました:

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)

したがって、この場合、結果は正しく評価されました。

しかし、最初の行と 2 番目の行を結合しようとすると、次のようになります。

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 が左の関数から右の関数に変数を渡すことができることを証明しようとしました。

sage: f(x) = sin(arcsin(x)) 
sage: f(0.5)
0.500000000000000
4

1 に答える 1

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オブジェクトです(これはバグかもしれません?)。しかし、それを関数に入れると、それは Sage オブジェクトになりますが、Sage の「合計」オブジェクトはありません。だから私はそれが修正されなければならないものだと思います。

于 2013-10-31T17:25:18.947 に答える