在Maple中以编程方式使用Taylor多项式

我试图在Maple中以编程方式使用Taylor多项式,但以下似乎不起作用......
T[6]:=taylor(sin(x),x=Pi/4,6);convert(T[6], polynom, x);
f:=proc(x)
  convert(T[6], polynom, x);
end proc;
f(1);
以下所有内容也不起作用:
f:=convert(T[6], polynom);
f:=convert(T[6], polynom, x);
f:=x->convert(T[6], polynom);
f:=x->convert(T[6], polynom, x);
。 有没有办法做到这一点,而无需将转换的输出复制并粘贴到
f
的定义中?     
已邀请:
将T定义为函数也可能是自然的。
T:=y->subs(x=y,convert(taylor(sin(x),x=Pi/4,6),polynom));

T(1);
    
如果我理解正确,这可以实现你想要的:
f := proc(z)
    local p :: polynom;
    p := convert(T[6], polynom); 
    return subs(x = z, p)
end proc
    
涉及过程和子的几个早期答案将为每个输入执行整个泰勒序列推导以及转换为多项式。这非常低效。 您只需要生成泰勒结果,并转换为多项式,一次。有了这个结果,你就可以创建一个运算符(用它来作用于你想要的任意数量的输入,只需通过在该点评估多项式,而不必重新计算整个泰勒答案)。 下面是一种创建过程f的方法,用于在任何给定点评估参数x。它计算(截断的)泰勒系列并仅转换为多项式一次。
> f:=unapply(convert(taylor(sin(x),x=Pi/4,6),polynom),x):
    

要回复问题请先登录注册