我正在尝试在Maple中定义一个函数来定义泰勒级数(不使用taylor()命令)。我使用sigma符号定义作为found here.
本质上,我需要一个接受变量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个项。
发布于 2011-11-21 14:25:54
这里您想要的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.12310562561766https://stackoverflow.com/questions/8207542
复制相似问题