2017-08-29 97 views
0

我正在计算Maple中的LaguerreL(n, a x),但是发生了问题。LaguerreL在枫叶中的计算问题

  1. 它适用于小数和分数,我认为。

    含义,它适用于LaguerreL(m,n,0.5)而不适用于LaguerreL(m,n, 1/2)

    它不应该适用于两者吗?

  2. 不计算负值a的值。

    LaguerreL(3.0, 2.0, 2.0) = -1.33333333333 
    

    但是,

    LaguerreL(3.0, -2.0, 2.0) = Float(undefined) + Float (undefined) 
    

    然而,拉盖尔负a有一个值。它不是未定义的。

  3. 需要指定小数吗?

    LaguerreL(3,2,2) = LaguerreL(3,2,2) 
    

    但是,

    LaguerreL(3.0,2.0,2.0) = -1.33333333333 
    
  4. 是枫树任何比数学LaguerreL[]不同LaguerreL()

回答

0

问题1:

这是一样的问题3?

问题2:

restart; 
ee:=LaguerreL(3, -2, 2); 

        ee := LaguerreL(3, -2, 2) 

convert(ee, hypergeom); # weakness (bug reported) 

         LaguerreL(3, -2, 2) 

convert(ee, elementary); # weakness (bug reported) 

         LaguerreL(3, -2, 2) 

simplify(ee); # weakness (bug reported) 

         LaguerreL(3, -2, 2) 

evalf(ee); # bug (bug reported) 

      Float(undefined) + Float(undefined) I 

下面是解决这几个方面:

restart; 
ee:=LaguerreL(3, -2, 2); 

        ee := LaguerreL(3, -2, 2) 

# One way: 

# raise the second argument two times 
ff:=convert(ee,LaguerreL,"raise b"$2): 

lprint(%); 
    (1/3)*LaguerreL(3, 2)-(13/12)*LaguerreL(3, 1, 2) 
    +(1/2)*LaguerreL(3, 2, 2) 

simplify(ff); 

          2 
          - 
          3 

convert(ff,elementary); 

          2 
          - 
          3 

evalf(ff); 

         0.6666666665 

# Related... 
ffh:=convert(ff, hypergeom): 

lprint(%); 
    (1/3)*hypergeom([-3], [1], 2)-(13/3)*hypergeom([-3], [2], 2) 
    +5*hypergeom([-3], [3], 2) 

convert(ffh,elementary); 

          2 
          - 
          3 

simplify(ffh); 

          2 
          - 
          3 

evalf(ffh); 

         0.6666666665 

# Another (crude) way: 
evalf(Limit(LaguerreL(3,a,2), a=-2.0)); 

         0.6666666667 

# Another (cruder) way 
normal(convert(LaguerreL(3,a,2),elementary)); 

         1 3 7  1 
         - a - - a - - 
         6  6  3 

eval(%,a=-2.0); 

         0.6666666667 

问题3:

是的,这就是它是如何工作的。参见问题4

restart; 
ee:=LaguerreL(3,2,2); 

        ee := LaguerreL(3, 2, 2) 

simplify(ee); 

          -4/3 

convert(ee, elementary); 

          -4/3 

问题4:

在各自的在线文档比较定义。

https://reference.wolfram.com/language/ref/LaguerreL.html

https://www.maplesoft.com/support/help/maple/view.aspx?path=LaguerreL

在那个数学页面,你会看到下面的转换与基本功能(在Maple)是自动完成的。

restart; 
ee:=LaguerreL(2, a, x); 

        ee := LaguerreL(2, a, x) 

convert(ee, elementary); 

                  2 
      (1 + a) (a + 2)    (-a - 2) x 
      --------------- + (-a - 2) x - ----------- 
        2       2 a + 4 

expand(normal(%)); 

       2        2 
      1/2 a + 3/2 a + 1 - x a - 2 x + 1/2 x