我正在尝试在枫树中计算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[]
有什么不同?
问题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