我试图在Maple中定义一个定义泰勒级数的函数(不使用taylor()命令)。我使用sigma符号定义找到了here.
基本上,我需要一个带变量a的函数和一个变量f,其中f是a的函数,如维基百科页面所示。为简单起见,我只使用了变量a并自己定义了函数。
对于这个问题的范围,让我们假设我希望我的代码返回taylor系列sqrt(x) about x=16
到目前为止,我总结了以下代码:
t:=a->sum((D@@n)(f(a))*(x-a)^n/n!,n=0..4);
我在前一行定义了函数f,如sqrt(x)。
当我调用函数t(16);
时,Maple只返回系列的第一个项,4。当我取代a的变量时,我可以看到Maple正在取a的导数,而不是每个期限的f(a)的衍生物。这当然会创建零项,只返回4。
答案 0 :(得分:0)
这里你想要的语法是(D @@ n)(f)(a)而不是你拥有的语法。
您可以让运算符接受另一个参数来指定索引的上限。除非你希望Maple尝试进行符号求和(可疑,对于这样的有限总和和你的意图),你可能最好使用add
代替sum
。
restart:
t:=(a,N)->add((D@@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