ラゲールの多項式(Laguerre polynomials)

Ln:=(x,n)->expand(E^x*diff(x^n*E^(-x),x$n));
for n from 0 to 5 do
  print(hold(Ln)(x,n)=Ln(x,n));
end_for;

(x, n) -> expand(E^x*diff(x^n/E^x, x $ n))
Ln(x, 0) = 1
Ln(x, 1) = 1 - x
Ln(x, 2) = x^2 - 4*x + 2
Ln(x, 3) = - x^3 + 9*x^2 - 18*x + 6
Ln(x, 4) = x^4 - 16*x^3 + 72*x^2 - 96*x + 24
Ln(x, 5) = - x^5 + 25*x^4 - 200*x^3 + 600*x^2 - 600*x + 120

グラフにしました。

for n from 0 to 5 do
  print(hold(Ln)(x,n)=Ln(x,n));
  plot(plot::Function2d(Ln(x,n),x=-50..50,Color=RGB::Blue));
end_for;

Ln(x, 0) = 1
MuPAD graphics
Ln(x, 1) = 1 - x
MuPAD graphics
Ln(x, 2) = x^2 - 4*x + 2
MuPAD graphics
Ln(x, 3) = - x^3 + 9*x^2 - 18*x + 6
MuPAD graphics
Ln(x, 4) = x^4 - 16*x^3 + 72*x^2 - 96*x + 24
MuPAD graphics
Ln(x, 5) = - x^5 + 25*x^4 - 200*x^3 + 600*x^2 - 600*x + 120
MuPAD graphics

ラゲールの多項式の直交性

print(hold(int(Ln(x,3)*Ln(x,4)*E^(-x),x=0..infinity))=int(Ln(x,3)*Ln(x,4)*E^(-x),x=0..infinity));
print(hold(int(Ln(x,5)*Ln(x,7)*E^(-x),x=0..infinity))=int(Ln(x,5)*Ln(x,7)*E^(-x),x=0..infinity));
print(hold(int(Ln(x,8)*Ln(x,8)*E^(-x),x=0..infinity))=int(Ln(x,8)*Ln(x,8)*E^(-x),x=0..infinity));
print(hold((8!)^2)=(8!)^2);

int((Ln(x, 3)*Ln(x, 4))/E^x, x = 0..infinity) = 0
int((Ln(x, 5)*Ln(x, 7))/E^x, x = 0..infinity) = 0
int((Ln(x, 8)*Ln(x, 8))/E^x, x = 0..infinity) = 1625702400
8!^2 = 1625702400

 

 

ラゲールの陪多項式(associated Laguerre polynomials)

Lnk:=(x,n,k)->expand(diff(Ln(x,n),x$k));
for n from 0 to 5 do
  for k from 0 to n do
    print(hold(Lnk)(x,n,k)=Lnk(x,n,k));
  end_for
end_for;

(x, n, k) -> expand(diff(Ln(x, n), x $ k))
Lnk(x, 0, 0) = 1
Lnk(x, 1, 0) = 1 - x
Lnk(x, 1, 1) = -1
Lnk(x, 2, 0) = x^2 - 4*x + 2
Lnk(x, 2, 1) = 2*x - 4
Lnk(x, 2, 2) = 2
Lnk(x, 3, 0) = - x^3 + 9*x^2 - 18*x + 6
Lnk(x, 3, 1) = - 3*x^2 + 18*x - 18
Lnk(x, 3, 2) = 18 - 6*x
Lnk(x, 3, 3) = -6
Lnk(x, 4, 0) = x^4 - 16*x^3 + 72*x^2 - 96*x + 24
Lnk(x, 4, 1) = 4*x^3 - 48*x^2 + 144*x - 96
Lnk(x, 4, 2) = 12*x^2 - 96*x + 144
Lnk(x, 4, 3) = 24*x - 96
Lnk(x, 4, 4) = 24
Lnk(x, 5, 0) = - x^5 + 25*x^4 - 200*x^3 + 600*x^2 - 600*x + 120
Lnk(x, 5, 1) = - 5*x^4 + 100*x^3 - 600*x^2 + 1200*x - 600
Lnk(x, 5, 2) = - 20*x^3 + 300*x^2 - 1200*x + 1200
Lnk(x, 5, 3) = - 60*x^2 + 600*x - 1200
Lnk(x, 5, 4) = 600 - 120*x
Lnk(x, 5, 5) = -120

グラフにしました。

for n from 0 to 5 do
  for k from 0 to n do
    print(hold(Lnk)(x,n,k)=Lnk(x,n,k));
    plot(plot::Function2d(Lnk(x,n,k),x=-50..50,Color=RGB::Blue));
  end_for
end_for;

Lnk(x, 0, 0) = 1
MuPAD graphics
Lnk(x, 1, 0) = 1 - x
MuPAD graphics
Lnk(x, 1, 1) = -1
MuPAD graphics
Lnk(x, 2, 0) = x^2 - 4*x + 2
MuPAD graphics
Lnk(x, 2, 1) = 2*x - 4
MuPAD graphics
Lnk(x, 2, 2) = 2
MuPAD graphics
Lnk(x, 3, 0) = - x^3 + 9*x^2 - 18*x + 6
MuPAD graphics
Lnk(x, 3, 1) = - 3*x^2 + 18*x - 18
MuPAD graphics
Lnk(x, 3, 2) = 18 - 6*x
MuPAD graphics
Lnk(x, 3, 3) = -6
MuPAD graphics
Lnk(x, 4, 0) = x^4 - 16*x^3 + 72*x^2 - 96*x + 24
MuPAD graphics
Lnk(x, 4, 1) = 4*x^3 - 48*x^2 + 144*x - 96
MuPAD graphics
Lnk(x, 4, 2) = 12*x^2 - 96*x + 144
MuPAD graphics
Lnk(x, 4, 3) = 24*x - 96
MuPAD graphics
Lnk(x, 4, 4) = 24
MuPAD graphics
Lnk(x, 5, 0) = - x^5 + 25*x^4 - 200*x^3 + 600*x^2 - 600*x + 120
MuPAD graphics
Lnk(x, 5, 1) = - 5*x^4 + 100*x^3 - 600*x^2 + 1200*x - 600
MuPAD graphics
Lnk(x, 5, 2) = - 20*x^3 + 300*x^2 - 1200*x + 1200
MuPAD graphics
Lnk(x, 5, 3) = - 60*x^2 + 600*x - 1200
MuPAD graphics
Lnk(x, 5, 4) = 600 - 120*x
MuPAD graphics
Lnk(x, 5, 5) = -120
MuPAD graphics

ラゲールの陪多項式の直交性

print(hold(int(x^1*E^(-x)*Lnk(x,4,1)*Lnk(x,5,1),x=0..infinity))=int(x^1*E^(-x)*Lnk(x,4,1)*Lnk(x,5,1),x=0..infinity));
print(hold(int(x^3*E^(-x)*Lnk(x,8,3)*Lnk(x,5,3),x=0..infinity))=int(x^3*E^(-x)*Lnk(x,8,3)*Lnk(x,5,3),x=0..infinity));
print(hold(int(x^4*E^(-x)*Lnk(x,7,4)*Lnk(x,7,4),x=0..infinity))=int(x^4*E^(-x)*Lnk(x,7,4)*Lnk(x,7,4),x=0..infinity));
print(hold((7!)^3/(7-4)!)=(7!)^3/(7-4)!);

int((x*Lnk(x, 4, 1)*Lnk(x, 5, 1))/E^x, x = 0..infinity) = 0
int((x^3*Lnk(x, 8, 3)*Lnk(x, 5, 3))/E^x, x = 0..infinity) = 0
int((x^4*Lnk(x, 7, 4)*Lnk(x, 7, 4))/E^x, x = 0..infinity) = 21337344000
7!^3/(7 - 4)! = 21337344000