1.関数をベクトル的に表現する
ハイゼンベルク方程式とシュレディンガー方程式を見比べると
という対応関係をつけられそうな感じがしたんだった。演算子の行列表示をどうやってやるか、ということを考える前に、まずは演算子が働く「関数」というものをベクトル的に表してやらないと話にならない。(行列というのはそれが働きかけるベクトルがないと、ただの数の集まりであって、全く意味のないものだから。こんなことをいうと数学好きな人に怒られてしまいそうだけど。)
関数をベクトルで表すって言ったってどうやってやるんだ。普通ベクトルっていわれて思い浮かべるのは、
こういう矢印で、関数っていうのは
こういう感じの曲線だ。どこにも似てるところがないように思える。しかし、本当に関数をベクトル的に表現することができるのだ。それをここから説明しよう。
まず、「ベクトル」というものの成り立ちについて考えてみよう。ベクトル\(\b{a}\)は、よく(2,1)のように数字だけで書かれがちだが、例えばxy平面なら本当は、
\[\b{a}=2\b{e}_x + 1\b{e}_y\tag{1}\]
のようにxy軸方向の単位ベクトル\(\b{e}_x,\b{e}_y\)で書くべきところを、めんどくさいので数字だけで書いてしまっていたのだ。こういう\(\b{e}_x,\b{e}_y\)のように、組み合わせて違うベクトルを作り出すことのできるベクトルは
基底
とも呼ばれる。しかし、基底と言うのは別に\(\b{e}_x,\b{e}_y\)である必要はない。例えば上の\(\b{a}\)自身ともう一つ適当なベクトルを基底に取ったことにすれば、\(\b{a}=(1,0)\)と表すことだって可能だ。
つまり、ベクトルを表現する(*,*)という記法は、基底を選びだした上で始めて可能になるものなのだ。
このことから、例えば関数\(f(x)=3+4x\)を考えたとき、
\[f(x) = 3\cdot1 + 4\cdot x\]
は「基底」を\(1,x\)に取る、と決めてしまえば、
\[
f(x)=\left(\begin{array}{c}3\\4\end{array}\right)
\]
のように表現できるはずだ。これが関数をベクトル的に表現するということの意味である。このとき、「基底」として何を選んだのかということはとっても重要だ。例えば、さっきの例で\(2,1+x\)を基底にとったとしたら、\(f(x) =3+4x= 0.5\cdot (-2) + 4\cdot (1+x)\)だから、
\[
f(x)=\left(\begin{array}{c}0.5\\4\end{array}\right)
\]
と、ぜんぜん違う表現もできてしまうから。
ここまでは簡単に二成分のベクトルで説明したが、これだと複雑な関数は表現できない。(もちろん複雑な関数それ自身を基底として取ってしまえばできないことはないのだが、そんなことをしてもなんの意味もないからそういうことは考えない。)
複雑な関数を簡単な関数の組み合わせで表現する方法といえば、例えば
テイラー展開
\[f(x)=\sum_n a_n x^n\tag{2}\]
やフーリエ展開
\[f(x)=\sum_n c_n e^{inkx}\tag{3}\]
がある。これならかなり広い範囲の関数を扱える。これらをベクトル表記するとなれば、テイラー展開なら
\[f(x) = \left(\begin{array}{c}a_0\\a_1\\a_2\\\vdots\end{array}\right)\tag{4}\]
フーリエ展開なら
\[f(x) = \left(\begin{array}{c}c_0\\c_1\\c_2\\\vdots\end{array}\right)\tag{5}\]
とできるだろう。このとき、基底としては\(x^n\)だったり、\(e^{inkx}\)だったりを使っている。
これらの例からわかることは、関数は
基底
を適切に選んであげれば、ベクトル的に表現することが可能である、ということだ。もちろん、(10)や(11)からもわかるように、このベクトルが有限の次元で収まることはどちらかと言えば稀で、一般には無限次元のベクトルになってしまうが。
じゃあ具体的にベクトル表現した関数というのはどうやって求めてあげればいいんだろうか。
2.関数をベクトルにする具体的な計算方法・フーリエ展開の例
例えばフーリエ展開では、各係数\(c_n\)は次のように求めることができた。
\[c_n=\frac{k}{2\pi}\int_0^{2\pi/k}f(x)e^{-inkx}dx\tag{6}\]
なぜこの方法でよかったのかというと、\(f(x)\)をフーリエ展開した形、
\[f(x)=\sum_m c_m e^{imkx}\tag{7}\]
を右辺に代入してやればすぐに分かる。実際にやってみると、
\begin{align}
\frac{k}{2\pi}\int_0^{2\pi/k}f(x)e^{-inkx}dx &= \frac{k}{2\pi}\int_0^{2\pi/k}\left(\sum_m c_m e^{imkx}\right)e^{-inkx}dx \\
&= \frac{k}{2\pi}\sum_m c_m\int_0^{2\pi/k}e^{i(m-n)kx}dx
\end{align}
ここで\(m\neq n\)のときは波を一周期分積分することになるので結果はゼロになる。だから和は\(m=n\)の場合だけが残り、
\begin{align}
&=\frac{k}{2\pi}c_n\int_0^{2\pi/k}dx\\
&=c_n
\end{align}
となるのだ。
3.直交性
こんなに計算がうまくいくのは、\(m\neq n\)のとき積分
\[\int_0^{2\pi/k}e^{imkx}e^{-inkx}dx\]
が0になってしまう、という事実がとても大きな役割を果たしている。この性質を指して、\(e^{imkx},e^{-inkx}\)が
直交している
と言われることがある。なぜそんなふうに言われるのだろうか。
実はこういう積分は、線形代数において定義される内積の性質をすべて満たしていることが示せる。つまりベクトル同士で行う内積という演算そのものになっているのだ。そのことを示すのはなんちゃら空間やらノルムやらの知識が必要になるから、ここでは説明しないが、一般に関数\(f(x),g(x)\)の内積は
\[f\cdot g =\int f^*(x)g(x)dx\tag{7}\]
と定義される。あんまり左辺みたいな書き方をした教科書は見たことないけど。(積分範囲は考える時々で違うから書かなかった。)とにかくこういうふうにすると内積の性質を満たす、ということだけ覚えておけばいいと思う。*は複素共役を表しているが、複素共役にするのは自分自身との内積が
\[f\cdot f =\int f^*(x)f(x)dx=\int |f(x)|^2dx\]
というふうに正の実数になるようにしたかったからだ。これで\(f\)の「長さ」\(\|f\|^2\)が+の実数になって都合がいいのだ。
脇道にそれたが、そういうわけで、フーリエ展開の基底\(e^{inkx}\)は
直交基底
である。これは、さっきも言ったように、
\[\int_0^{2\pi/k}(e^{inkx})^*e^{imkx}dx = \int_0^{2\pi/k}e^{-inkx}e^{imkx}dx=\frac{2\pi}{k}\delta_{mn}\tag{8}\]
が成り立っているからだ。
また、ベクトルの場合と同じように、関数に対しても
正規直交基底
というのを考えることができる。
正規直交基底
というのは、
直交基底
の中でも、それぞれの基底の「長さ」が1であるようなものをいう。さっきから言っているフーリエ展開の基底\(e^{inkx}\)はこのままでは正規ではない。なぜかといえば、
\[\int_0^{2\pi/k}(e^{inkx})^*e^{inkx}dx=\frac{2\pi}{k}\tag{9}\]
で1じゃないからだ。じゃあ正規にするためには、右辺を1にすればいいのだから、両辺を\(2\pi/k\)で割ると、
\begin{align}
\frac{k}{2\pi}\int_0^{2\pi/k}e^{inkx}(e^{inkx})^*dx&=1\\
\int_0^{2\pi/k}\left(\sqrt{\frac{k}{2\pi}}e^{inkx}\right)\left(\sqrt{\frac{k}{2\pi}}e^{inkx}\right)^*dx&=1
\end{align}
とできるから、つまり
\[\phi_n(x) =\sqrt{\frac{k}{2\pi}}e^{inkx}\tag{10}\]
という関数\(\phi_n\)は正規直交であると言えるだろう。これまでの計算からわかるように、
\[\int_0^{2\pi/k}\phi_n^*(x)\phi_n(x)dx=1\tag{11}\]
が成り立つから。
4.正規直交基底による関数の展開
ここからはフーリエ展開の例は一旦忘れて、一般論に入ろう。まず\(\phi_n(x)\)という正規直交な関数たちがあるとする。ここで正規直交である、と言うのは、
\[\phi_m\cdot\phi_n=\int\phi_m^*(x)\phi_n(x)dx=\delta_{mn}\tag{12}\]
が成り立っているという意味である。こういう関数の例として、(10)のような関数がありうる。
この正規直交な関数たちによって、ある関数\(f(x)\)を
\[f(x)=\sum_na_n\phi_n(x)\tag{13}\]
というように表すことができたとする。これは、(7)のフーリエ級数に相当する式になっているのだ。このとき、\(f\)というのは、基底を\(\phi_n\)にとる、というふうに決めてしまえば、
\[f(x) = \left(\begin{array}{c}a_0\\a_1\\a_2\\\vdots\end{array}\right)\tag{14}\]
のようにベクトル表現することができるのだ。
正規直交基底を使うのは、このベクトルの各成分\(a_n\)を求めるのが簡単になるからだ。フーリエ展開の係数を求める(6)式というのは、\(e^{inkx}\)がそれぞれ直交していたからできる技だった。
具体的に\(a_n\)を求めるには、フーリエ展開のときと同じように、次のようにすればいいことがわかるだろう。
\[a_n=\phi_n\cdot f=\int\phi_n^*(x)f(x)dx\tag{15}\]
この右辺について具体的に計算してみるとすぐにこれが正しいことは確かめられる。やってみると、
\begin{align}
\phi_n\cdot f &= \phi_n\cdot\sum_ma_m\phi_m\\
&=\sum_ma_m(\phi_n\cdot\phi_m)\\
&=\sum_ma_m\delta_{nm}\\
&=a_n
\end{align}
となってよいことがわかる。
つまり、正規直交な基底\(\phi_n\)によってある関数\(f\)が展開されるとき、\(f\)のベクトル表示は、
\[f(x) = \left(\begin{array}{c}\phi_0\cdot f\\\phi_1\cdot f\\\phi_2\cdot f\\\vdots\end{array}\right)\tag{16}\]
と書くことができるわけだ。(16)が今回のとりあえずの結論である。
4.基底の完全性
(13)のように関数を展開できるとしてここまで話を進めてきたが、どんな関数でも(13)のように表せるとは限らない。例えばフーリエ展開では、周期関数しか(13)のように展開することはできない。
ある条件はつくものの、その条件を満たす任意の関数・ベクトルを展開できる基底は
完全
であると言われる。
そういう意味で、フーリエ展開の基底\(\sqrt{\frac{k}{2\pi}}e^{inkx}\)は
完全正規直交基底
であると言われることもある。
次に少しだけ完全な基底に関する性質を書いておこう。もし基底が完全正規直交系で適当な関数を展開できている場合、(15)のように\(a_n\)を求めることができるから、次のような関係が成り立つ。
\[f=\sum_n(\phi_n\cdot f)\phi_n\tag{17}\]
これを少し見方を変えてやると、
\[f=\left(\sum_n\phi_n\phi_n\cdot\right) f\tag{17}\]
ここで\(\left(\sum_n\phi_n\phi_n\cdot\right)\)をひとつの演算子\(\hat{A}\)だと考えて、
\[\hat{A}=\left(\sum_n\phi_n\phi_n\cdot\right)=\hat{I}\tag{18}\]
とすると、(17)からこの演算子は\(f\)を\(f\)に写すものになっていることがわかる。こういうなにも変化させない、という変換は
恒等変換
\(\hat{I}\)とも呼ばれる。
(18)式は完全系に関する重要な性質で、量子力学の本では必ず紹介されている。
ちょっと長くなってしまったし、演算子を行列表現するのは次回に回そう。