ブラケット記法

量子力学でよく使う。 ここからは物理の流儀で行こう。

[
前の記事へ]  [物理数学の目次へ]  [次の記事へ]


エルミート共役で内積を表す

 二つのベクトル\( \Vec{x} \)\( \Vec{y} \)の内積を表すときに、転置行列の記号を使えば\( ^{t}\Vec{x} \, \Vec{y} \)のようにシンプルに書けるのだった。
\[ \begin{align*} ^{t}\Vec{x} \, \Vec{y} \ =\ \left( x\sub{1} \ x\sub{2} \ \cdots \ x\sub{n} \right) \left( \begin{array}{c} y\sub{1} \\ y\sub{2} \\ \vdots \\ y\sub{n} \end{array} \right) \ =\ x\sub{1} y\sub{1} \ +\ x\sub{2} y\sub{2} \ +\ \cdots \ +\ x\sub{n} y\sub{n} \end{align*} \]
 しかし複素ベクトルの内積の場合には一方のベクトルの複素共役を取ってからいつもの内積を計算する必要がある。物理の場合には左側の方のベクトルの複素共役を取るというルールが採用されているのだったから次のように書くといいだろう。
\[ \begin{align*} ^{t}\Vec{x}^{\ast} \, \Vec{y} \ =\ \left( x\sub{1}^{\ast} \ x\sub{2}^{\ast} \ \cdots \ x\sub{n}^{\ast} \right) \left( \begin{array}{c} y\sub{1} \\ y\sub{2} \\ \vdots \\ y\sub{n} \end{array} \right) \ =\ x\sub{1}^{\ast} y\sub{1} \ +\ x\sub{2}^{\ast} y\sub{2} \ +\ \cdots \ +\ x\sub{n}^{\ast} y\sub{n} \end{align*} \]
 しかしベクトル\( \Vec{x} \)の左右の肩に記号が付くというのも煩わしい。この状況を一度に表せるような記号を用意してやると便利であろう。短剣(ダガー)のマーク\( \dagger \)を右上に付けることで「行列を転置してさらに複素共役も取る」という操作を表すことにする。そうすれば\( \Vec{x}^{\dagger} \, \Vec{y} \)と書くだけで複素ベクトルの内積が表せるようになる。

 \( \Vec{x}^{\dagger} \)のことを\( \Vec{x} \)の「エルミート共役」と呼ぶ。式を読むときは「エックス・ダガー」のように発音する。

 \( \Vec{x} \)のエルミート共役が\( \Vec{x}^{\dagger} \)であるのと同じく、\( \Vec{x}^{\dagger} \)のエルミート共役は\( \Vec{x} \)である。\( \Vec{x} \)\( \Vec{x}^{\dagger} \)とは互いにエルミート共役の関係だと言った方が分かりやすいか。

 数学での内積では右側に来るベクトルの複素共役を取るのが主流なので、ベクトルに対してエルミート共役を取る機会というのはあまりない。しかし行列に対してエルミート共役を考えることなら良くある。ただし数学書では\( A^{\dagger} \)の代わりに\( A^{\ast} \)のように表していることが多いので注意が必要である。物理では\( \ast \)という記号を複素共役の意味で使っているので、\( A^{\ast} \)と書いた場合、行列\( A \)内の全ての成分を複素共役に変えるという意味になってしまう。

 物理と数学では使っている記号も少しばかりズレているのである。

 行列\( A \)のエルミート共役を取った行列\( A^{\dagger} \)のことを「\( A \)随伴行列」と呼ぶことがある。「\( A \)のエルミート共役」と呼んでもいいが、「エルミート行列」と呼んではいけない。なぜなら「エルミート行列」は別の意味で使われているからである。それは次回にでも説明しよう。


ブラとケット

 前回は内積を\( \langle \Vec{x} | \Vec{y} \rangle \)と表していた。これは\( \Vec{x}^{\dagger} \, \Vec{y} \)と同じものである。そういうことなら、\( \langle \Vec{x} | \Vec{y} \rangle \)を真ん中で真っ二つに分けて、\( \langle \Vec{x} | \)\( | \Vec{y} \rangle \)という記号でベクトルを表してはどうだろうか?\( \langle \Vec{x} | \)\( \Vec{x}^{\dagger} \)と同じものであり、\( | \Vec{y} \rangle \)\( \Vec{y} \)と同じものだと考えるのである。

 そうすれば、ベクトル\( \langle \Vec{x} | \)とベクトル\( | \Vec{y} \rangle \)とがこの順序で組み合わさった時に内積\( \langle \Vec{x} | \Vec{y} \rangle \)になることが視覚的にも自然に感じられて面白いし分かりやすい。

 内積の括弧(ブラケット)を二つに分けたものなので、\( \langle \Vec{x} | \)を「ブラ・ベクトル」と呼び、\( | \Vec{y} \rangle \)を「ケット・ベクトル」と呼ぶ。短く「ブラ」「ケット」とだけ呼ぶことの方が多いと思う。

 こうやって説明されれば、次のような関係になっているのはもう当然に思えるだろう。

\[ \begin{align*} &\langle \Vec{x} | \ \;\, =\ | \Vec{x} \rangle^{\dagger} \\ &\langle \Vec{x} |^{\dagger} \ =\ | \Vec{x} \rangle \end{align*} \]
 もう少し難易度を上げよう。ベクトル\( | \Vec{x} \rangle \)が行列\( A \)によって変換されてベクトル\( |\Vec{z} \rangle \)になっているとする。
\[ \begin{align*} | \Vec{z} \rangle \ =\ A \, | \Vec{x} \rangle \tag{1} \end{align*} \]
 ここで\( |\Vec{z} \rangle \)を使ったのは、先ほどから使っている\( |\Vec{y} \rangle \)とは全く関係ないベクトルだと強調したかっただけであって、アルファベットには何の意味もない。さて、この\( |\Vec{z} \rangle \)のエルミート共役\( |\Vec{z} \rangle^{\dagger} \)それはすなわち\( \langle \Vec{z} | \)のことだが、それを\( A \)\( | \Vec{x} \rangle \)を使って表すとしたらどう書けるだろうか?

 ちょっと準備をしよう。「二つの行列の積」を転置した行列は、それぞれの行列の転置行列を順序を入れ替えて積を取るのだった。

\[ \begin{align*} ^t(AB) \ =\ ^tB^tA \end{align*} \]
 また、複素数の積の全体の複素共役\( (ab)^{\ast} \)は、それぞれの複素共役を取って積を取ればいいのだった。\( (ab)^{\ast} = a^{\ast} b^{\ast} \)だ。行列の時にも同じである。
\[ \begin{align*} (AB)^{\ast} \ =\ A^{\ast}B^{\ast} \end{align*} \]
 積のエルミート共役はそれらの合わせ技に過ぎないので、次のように計算できることになるだろう。
\[ \begin{align*} (AB)^{\dagger} \ =\ B^{\dagger}A^{\dagger} \end{align*} \]
 これを使えば、次のような変形ができることになる。
\[ \begin{align*} \langle \Vec{z} | \ =\ | \Vec{z} \rangle^{\dagger} \ =\ \big(A \, | \Vec{x} \rangle \big)^{\dagger} \ =\ | \Vec{x} \rangle^{\dagger} A^{\dagger} \ =\ \langle \Vec{x} | \, A^{\dagger} \end{align*} \]
 毎回こんな風に計算過程を考えなくても、(1) 式を見たら脊髄反射的に
\[ \begin{align*} \langle \Vec{z} | \ =\ \langle \Vec{x} | \, A^{\dagger} \tag{2} \end{align*} \]
という関係が思い浮かぶくらいに慣れておくことをお勧めしたい。


記法の習慣について

 ここまでは、ブラやケットの中身を太字で書いて来た。しかし\( |\cdots \rangle \)という形で書いている時点でこれがベクトルであることは明らかなのだから、わざわざ中に入れる記号まで毎回ベクトルのように太字で表すのでは冗長であろう。

 例えば\( |\Vec{x}\rangle \)というのは「ベクトル\( \Vec{x} \)と同じ意味であるベクトル」という意味を込めてこのように表してきただけであって、意味が通じて区別が付くならば、別の書き方をしてもいいのである。例えば、「行列\( A \)の固有値\( \lambda \)に属する固有ベクトルを\( |f\rangle \)とすると、\( A |f\rangle = \lambda |f\rangle \)と表せる」などという書き方をしても問題ない。

 先ほどの説明では\( |\Vec{x}\rangle \)\( |\Vec{z}\rangle \)という重々しい記号を使ったのだが、代わりに次のように書いても全く同じ内容であるし、不都合は生じないだろう。

 ベクトル\( |f\rangle \)が行列\( A \)によって変換されてベクトル\( |g\rangle \)になっているとする。

\[ \begin{align*} | g \rangle \ =\ A \, | f \rangle \end{align*} \]
 この時、\( |g\rangle \)のエルミート共役である\( \langle g| \)は次のように表せる。
\[ \begin{align*} \langle g | \ =\ \langle f | \, A^{\dagger} \end{align*} \]
と、まぁ、こんな具合だ。

 わざわざ\( |g\rangle \)を経由しなくても次のように書いてもいい。

\[ \begin{align*} \Big( \, A \, | f \rangle \, \Big)^{\dagger} \ =\ \langle f | \, A^{\dagger} \end{align*} \]
 これは今後もよく使う関係だから、こうして何度も繰り返しているのである。


記法の習慣について(その2)

 ところで、\( A \, |\Vec{x}\rangle \)と書く代わりに\( |A \Vec{x}\rangle \)と表しても良いだろうか。

 これは意味が分かるので許してもいいと思うのだ。\( A \Vec{x} \)という積の結果はベクトルであって、それと同じ意味であるところのベクトルだという意味で\( |A \Vec{x}\rangle \)を使っているのだろう。それは\( A \, |\Vec{x}\rangle \)と全く同じことである。

 しかし\( A \, |f\rangle \)と書く代わりに\( |Af\rangle \)とするのは意味不明である。これは何の理由説明も無しにやってはいけない書き換えだと思う。

 では\( \langle A \Vec{x}| \)と書いてあったらどういう意味か?時々こういう表現が使われることもあるのだ。これは\( \langle \Vec{x}| \)とどのような関係にあると言えるだろうか?

 これは\( |A \Vec{x}\rangle \)のエルミート共役を意味しているのだろう。そして\( |A \Vec{x}\rangle \)\( A \, |\Vec{x}\rangle \)のことなのだから、次のように変形できる。

\[ \begin{align*} \langle A \Vec{x}| \ &=\ \Big( |A \Vec{x}\rangle \Big)^{\dagger} \\ &=\ \Big( A \, |\Vec{x}\rangle \Big)^{\dagger} \\ &=\ \langle \Vec{x}| \, A^{\dagger} \end{align*} \]
 そんなに難しい話でもないようだ。このように落ち着いてゆっくり考えれば必ず理解できる。

 固有値の話が絡んでくると、もう少しだけややこしく見えたりすることがある。例えば、\( |\Vec{x}\rangle \)\( A \)の固有ベクトルであって、\( A |\Vec{x}\rangle = \lambda |\Vec{x}\rangle \)が成り立つという設定が持ち込まれたらどうだろう?これの両辺のエルミート共役を取れば、\( \langle \Vec{x}|\,A^{\dagger} = \lambda^{\ast} \langle \Vec{x}| \)であることはすぐ分かる。これを先ほどの結果と組み合わせれば、\( \langle A \Vec{x}| = \lambda^{\ast} \langle \Vec{x}| \)が言えることになるが、こういう結果だけいきなり見せられても、それが本当に正しいかどうかしばらく考え込んでしまうと思うのだ。

 でも今見たように、難しいことはやっていない。


量子力学への道

 ここに書いたベクトルのブラ・ケット記法とその基本的な変形は量子力学で良く使われるものである。そんなに難しいものではないという印象を持ってもらえたことだろう。しかし量子力学の数学的な基礎はもっとずっとずっと深いところにある。

 線形代数の教科書の多くは「有限次元のベクトル空間」に限定して議論を進めており、「無限次元のベクトル」については除外しているはずだ。量子力学ではその無限次元のベクトルを扱うことが多いのである。

 無限次元のベクトルについての数学は「関数解析学」と呼ばれるものに含まれている。それを学ぶ為の基礎としては「位相空間論(トポロジー)」を少し学んでおいたほうが良い。位相空間論を学び進めて行くと「位相幾何学(これもトポロジーと呼ばれる)」まで行くが、そこまでやる必要は無いようだ。

 そのような険しい道筋で全てを基礎から勉強しなくても、「ヒルベルト空間論」などというタイトルの教科書を探せば、量子力学の基礎となる数学的内容は一通り載っているだろうと思う。しかしそれだって簡単だというわけではないので、今挙げた分野の数学書を互いに参考にしながら進むことになるのだろう。

 そんなに心配しなくてもいい。今話したのは量子力学を「数学的基礎からきちんとやりたい」という人のための話である。そこまで厳密にやらなくても量子力学の計算はできるようになる。線形代数でイメージを掴んでいればそれがかなり役に立つことだろう。そのために、もう少しだけ話を続けないといけない。