物理とか

Index

ブラケット記法とヒルベルト空間


1.関数↔ベクトル・演算子↔行列

関数\(\psi(x)\)・演算子\(\hat{A}\)はベクトル\(\psi=\{\psi_n\}\)・行列\(A=\{A_{mn}\}\)で表すことができる。それには正規直交基底\(\phi_n(x)\)というのを使って、 \[\begin{align} \psi_n&=\int\phi_n^*(x)f(x)dx\\ a_{mn}&=\int\phi_m^*(x)\hat{O}\phi_n(x)dx \end{align}\tag{1}\] というように計算すればよかった。関数のベクトル表現演算子の行列表現参照。

しかし、こういうのを統一的に表現できる方法があると嬉しいところだ。そういう表現方法があれば、計算してるときに、今自分が扱っているのが関数によって表記された\(\psi\)なのか、(1)のようにベクトル表記された\(\psi\)なのか、ということをいちいち考えなくても良くなる。

2.ヒルベルト空間

量子力学の体系を整理していく中で、

ヒルベルト空間

という空間を考えると、実はその枠組のなかで、関数とベクトルを全く同一視して表現できることが発見された。

出た、量子力学でよく聞くヒルベルト空間という単語。響きはかっこいいが、一体どういう空間なのか。

適当に説明するからあんまり本気にはしないでほしいが、僕が持っている感覚を書いてみることにしよう。

ヒルベルト空間とは、とんでもなく広いベクトル空間である。本当にとんでもなく広いのだ。当然有限次元のベクトルはすべて含むことができるし、可算無限次元 (要するに整数全体と同じ個数次元)のベクトルはおろか、不可算無限次元 (こういう言い方が正しいかどうかは知らないが、実数とおなじ個数をもった次元)なんていうわけのわからないベクトルだってヒルベルト空間の中に含むことができる。関数も、よっぽど変な関数でない限りはヒルベルト空間の一要素として考えることができるのだ。だからヒルベルト空間で波動関数を考えると、うまいこと表現できるわけ。

しかもヒルベルト空間には、内積が定義されている。内積が定義されているというのはどういうことかというと、それぞれのベクトルの間の「角度」のようなものが存在する、ということだ。このことによって、無限の次元を持つヒルベルト空間であっても、僕達の生きている3次元空間での幾何学的な直感が使えることが多い。これはとっても便利な性質だ。

最後にヒルベルト空間の大事な性質として、隙間がないということが挙げられる。ヒルベルト空間の中のベクトルは、実数と同じくらい密に存在している。つまり、どれだけ近くのベクトルを2つとっても、その間には必ずベクトルが存在するということだ。こういうことがないと、例えば微分がうまいこといかなくなる。

そしてこういうベクトルたちを統一的に表現できる方法として、ディラックによって考え出されたのが

ブラケット記法

だ。この記法では 今までベクトル\(\psi\)や関数\(\psi(x)\)と表記されていたものをひっくるめて、\(\ket{\psi}\)と表記する。これはケットベクトルと呼ばれる。

また、\(\ket{\psi}\)を何らかのベクトルと内積をとる、という演算子を\(\bra{\psi}\)と表記する。こちらはブラベクトルと呼ばれる。

したがって、いままで内積を \[\int f^*(x)g(x)dx\] のように表記していたが、この記法を使えば、内積は \[\braket{f}{g}\] と書かれることになって簡単に書けるのだ。

3.ブラケット記法を試してみる

例えば、完全正規直交基底のベクトルを\(\ket{n}~(n=1,2,3,...\)と書くことにすると、その正規直交性は \[\braket{m}{n}=\delta_{mn}\] と書かれる。関数で\(\int\phi^*_m\phi_ndx=\delta_{nm}\)と書かれていたときに比べたら、とっても簡単に見えるだろう。

さらに関数\(\ket{f}\)を\(\ket{n}\)によって展開する、ということを式で表すと、 \[\ket{f}=\sum_n a_n\ket{n}\] である。したがって、ある係数\(a_k\)を求めたいなら、左から\(\bra{k}\)を書けてみればよくて、 \[\braket{k}{f}=\sum_n a_n\braket{k}{n}=a_k\] となる。これをもとの展開式に代入すると、 \[\ket{f}=\sum_n \braket{n}{f}\ket{n}\] ちょっと順番を変えると、 \[\ket{f}=\sum_n\ket{n}\braket{n}{f}\] これの見方を少し工夫して、 \[\ket{f}=\left(\sum_n\ket{n}\bra{n}\right)\ket{f}\] のようにみると、 \[\sum_n\ket{n}\bra{n}\] という演算子は、\(f\)を\(f\)に変換するという作用を表すことがわかる。これはつまり変換しないということであり、 \[\sum_n\ket{n}\bra{n} = \hat{1}\] のように書かれることもある。これは展開係数を求めて足し合わせればもとの関数を再現するという性質、つまり完全性を示している。

まあこんなもんでいいだろう。このページはmathjaxのマクロの確認の意味もあったので、わりかし適当に作ったものだ。