ラゲールの陪多項式とassociated Laguerre polynomialsの指しているものが違った件

# 導入

ラゲールの陪多項式とは，常微分方程式

```math
\left(x\frac{d^2}{dx^2}+(k+1-x)\frac{d}{dx}+(n-k)\right)L_n^k(x)=0 \tag{1}
```

を満たす多項式 $L_n^k(x)$ のことです．
水素原子のシュレディンガー方程式を解くと動径方向の関数として現れることで有名です．

```math
\Psi(r, \theta, \phi)=N_{l,n}
\left(\frac{\rho}{n}\right)^l e^{-\frac{\rho}{n}} L_{n+l}^{2l+1}\left(\frac{\rho}{n}\right)
\times M_{l,m} P_l^{|m|}(\cos\theta)e^{im\phi}\\
\ \\
\rho=\frac{Z}{a_0}r,\; a_0=\frac{4\pi\varepsilon_0\hbar^2}{\mu e^2},\\
N_{l,n}=-\sqrt{\frac{4(n-l-1)!}{n^4[(n+l)!]^3}}\left(\frac{Z}{a_0}\right)^{\frac32},\;
M_{l,m}=(-1)^{\frac{m+|m|}{2}}\sqrt{\frac{2l+1}{4\pi}\frac{(l-|m|)!}{(l+|m|)!}}\\
L_k^j(x): \text{ラゲールの陪多項式}, P_k^j(x):\text{ルジャンドルの陪多項式}
```

※ [プロデルで水素原子の電子雲を計算しよう](https://qiita.com/Mopepe51/items/a09674d3e13868622f7a#%E6%B0%B4%E7%B4%A0%E5%8E%9F%E5%AD%90%E6%B3%A2%E5%8B%95%E9%96%A2%E6%95%B0%E3%81%AE%E8%A7%A3)

（もっぱら水素原子波動関数を描画したいときなど）プログラムでこの多項式を扱いたいことがままあります．
同時に現れるルジャンドル陪多項式は英語で"associated Legendre polynomials"であり，特殊関数を扱える多くのライブラリで`assoc_legendre`などの名前で実装されています．
同様にして，ラゲール陪多項式は英語ではもちろん"associated Laguerre polynomials"といい，`assoc_laguerre`という名前の関数は「ラゲール陪関数 (associated Legendre functions) を計算する。」と書いてあるのですが，これを使って上記の波動関数を計算すると結果が合いません．

例えば水素原子の $2p_{\text{z}}$ 軌道は量子数 $n=2,l=1,m=0$ で，動径関数は $\displaystyle N\frac{\rho}{2}\exp(-\frac{\rho}{2})$ で，ラゲール陪多項式は定数式であるはずです．これを $L_3^3(x)$ で得ようと Wolfram alpha で計算しようとすると……

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121120/37529437-17b2-d07a-dc76-f06aec108aa2.png)
https://www.wolframalpha.com/input?i=LaguerreL%5B3%2C+3%2C+x%5D&lang=ja

3次関数が現れます．
このような関数だと$2p_{\text{z}}$ 軌道は動径方向に節を持つことになってしまいます．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121120/42665d9e-1bc1-21d4-d5e5-5033db3bdf7e.png)
（こんな感じ）

明らかにおかしいですね．
じつは，得たい関数 "$L_3^3$" は（Wolfram Alphaのクエリでは） `LaguerreL[0, 3, x]` のように，指数(0,3)と入力することで得られます．
この"バグ"はどのようにして現れるのでしょうか？

# 定義

実は，日本語での「ラゲール陪多項式」と英語の「associated Laguerre polynomials」は定義が異なります．
日本語では前述したとおり

```math
\left(x\frac{d^2}{dx^2}+(k+1-x)\frac{d}{dx}+(n-k)\right)y(x)=0 \tag{1}
```

です[^jawiki]が，英語では

```math
\left(x\frac{d^2}{dx^2}+(k+1-x)\frac{d}{dx}+n\right)y(x)=0 \tag{2}
```

になっています[^enwiki]．
最後の項が違いますね．この少しの差で結果がかなり変わってしまいます．
associated は「関連する」という意味なので決まった拡張の仕方があるわけではないというのが原因でしょう．実際のところ，英語版は「generalized Laguerre polynomials (associated Laguerre polynomials とも呼ばれる)」という感じなので，ルジャンドル多項式-ルジャンドル陪多項式の関連との整合性などはあまり意識されていないのかもしれません．
が，流石にそれぞれバラバラでは困ります．どう関連しているのでしょうか？

[^jawiki]: [ラゲールの陪多項式 - Wikipedia](https://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%B2%E3%83%BC%E3%83%AB%E3%81%AE%E9%99%AA%E5%A4%9A%E9%A0%85%E5%BC%8F)

[^enwiki]: [Laguerre polynomials - Wikipedia](https://en.wikipedia.org/wiki/Laguerre_polynomials)

# 関係式

Wikipediaでの記号をよく見ると，日本語版のラゲール陪多項式は $L_n^k(x)$，英語版では $L_n^{(k)}(x)$と肩の指数のカッコの有無が異なっている事がわかります．これで区別することにしましょう[^power]．

[^power]: 実際は日本語版の方はストレートに $L_n(x)$ の $k$ 階微分なのでこちらの方がカッコで書かれたほうが良い気がしますが……

さて，$k=0$の場合は日英どちらの定義でも微分方程式は

```math
\left(x\frac{d^2}{dx^2}+(1-x)\frac{d}{dx}+n\right)y(x)=0
```

なので $L_n^0$ と $L_n^{(0)}$は(定数倍を除いて)一致します[^eng]．
これは特にラゲール多項式と呼ばれ，

```math
L_n(x)=e^x\frac{d^n}{dx^n}(x^ne^{-x})
```

と表せることなどが知られています[^Rodrigues]．
これを使って，日本語版は

```math
L_n^k(x)=\frac{d^k}{dx^k}L_n(x)
```

英語版は

```math
L_n^{(k)}(x)=(-1)^k\frac{d^k}{dx^k}L_{n+k}(x)
``` 

となります（※後述）．
左辺が一致するように式変形すれば，

```math
L_n^{(k)}(x) = (-1)^kL_{n+k}^k(x)\\
L_n^k(x)=(-1)^k L_{n-k}^{(k)}(x)
```

が得られます．
つまり，(英語版で実装されている多くのライブラリで)日本語版のラゲール多項式を計算したければ `LaguerreL[n - k, k, x]` のようにすればよいわけですね．

$L_{n+l}^{2l+1}(\rho)$ は $L_{n-l-1}^{(2l+1)}(\rho)$ となります．
ざっと見た限り，日本語文献で水素原子波動関数を解く教材ではみんな日本語版，英語文献では英語版の式が使われているようです．
これだけ違う式がはっきり分断されているのにあまり有名な話ではないようです．不思議ですね．

[^eng]: 英語版の定義では $1/n!$ の係数がついています．これは $\exp[{-x/2}]L_n^{(k)}$ が正規直交系となるよう規格化するためです．一方日本語版では最大次の係数が±1となるようになっていて， $1/n! \exp[{-x/2}]L_n^{(k)}$ の方が正規直交系となります．

[^Rodrigues]: [ロドリゲスの公式 - Wikipedia](https://ja.wikipedia.org/wiki/%E3%83%AD%E3%83%89%E3%83%AA%E3%82%B2%E3%82%B9%E3%81%AE%E5%85%AC%E5%BC%8F#:~:text=%E3%82%82%E3%81%AE%E3%81%8C%E3%81%82%E3%82%8B%E3%80%82-,%E3%83%A9%E3%82%B2%E3%83%BC%E3%83%AB%E3%81%AE%E5%A4%9A%E9%A0%85%E5%BC%8F,-%7B%5Cdisplaystyle%20L_%7Bn)

## ラゲール多項式との関係式の導出

ついでですが，途中で出てきた（※）の式を導出を計算しておきます．
ラゲール陪多項式は常微分方程式(1)の解なので，

$$
xy''+(k+1-x)y'+(n-k)y=0 \;\Leftrightarrow\; y=AL_n^k(x)
$$

（$A$ は定数）です．（この他に解がないかどうかなどの議論は省略します．）

両辺を $x$ で微分すると

```math
xy'''+y''+(k+1-x)y''-y'+(n-k)y'=0\\
x(y')''+((k+1)+1-x)(y')'-(n-(k+1))y'=0
```

となり，これは指数が $n,k+1$ のときの $y'$ の常微分方程式(1)なので $y'=L_n^{k+1}(x)$ となります．
すなわち

```math
L_n^{k+1}(x)=A\frac{d}{dx} L_n^{k}(x)
```

です．この漸化式を繰り返し適用すると帰納的に

```math
L_n^{k}(x)=A'\frac{d}{dx} L_n^{k-1}(x)=A''\frac{d^2}{dx^2} L_n^{k-2}(x)\\
=\dots=A'''\frac{d^k}{dx^k} L_n^{0}(x)
```

となり，関係式が得られます．定数は何でも良いので=1とします．
（$A', A''$ のプライムは単に別の定数の意味で微分ではありません．）

英語版でも同様に，

```math
xy''+(k+1-x)y'+ny=0 \;\Leftrightarrow\; y=AL_n^{(k)}(x)\\
```
```math
xy'''+y''+(k+1-x)y''-y'+ny'=0\\
x(y')''+((k+1)+1-x)(y')'-(n-1)y'=0\\
y'=L_{n-1}^{(k+1)}(x)
```
```math
L_{n-1}^{(k+1)}(x)=A\frac{d}{dx} L_n^{k}(x)
```
```math
L_n^{k}(x)=A'\frac{d}{dx} L_{n+1}^{(k-1)}(x)=A''\frac{d^2}{dx^2} L_{n+2}^{(k-2)}(x)\\
=\dots=A'''\frac{d^k}{dx^k} L_{n+k}^{(0)}(x)
```

となります．
こちらでは漸化式の係数をすべて-1として係数が $(-1)^k$ となるようにしているようです．
おそらく同じ $n$ の $L_n^{(k)}$ の最大次の係数が一致するようにしているのだと思います．

(2022/02/27)
なお，今回の内容は EMANの物理学 さんの解説記事 [ラゲールの微分方程式](https://eman-physics.net/math/differential20_5.html) に周辺情報や導出なども含めより詳しく解説されています．
まあ，筆者の興味に沿った流れでのまとめということで．