【问题标题】:Define a function from a result of Series command in Maple根据 Maple 中 Series 命令的结果定义函数
【发布时间】:2018-05-18 00:30:33
【问题描述】:

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

例如

[> 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);

我不知道将两种情况合并为一个的可靠方法(第二种情况下的项数与顺序相似,而第一种情况下几乎是两倍,但这不是一种可靠的方法,因为某些功能即使是高阶项也可能很少)。

【问题讨论】:

    标签: series maple


    【解决方案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
    

    您可以在help page 上的示例中看到您缺少的这一步(到convertpolynom)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-11
      • 2014-07-07
      • 1970-01-01
      • 1970-01-01
      • 2013-11-12
      相关资源
      最近更新 更多