Laguerrel在枫叶中的计算问题



我正在尝试在枫树中计算LaguerreL(n, a x),但问题正在发生。

  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的Laguerre具有值。它不是不确定的。

  3. 一个人需要指定小数?

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

    但是,

    LaguerreL(3.0,2.0,2.0) = -1.33333333333   
    
  4. MAPLE中的LaguerreL()与Mathematica中的LaguerreL[]有什么不同?

问题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

在该Mathematica页面上,您会看到以下转换为基本功能(在枫树中)。

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