# How to check whether Laguerre polynomials are orthogonal?

I've got the problem with checking if Laguerre polynomials for n=1,...,10 are orthogonal.

I have to create the list of these polynomials, then create the matrix of integrals from 0 to infinity. Something like:

M=Integrate[LaguerreL[i,x] LaguerreL[j,x] Exp[-x], {x,0,Infinity}]


And in the end I have to draw the dynamic drawing of these polynomials so that if I choose on graph n, from 0 to 20, the correct polynomial will be drawn with its derivative.

• Commented Nov 29, 2018 at 4:44
• Table[M, {i, 10}, {j, 10}]? Commented Nov 29, 2018 at 4:45
• I have to integrate by exp(-x)dx instead of dx. Commented Nov 29, 2018 at 4:57
• That's not the problem.... Commented Nov 29, 2018 at 5:20

Integrate[LaguerreL[i, x] LaguerreL[j, x] Exp[-x], {x, 0, Infinity},
Assumptions -> Element[{i, j}, Integers] && j > i > 0]


0

n = 10;
Outer[Integrate[LaguerreL[#, x] LaguerreL[#2, x] Exp[-x], {x, 0, ∞}] &,
Range[n], Range[n]] == IdentityMatrix[n]


True

Manipulate[Show[Plot[Evaluate@LaguerreL[Sort@n, x], {x, 0, 10},
PlotLegends -> ("LaguerreL[" <> ToString[#] <> ", x]" & /@ Sort[n]),
PlotRange -> {-15, 15}],
Plot[Evaluate[D[LaguerreL[Sort@n, z], z] /. z -> x], {x, 0, 10},
PlotLegends -> ("D[LaguerreL[" <> ToString[#] <> ", x], x]" & /@ Sort[n]),
PlotStyle -> Dashed]],
{{n, {5, 10, 17}}, Range[0,20], TogglerBar}]


Table[
NIntegrate[LaguerreL[i, x] LaguerreL[j, x] Exp[-x], {x, 0, Infinity}],
{i, 10},
{j, 10}
] // Chop // Quiet
MatrixForm@%
Manipulate[
Plot[
{#, D[#, x]} &@LaguerreL[n, x] // Evaluate,
{x, 0, 10},
Frame -> True,
BaseStyle -> {11, FontFamily -> Times},
PlotLabel -> StringForm["n=", n]
],

$$\left( \begin{array}{cccccccccc} 1. & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1. & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1. & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1. & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1. & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1. & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1. & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1. & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1. & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1. \\ \end{array} \right)$$
• @Crunchy Sure, just change Plot[{#, D[#, x]} &@LaguerreL[n, x] to Plot[{#, D[#, x]} &@LaguerreL[Range[0, n], x]. Though, it starts to look a little chaotic even at n=4. At that point, I would go with @kglr's implementation. Commented Nov 29, 2018 at 20:47