2017-08-29 10 views
0

MapleでLaguerreL(n, a x)を計算しようとしていますが、問題が発生しています。Maple Leafの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. Mathematicaで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質問も参照してください:

することは、それぞれのオンラインマニュアルの定義を比較します。そのMathematicaのページで

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

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

あなたは(メープルで)基本機能に、次の変換が自動的に行われていることがわかります。

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