1

我试图在 Maple 中定义一个定义泰勒级数的函数(不使用 taylor() 命令)。我正在使用此处找到的 sigma 符号定义。

本质上,我需要一个接受变量 a 和变量 f 的函数,其中 f 是 a 的函数,如该维基百科页面所示。为简单起见,我只使用了变量 a 并自己定义了函数。

对于这个问题的范围,假设我希望我的代码返回泰勒系列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。

4

1 回答 1

0

你想要的 D 语法是 (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
于 2011-11-21T06:25:53.723 回答