2011-11-21 108 views
1

我試圖在定義泰勒級數的Maple中定義一個函數(不使用taylor()命令)。我正在使用西格瑪符號定義作爲發現here.在Maple中定義泰勒級數

本質上,我需要一個函數,採用變量a和變量f,其中f是一個函數,如該維基百科頁面所示。爲了簡單起見,我只使用了變量a並自己定義了函數。

對於這個問題的範圍,讓我們假設我想到目前爲止,我已爲和下面的代碼我的代碼返回泰勒級數的sqrt(x) about x=16

t:=a->sum(([email protected]@n)(f(a))*(x-a)^n/n!,n=0..4); 

我定義前一行的函數f,如sqrt(x)。

當我調用函數t(16);時,Maple只返回系列的第一項,4.當我取代a的變量時,我可以看到Maple正在取a的導數,而不是f的導數(a)每學期。這當然創建零條件,並返回只有4.

回答

0

你想在這裏D的語法是(D @@ n)(f)(a),而不是你有什麼。

您可以讓操作員接受另一個參數來指定索引的上限。除非你想Maple嘗試做象徵性的總結(可疑的是,對於這種有限的總和和你的意圖),你可能最好使用add而不是sum

restart: 
t:=(a,N)->add(([email protected]@n)(f)(a)*(x-a)^n/n!,n=0..N): 

f:=sqrt: 
Digits:=15: 

S:=t(16,4): 
eval(S,x=17.0); 
        4.12310552597046 
sqrt(17.0); 
        4.12310562561766 

S:=t(16,10): 
eval(S,x=17.0); 
        4.12310562561768 
sqrt(17.0); 
        4.12310562561766 
+0

你說得對:我濫用D語法。我也可以爲函數分配第二個變量,用於總和的上限。這樣一來,我就可以在一行中調用a的值,以及我想要的總和的限制。它完美的作品。 也謝謝你的代碼:它真的幫助我理解!再次感謝您的出色答案。 – Librarian