物理を解説 ♪
ツイッター用のシェアボタン フェイスブック用のシェアボタン はてなブックマーク用のシェアボタン ライン用のシェアボタン
ツイッター用のシェアボタン フェイスブック用のシェアボタン はてなブックマーク用のシェアボタン ライン用のシェアボタン

ラゲールの微分方程式

水素原子の動径波動関数を表すときに利用する。
作成:2022/2/25

概要説明

次の形の微分方程式を「ラゲールの微分方程式」と呼ぶ. 数式 nが非負の整数のときには有限次の多項式の形の解を持つことが分かっている.それを「ラゲールの多項式」と呼び,L_n(x)という記号で表す.nが負の場合や整数でない場合には無限級数の形の解を持つが,物理的な条件が合わないことが多いので物理学者にとってはあまり関心がないのである.それについては後で話そう.

(1) 式をほんの少し拡張した次のような微分方程式も有名で,ラゲールの陪微分方程式」と呼ぶ. 数式 こちらはnkが整数で,n≧k≧0という条件を満たすときに有限次の多項式の形の解を持つことが分かっている.それを「ラゲールの陪多項式」と呼び,L_n^k(x)という記号で表す.

「陪」は「倍」という字と間違える可能性があるので注意が必要である.この「陪」は「付随する」というような意味である.英語では associated であって,「ラゲールの随伴多項式」と訳されていることもある.本当に「関連して出てくる別の形の式」というくらいの軽い意味で使われていて,ただの多項式と陪多項式との関係に数学的な定義があるわけではなさそうである.

(2) 式を「ラゲールの陪微分方程式」と呼んでいる事例が教科書でもほとんど見つからなくて不安だったのだが,無理やり検索したらごく少数だけ使用している人たちがいるのが見つかったのでこの記事でもそのように言い切ってしまうことにした.「ルジャンドルの陪微分方程式」というものもあるのだから,この呼び方で問題ないとは思う.人々の関心は条件付きの解である「ラゲールの陪多項式」の方に集中していて,「ラゲールの陪微分方程式」の方を呼ぶ必要があまりないのかもしれない.


陪多項式との関係

まずは (1) 式と (2) 式の関係を話しておこう.(1) 式の全体をxで 1 回だけ微分してやると次のようになる. 数式 1 回やれば変化のパターンが読めると思うのだが,念の為にさらにもう一度微分すると次のようになる. 数式 どういう変化が起きるか,お分かり頂けただろうかこの調子で全部でk回微分すれば (2) 式とそっくりな形になる.ただし関数y(x)k回多く微分されているという点だけが違う.つまり,(1) 式の解y(x)k回微分したものが (2) 式の解になっているということを意味している. 数式 何とかして (1) 式の解を求めてやってからそれをk回微分してやれば (2) 式の解が得られるのである.いや,何とかして (2) 式の解を求めてやってからkに 0 を代入して (1) 式の解を求めることもできそうだ.一体どちらが楽なのだろう


ソニンの多項式

実は (1) 式や (2) 式に良く似た次のような微分方程式もある. 数式 nkは非負整数である.この式を満たす関数y(x)のことを「ソニンの多項式」と呼ぶのだが,困ったことにこちらを「ラゲールの陪多項式」と呼び,L_n^k(x)という記号で表すという流儀が存在しているのだ.紛らわしい

例えば日本語版の Wikipedia では (2) 式の定義で説明しているが,英語版の Wikipedia では(6) 式を「ラゲールの陪多項式」あるいは「一般化されたラゲールの多項式」として解説している.他にも,科学計算ソフトウェアの Mathematica や WolframAlpha や SciPy や Matlab で使われる関数がこちらの方程式を使った定義を採用している.

おそらくは (2) 式のように数式内の 2 箇所にkが使われているのがスマートではない感じで気に入らなかったりするのだろう.(2) 式にn≧kという条件が付属するのも無駄であって,(6) 式の定義を採用するのならそんなものは必要ないのである.k=0のときにラゲールの多項式に一致するというのはどちらも同じである.

多項式 y を定数倍した ay も同じ微分方程式を満たすので,方程式だけでは多項式の値は一通りには定まらない.科学計算ソフトで使われる関数がどのような基準で定数を決めて値を返しているのかは確認しておく必要がある.それについては後の方でもう少し詳しく説明しようと思う.

この記事ではソニンの多項式をS_n^k(x)と表すことにしよう.このようにはっきり記号を分けた方が混乱がなくて済むだろう.(6) 式のnの部分をn-kに変えたものが (2) 式なので,S_{n-k}^k(x)が (2) 式の解になっていると言える.つまり次のような関係が成り立つだろう. 数式 あるいは (2) 式のnのところにn+kを代入すれば (6) 式になるので次のように書いてもいい. 数式 ただし何らかの定数分だけの違いがある可能性があって,この関係は厳密ではない.定数の違いは本質ではなくて,どんな定数が付いていようとも微分方程式の解にはなっているのだが,それぞれの教科書やソフトウェアで多項式について異なる定義がしてある場合にはそれらを換算してやる必要が出てきたりもする.その定数の値はnkに依存している可能性もあるから面倒である.

もう一つ気を付けておいた方がいいことがある.(8) 式の意味を考えると分かることだが,ソニンの多項式は,L_n(x)ではなくL_{n+k}(x)k階微分したものである.ソニンの多項式の方が何もかもスマートだというわけではなく,L_n(x)との関係についてはこちらの方が少し面倒くささが入っていたりするのである.


解を求める

取っ掛かりとして (1) 式の解を求めてみよう.解は次のような形に表せると仮定する. 数式 これを (1) 式に代入すると次のようになる. 数式 展開したりして少し整理してみる. 数式 xの次数の表示を揃えた方がまとめやすいので,和の記号の開始のmの値を調整することで対処する. 数式 m=1以降の項はひとまとめにできるだろう.m=0のところだけは和の記号を使わずに表すことにする. 数式 xの各次数ごとの係数が 0 になっていなくてはならない.つまりカッコの中が 0 になっていなくてはならないので,次の関係が成り立つ. 数式 次のように書けば漸化式らしくなるだろう. 数式 第 1 の式は,第 2 の式でm=0とした場合と同じなので,実は第 2 の式だけあれば十分である.

y(x)を定数倍したものはどれも解になるのだから最初の値を幾つにすべきかはどうでもいい.適当にa_{0}=1から始めてやればいいだろう.(15) 式を見て分かることだが,m=nとなった時点でその次の係数は 0 になり,それ以降の係数はずっと 0 になる.つまり,この級数は無限には続かずにx^nが最高次となるというわけだ.

もしもnが整数でなかったり負の値だったならば,そのような瞬間は訪れず,項は無限に続くことだろう.


nは非負整数でなければいけないか

この級数が無限に続く場合に何か問題が起こるのかどうかが気になるところだ.m→∞では (15) 式は次のような形に近付くことになる. 数式 項の符号が毎回入れ替わるということもなくなる.ダランベールの方法を当てはめてみると収束半径は無限大であり,xにどんな値を入れても発散しないことが分かる.(ダランベールの判定法は「収束,発散の判定法」という記事の最後の方を参考にしてほしい.)そしてこの振る舞いは指数関数e^xのテイラー展開とほとんど違いがない. 数式 指数関数の場合はa_{m+1}=a_m/(m+1)だが,mが大きくなるほど (16) 式との違いはほとんど無視できるほどになっていく.

何も問題はない

ただ,物理学に応用するときに指数関数のような振る舞いをする関数は欲しくないことが多いので,それ以外の振る舞いをする条件としてnが非負整数である場合に限定して考えるのである.だから「ラゲールの微分方程式」や「ラゲールの陪微分方程式」そのものに直接取り組むことを避けて,「ラゲールの多項式」や「ラゲールの陪多項式」という言葉をいきなり持ち出してきたりするのである.

豆知識:nが非負整数でない場合の解を「ラゲール関数」と呼ぶようである.


解の具体的な形

解がどんな形になるかを具体的に見てみたいだろう.ところがa_{0}=1から始めるとちょっとした問題が起こる.a_{1}は絶対値が必ず 1 より大きくなるが,(15) 式を見ても分かるように,分母が大きくなり続け,分子が小さくなり続けるので,最高次の係数が 1 よりかなり小さな値になってしまう場合が多いのである.係数が分数やら小数やらで表されるのは見た目があまりきれいではない.

それでもとりあえずやってみよう.一般項を求めるのは全く難しくはない.値を一つずつ変化させながら掛け合わせていくことで次の項が求まるのだから階乗を使って表せるだろう. 数式 なぜこうなるのかが理解できなければ,具体的な数字を使って一つ一つ掛け合わせていくのを試してみることをお勧めする.私もそうしてみた.

この式を見ると組み合わせの数の公式と同じ_nC _m =n!/(m!(n-m)!)という形が含まれている.とは言っても,今回は組み合わせとは関係ない話なので,同じ内容を表す二項係数の記号で表すのが好まれたりする.これを使うと (18) 式はかなりシンプルに書き直せる. 数式 これを使って「ラゲールの多項式」は次のように表すことが出来る. 数式 この式は定義ではないことに気を付けてほしい.これを定数倍したものもラゲールの微分方程式を満たすのだから,あちこちの文献やソフトウェアによってそれぞれの立場で都合の良い独自の調整が入っていたりする.先ほども書いたように,この (20) 式を使うと最高次の係数は 1 よりはるかに小さな値になってしまう.どれくらい小さいだろうか(19) 式にm=nを代入すると最高次の係数はa_n =(-1)^n /n!だと分かる.ということは,(20) 式の全体に(-1)^n n!を掛けてやれば,最高次の係数が 1 に統一されて,具体的に書き並べてみたときの見た目が気持ちよくなるだろう.次のような具合だ. 数式 全ての係数が整数で表されていることも嬉しい.そうなる理由は明らかだろう.(20) 式のm!の部分と後から掛けたn!の部分がきれいに約分されるからである.この具体例も一例であって定義ではないので気を付けてほしい.


ロドリグの公式

L_n(x)を表す方法は (20) 式のように和の記号を使う方法だけではない.もっとシンプルに一つの式で表せる式があって「ロドリグの公式」と呼ばれている.ロドリグの公式はエルミート多項式にもルジャンドル多項式にもそれぞれ別の形のものが出てきたのだった.今回は次のような形をしている. 数式 これを計算してやると次のようになって (21) 式とは少し違っている. 数式 これは符号が違うだけのことだから気にする必要もない.(22) 式があまりにシンプルなので,これを定義として採用している文献は多いようである.

さて,ラゲールの陪多項式L_n^k(x)はラゲールの多項式L_n(x)k回微分したものだったので,次のように書いておけばいい. 数式 こちらについても,これを定数倍したものを定義として採用しても何ら問題はない.せっかくシンプルなのだからあまり付け足したくない気はするが,それぞれの都合というものがあるから好きにすればいい.


科学計算ソフトの定義

先ほど,代表的な科学計算ソフトでのラゲールの陪多項式の定義がこの記事で説明している流儀とは少し違うものが使われているという話をした.ところが,陪多項式L_n^k(x)だけではなくラゲールの多項式L_n(x)の方の定義も少し変わった形になっているようである.ちょっと説明しておこう.

と思ったが,改めて調べてみると Wolfram Alpha では (20) 式をそのまま採用しているようである.つまり必ずa_{0}=1となるように決めている.そして (20) 式と一致させるために,ロドリグの公式の方の係数を変更して次のように表記している. 数式 Mathematica と Wolfram Alpha は開発元が同じなのでおそらく同じ仕様だろう.MatlabSciPy も同じ仕様のようだった.これらのリンク先にある仕様説明ページを見ただけではどうにも分かりにくい.というのも,どうやら「陪多項式L_n^k(x)k=0としたものをL_n(x)とする」という方針で決めているようであって,陪多項式の仕様説明の方を読んでみないと分からない形になっているからである.

では「ラゲールの陪多項式」の定義を眺めてみよう.興味深いことにWolfram社による解説ページで「詳細」のところを開いて読むと,「ここでの定義は,ソニン(Sonine)の多項式とよばれるものと同じである」と断言してくれている.ソニンの多項式の存在を分かった上でわざと名前を被せてきているのだな

なぜこの流儀を採用しているのかについては過去の数学論文の歴史的経緯というものもあるのだろう.私はそこまで追う気にはなれなかった.

さて,Wolfram Alpha からリンクされている別の解説ページでは次のような式が載っている.(ただし今回の私の記事ではL_n^k(x)と書くと紛らわしいのでS_n^k(x)に書き換えて転載することにする. 数式 「ソニンの多項式はL_{n+k}(x)k階微分したものだ」という部分は既に説明した通りだが,(-1)^kが余分に付いている.これが付くことの意味を考えてみたが,どうやら定数項が常に正になるように調整しているらしい.つまり,多項式をグラフで表したときにx=0での値が必ず正になるようにしたいという美意識によるのではないだろうか.

他にも幾つかの式が載っているのでそれについても確かめておこう.次のような式が載っている. 数式 科学計算ソフトのほとんどはL_n(x)は (20) 式で定義されているのだった.それを (26) 式に代入して計算してやるとちゃんとこの形になることが分かる.

もう一つ分からないのが次の式だ. 数式 (25) 式を (26) 式に代入してこの形にならないといけないのだが,ずいぶんとあっさりした形に変わっていて計算過程がよく分からない.(24) 式にも似ていなくて,こんな形になる気が全然しないのである.私自身がこれでかなり悩んだので,他の人が同じくらい長い時間悩まなくても済むようにここでやっておこう.

関数の積をk階微分したものが二項係数を使って表せるという「一般化ライプニッツ則」を知らなかったのが致命的だった.しかしそれだけ知っていれば解けるというものでもなかった.コツが幾つかある.先にL_{n+k}の中のn+k階微分を計算してしまってe^{-x}を一旦式から消してしまうことが重要である.目的の式に近付こうとして慌ててe^{x}をくくり出すことを考えない方がいい.e^{-x}が消えればk階微分を楽に実行できて式が複雑にならないで済む.注意点はまだある.n+k階微分を一般化ライプニッツ則で書き換えるときにどちらを先に微分する形で書くかという二通りの選択肢がある.ここで選択を間違えると行き詰まる可能性が高い.最後の方は,欲しい結論の方から逆にたどって無理やり合わせた.そこでもまたライプニッツ則を使ったのである. 数式 こうして (28) 式も (26) 式と矛盾しないことが確かめられた.

さて,MatlabSciPy はどうだろうかちょっと分かりにくいのだが,これらはどちらも超幾何関数_{1}F_{1}(a;b;x)というものを使って次のように定義しているのである. 数式 超幾何関数とは何だろうかどうやら,特殊関数などを表す色々な微分方程式の解をまとめて表すことのできる便利な形式の関数のようである.超幾何関数にもあれこれ種類があるようだが,ここで使われている超幾何関数の定義はこちらのSciPyのリファレンスページで次のように定義されている. 数式 この式の中にある(a)_m(b)_mは「ポッホハマー記号」と呼ばれるもので,SciPyのページにて次のように定義されている. 数式 このΓ(z)というのはガンマ関数と呼ばれるもので,階乗を拡張したものである.変数が正の整数の時にはΓ(n)=(n-1)!という関係になっている.ああ,ひどいたらい回しだこれで解読に必要な情報は全部揃っただろうかいや,(30) 式の中で-nというものを使っているせいで,これをそのまま代入しようとすると「負の階乗」が出てきてしまう.そんなものは定義されていないのである.ではどうしたらいいだろうか.実は (32) 式のzの部分が負の値の時には次の関係が成り立つことがガンマ関数の性質から言えるのである. 数式 このことを考慮して非負整数nについて表すと,次の関係が成り立っていることになる. 数式 これらを使って (30) 式から始まる情報をまとめると次のようになる. 数式 途中で和の範囲が変わっているのは,ガンマ関数が 0 以下の整数のところで毎回無限大に発散する性質があるためである.分母にある(n-m)!に該当する部分が無限大になるので,m>nになる項は消えてしまうのである.

この結果は (27) 式と同じであり,ひと安心だ.ここまでに例を挙げたどの科学計算ソフトもラゲールの陪多項式に関して同じ定義を採用していることが分かった.


ロドリグの公式の証明

ロドリグの公式が成り立つ理由は説明しないつもりだったのだが, (29) 式のような計算をあれこれ試しているうちに,それくらいは簡単に出来るのではないかと思えるようになってしまった.実際とても簡単だった.

例えば (25) 式から始めて計算してやると次のようにして (20) 式と同じものが出来上がる. 数式


一旦休憩

今回は母関数表示についても書いておきたかったのだが,話が長くなってきてしまったのでこれくらいにしておこう.

ほとんどの人にとっては必要ないとは思うが,ラゲールの多項式やラゲールの陪多項式を含む関数の規格化を計算する際に母関数が必要になるようである.今回の記事はその計算を説明するための参考記事として書き始めたのである.

さらには母関数を経由することでロドリグの公式をもっと自然に導くことが出来るようである.今回は話の流れで直接的に証明してしまったが,それについてもまとめてみたい.こんな妙な式を一体どうやって思い付くことができたんだと不思議に思っていた.その疑問が解けるかもしれない.

近いうちに続きの記事を書く予定である.



趣味の物理学書店の案内バナー

EMAN物理note出張所の案内バナー