从Maple中的Series命令结果定义函数

时间:2018-05-18 00:30:34

标签: series maple

是否有一种简单的方法可以从系列命令的结果中定义函数? (即没有剩余期限)

例如

[> series(cos(x), x=0, 5); 1-1/2*x^2+1/24*x^4+O(x^5)

我想定义一个函数

[> f:=(x)->1-1/2*x^2+1/24*x^4;

我不知道如何在没有手动复制/粘贴的情况下执行此操作的简单方法,我需要动态地执行此操作。目前,我这样做非常麻烦:

[> S:=series(cos(x), x=0, 5); f:=unapply(`+`(seq(op(S)[2*k-1]*x^(op(S)[2*k]), k=1..nops(S)/2-1)), x);

如果generalized series requiring fractional exponents我可以这样做:

[> S:=series(sqrt(sin(x)), x=0, 4); f:=unapply(S-op(S)[nops(S)], x);

我不知道将两种情况合二为一的可靠方法(第二种情况下的术语数与命令相似,而在第一种情况下它几乎是两倍,但由于某些功能,它不是一种可靠的方法即使是高阶,也可能只有很少的条款。)

1 个答案:

答案 0 :(得分:1)

这种方法以同样的方式涵盖了两个例子。

restart;

S:=series(cos(x), x=0, 5);

                      1  2   1   4    / 6\
             S := 1 - - x  + -- x  + O\x /
                      2      24   

P:=convert(S, polynom);

                          1  2   1   4
                 P := 1 - - x  + -- x 
                          2      24   

F:=unapply(P, x);

                             1  2   1   4
               F := x -> 1 - - x  + -- x 
                             2      24   

F(0.3);

                      0.9553375000

cos(0.3);

                      0.9553364891

另一方面,

restart;

S:=series(sqrt(sin(x)), x=0, 5);

         (1/2)   1   (5/2)    1    (9/2)    / (13/2)\
   S := x      - -- x      + ---- x      + O\x      /
                 12          1440                    

P:=convert(S, polynom);

               (1/2)   1   (5/2)    1    (9/2)
         P := x      - -- x      + ---- x     
                       12          1440       

F:=unapply(P, x);

                  (1/2)   1   (5/2)    1    (9/2)
       F := x -> x      - -- x      + ---- x     
                          12          1440       

F(0.3);

                      0.5436177192

sqrt(sin(0.3));

                      0.5436177027

您可以在[{1}}本身help page的示例中看到您遗失的这一步骤(convertpolynom)。