我正在尝试计算Maple中的LaguerreL(n, a x)
,但问题正在发生。
我认为它适用于小数和分数。
含义,它适用于LaguerreL(m,n,0.5)
,而不适用于LaguerreL(m,n, 1/2)
。
两者都不应该有用吗?
不计算负a
的值。
LaguerreL(3.0, 2.0, 2.0) = -1.33333333333
但是,
LaguerreL(3.0, -2.0, 2.0) = Float(undefined) + Float (undefined)
但是,负a
的Laguerre有一个值。它没有未定义。
需要指定小数?
LaguerreL(3,2,2) = LaguerreL(3,2,2)
但是,
LaguerreL(3.0,2.0,2.0) = -1.33333333333
Maple中的LaguerreL()
与Mathematica中的LaguerreL[]
有什么不同?
答案 0 :(得分: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
在Mathematica页面上,您将看到以下转换为基本功能(在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