ユニタリ変換

古い教科書に「ウニタリ」と書いてあって、
何か未知の学問かと思った。

[前の記事へ]  [量子力学の目次へ]  [次の記事へ]


抽象化への道

 ここまでの話で、波動関数を使った計算とベクトルを使った計算との間にかなりの対応関係があるという雰囲気が分かってもらえただろうと思う。

 しかし、ある状態をベクトルで表すために、関数系を選んできて展開しなくてはならないという部分がどうにも頼りない。わざわざベクトルを使った理論に移行しようとしているのだから、ベクトルの範囲だけで完結するような体系を構築したいものである。それは波動関数による足場を外して少々抽象的な世界へ飛び込むことを意味しているわけだが、量子力学の本質が何であるかを見極めるにはちょうどいいだろう。

 手始めに関数系を使うのをやめることから始めるとしよう。


ベクトルだけの理論体系

 ある状態\( |\psi\rangle \)を表すのに、どんなものでもいいから完全規格直交系\( \{ \phi_n(x) \} \)を選んできて波動関数\( \psi(x) \)を展開してやり、そうして得られる無限個の係数を縦一列に並べたものが関数の代わりに使えるのであった。
\[ \begin{align*} |\psi\rangle \ =\ \left( \begin{array}{c} a\sub{0} \\ a\sub{1} \\ a\sub{2} \\ \vdots \\ a_n \\ \vdots \end{array} \right) \end{align*} \]
 ところでこの展開に使った関数系に属する関数の一つ一つも量子力学的に取り得る状態の一つを表している。自分自身との内積を取ったものは 1 になるという性質もあり、これらは規格化された波動関数そのものだと考えられるではないか。これらも同じ関数系で展開してベクトルで表すことが可能である。実際にはひどく単純な話であって、例えば\( \phi\sub{0}(x) \)\( \{ \phi_n(x) \} \)で展開してやった係数の組は、\( (\ 1,\ 0,\ 0,\ \cdots\ ) \)となるだろうし、\( \phi\sub{1}(x) \)の場合には\( (\ 0,\ 1,\ 0,\ \cdots\ ) \)と表せるだろう。これらはどれも単位ベクトルのようなものだ。

 これらの係数をそれぞれ縦一列に並べたものを\( | \phi\sub{0} \rangle \)\( | \phi\sub{1} \rangle \)などと書いて表すことにしよう。こんな具合にして無限個の成分を持つ無限個の単位ベクトルが作られるわけだが、それを一組にして「基底ベクトル」と呼ぶ。

 すると先ほどの状態ベクトル\( |\psi\rangle \)は、このような基底ベクトルの線形和として次のように表せることになるであろう。

\[ \begin{align*} |\psi\rangle \ =\ \left( \begin{array}{c} a\sub{0} \\ a\sub{1} \\ a\sub{2} \\ \vdots \\ a_n \\ \vdots \end{array} \right) \ \ \ =\ \ \ a\sub{0} \left( \begin{array}{c} 1 \\ 0 \\ 0 \\ \vdots \\ 0 \\ \vdots \end{array} \right) + a\sub{1} \left( \begin{array}{c} 0 \\ 1 \\ 0 \\ \vdots \\ 0 \\ \vdots \end{array} \right) + \cdots + a_n \left( \begin{array}{c} 0 \\ 0 \\ 0 \\ \vdots \\ 1 \\ \vdots \end{array} \right) + \cdots \end{align*} \]
 これはすなわち、
\[ \begin{align*} |\psi\rangle \ &=\ a\sub{0}\ |\phi\sub{0}\rangle + a\sub{1}\ |\phi\sub{1}\rangle + a\sub{2}\ |\phi\sub{2}\rangle + \cdots \\ &=\ \sum_n^{\infty}\ a_n\ |\phi_n\rangle \end{align*} \]
だということだ。これでようやく普通の教科書にあるような表現に近付いた。前回までの私の説明が何だか簡単に理解できるというので、どこかごまかしがあるんじゃないかと疑っている人はここらで安心してもらってもいい頃ではないだろうか。

 とにかくこれで関数による足場をそっと外したことになる。しかしまだまだ話はこれからだ。足場を払ったからには、ぐるぐる回して上も下も分からないようにしてやるので覚悟して欲しい。どちらが上か下かなんてのは本質ではないということを悟らねばならない。


基底ベクトルの回転

 あらゆる状態ベクトルは、無限個の直行する基底ベクトルの組とその係数で表せることを理解したはずである。その時に出てくる係数は展開するのにどんな関数系を選んだかによって違ってくるものであり、絶対的な意味を持つ値ではない。つまり、ある状態ベクトルを表すのに、どんな基底ベクトルの組を選んだかという違いが現れているに過ぎないのである。

 どんな基底ベクトルの組を選ぼうとも本質的な違いはない。それぞれが直交しており、長さもみな同じ1であるという点で変わりなく、ただそれぞれに向きが少々違うだけなのである。つまり、抽象的なベクトル空間の中で少しの回転をほどこしてやれば、ある基底ベクトルの組は別の基底ベクトルの組に一致させられるわけだ。

 ここでちょっと線形代数の知識を思い出すことにしよう。互いに直交するベクトルの組は、ベクトル空間の中で原点を中心に回転させたり、原点を含む面に対称に鏡像変換したりしても直交系であることには変わりがない。そういう変換を「直交変換」と呼ぶのであった。ベクトルの変換は行列で表すことができるが、この直交変換の行列を\( \Vec{R} \)で表すことにしよう。この行列\( \Vec{R} \)は次のような性質を持っている。

\[ \begin{align*} \Vec{R}^t \ =\ \Vec{R}^{-1} \end{align*} \]
 実際、次のような回転変換\( \mathfrak{R} \)や鏡像変換\( \mathfrak{M} \)はこの性質を満たしている。
\[ \begin{align*} \mathfrak{R} \ =\ \left( \begin{array}{rr} \cos \theta & \sin\theta \\[8pt] -\sin \theta & \cos\theta \\ \end{array} \right) \ \ \ ,\ \ \ \mathfrak{M} \ =\ \left( \begin{array}{rr} -1 & 0 \\[8pt] 0 & 1 \\ \end{array} \right) \end{align*} \]
 基底ベクトルを変換する時にもこれと似た事をしてやればいい。ただし、これからやろうとしているのは実数ベクトル空間での回転ではなく複素ベクトル空間内での回転であるので、少々の変更が必要である。変換後もそれぞれの基底ベクトルの直交性が保証されるような変換、すなわち内積の値が変化しないような変換はどのようなものであろうか?次のような性質を持つ変換行列\( \Vec{U} \)はまさにそのような条件を満たしている。
\[ \begin{align*} \Vec{U}^{\dagger} \ =\ \Vec{U}^{-1} \end{align*} \]
 この行列を「ユニタリ行列」と呼び、この行列による変換を「ユニタリ変換」と呼ぶ。これは直交変換をそのまま複素数に拡張したものになっており、行列の全成分が実数のときには両者は同じものになっていることが分かるだろう。なぜこの行列をユニタリと呼ぶかと言えば、多分だが、この行列の行列式が、絶対値が 1 ( = unit ) の複素数になっているからだろうと思う。つまり、変換によってベクトルの長さが変わらないことを意味しているわけだ。ちなみに直交変換\( \Vec{R} \)の場合は、行列式は 1 か -1 のいずれかであった。

 ここまでは線形代数の復習みたいなものであって、特に証明はしない。もし気になることがあるなら線形代数を猛烈に再勉強するといいだろう。しかし最近は文系の学生でも線形代数が必修科目になっていたりするせいか、ユニタリ変換まで載っていないレベルを落とした教科書もよく見かけるので注意が必要だ。(ああ、線形代数の教科書が書きたくなってきた。)

 上の方では、基底ベクトルの成分はどれか一つだけが 1 で残りは全部 0 という大変すっきりした形式になっているような説明をしてきたが、これらは複素ベクトル空間の中のベクトルであって、ユニタリ変換によってどんな方向にでも向けられる可能性がある。つまり、別の基底ベクトルを使って表現すれば、それ以外の基底ベクトルの成分は大変ごちゃごちゃしている上に、複素数値で表されるといった状況もあり得るのである。特定の方向に意味があるわけではないということだ。


基底変換

 基底ベクトルを回転させれば、当然、ある状態を表すベクトル\( |\psi\rangle \)の表現の仕方も変わってきてしまうだろう。その時の係数はどのように変化するのであろうか。ちょっと考えてみよう。

 \( |\phi_n\rangle \)は完全規格直交系\( \{ \phi_n(x) \} \)を元にして作った基底ベクトルであった。また、それとは全く別の関数系\( \{ \phi'_n(x) \} \)を元にして作った別の基底ベクトルを\( |\phi'_n\rangle \)と書くことにしよう。これから考えるのは、基底\( |\phi_n\rangle \)を基底\( |\phi'_n\rangle \)に変換するためのルールである。一つ注意すべきことは、それぞれの完全系関数の変域は両者とも同じにしておかなければならないことである。これは変数\( x \)のスケールを調整してやればいいだけなのでたいした問題ではない。

 \( |\phi'_n\rangle \)は完全系なので、基底\( |\phi_n\rangle \)を構成するどの単位ベクトルであっても次のような線形和の形で展開してやれるはずである。

\[ \begin{align*} |\phi_n\rangle \ =\ \sum_k^{\infty}\ b_k\ |\phi'_k\rangle \end{align*} \]
 この時の係数\( b_k \)はこれまでのパターンに倣って次のように求められる。
\[ \begin{align*} b_k \ =\ \int{ {\phi'_k}^{\ast} \, \phi_n\ \diff x} \end{align*} \]
 以前と少し違う点があるのに気付いただろう。以前に係数を求めた時には実数関数で展開することだけを考えていたので複素共役を取らないで良かったが、複素関数どうしの内積の場合にはこのような工夫が必要になるのである。それでなくては同じ関数どうしの内積が実数 1 になってくれずに理論が破綻してしまうだろう。ブラ・ベクトルとケット・ベクトルの二種類を区別しなければならないのはこの辺りの事情に起因している。

 ところで、この式は次のように表せるのではなかったか。

\[ \begin{align*} b_k \ =\ \langle \phi'_k | \phi_n \rangle \end{align*} \]
 これを前の式に代入してやれば、
\[ \begin{align*} |\phi_n\rangle \ =\ \sum_k^{\infty}\ \langle \phi'_k | \phi_n \rangle |\phi'_k\rangle \tag{1} \end{align*} \]
ということになる。これこそが、 2 つの基底の間の変換の規則だというわけだ。

 ところで、ブラとケットが閉じた形になっている\( \langle \phi'_k | \phi_n \rangle \)の部分は単なる複素数値になるので、次のように順番を変えて書いてやっても構わない。

\[ \begin{align*} |\phi_n\rangle \ =\ \sum_k^{\infty}\ |\phi'_k\rangle \langle \phi'_k | \phi_n \rangle \end{align*} \]
 これをよく見ると、
\[ \begin{align*} \sum_k^{\infty}\ |\phi'_k\rangle \langle \phi'_k | \ =\ 1 \tag{2} \end{align*} \]
という式が成り立つのではないだろうか。そうである。この関係は\( |\phi'_k \rangle \)が完全系であることから言えるものであり、「完全系の条件」として頻繁に使われる。この和の記号の中身の部分を「射影演算子」と呼ぶ。名前の由来は分かるだろうか?この関係を挟むことで、ある基底が別の基底でどう表されるか、という「射影」を実現するからである。今、まさにそういう作業をしているのだった。少し後で使い方の実例を示すことにしよう。

 ついでにもう少し補足しておきたいことがあるが、\( |\phi'_n\rangle \)から\( |\phi_n\rangle \)への基底の変換はユニタリ変換であって、変換行列\( \Vec{U} \)の成分\( U_{ij} \)を使って、

\[ \begin{align*} |\phi_n\rangle \ =\ \sum_k^{\infty}\ U_{nk}\ |\phi'_k\rangle \end{align*} \]
のように表すことも出来る。つまりユニタリ行列の各成分は取りも直さず、
\[ \begin{align*} U_{nk} \ =\ \langle \phi'_k | \phi_n \rangle \end{align*} \]
であるということだ。これで話が一通りつながった。

 以上の知識を使えば、先ほどの疑問は簡単に解決できる。例えば、

\[ \begin{align*} |\psi\rangle \ =\ \sum_n^{\infty}\ a_n\ |\phi_n\rangle \end{align*} \]
のように表現されている状態ベクトル\( |\psi\rangle \)を別の基底を使った線形和で表したいとする。この場合には次のように変形してやればいい。まず、もとの基底\( |\phi_n\rangle \)の直前に射影演算子の和である (2) 式を差し込む。
\[ \begin{align*} =\ \sum_n^{\infty}\ a_n\ \sum_k^{\infty}\ |\phi'_k\rangle \langle \phi'_k |\phi_n\rangle \end{align*} \]
 (1) 式を代入してやるという考えでも別に構わないのだが、やってることは同じだ。射影演算子の使い方を強調するためにそう表現してみただけである。そしてブラとケットが閉じたところは単なる数値になるので、和の記号の意味に気を付けつつ、分かりやすいように順番をいじって係数の部分をまとめてやれば、
\[ \begin{align*} =\ \sum_k^{\infty}\ \left( \sum_n^{\infty}\ a_n\ \langle \phi'_k |\phi_n\rangle \right) |\phi'_k\rangle \end{align*} \]
のような新しい基底による線形和が出来上がるというわけだ。このカッコの中が新しい係数である。


予告

 これでもうこの辺りの式変形はばっちり自由自在だろう。わざわざ線形代数の教科書を復習しなくてもいいくらいだ。実際、私が持っている線形代数の教科書などはどれも要らない知識ばかり多すぎて、知りたい肝心なことがほとんど載ってなかったりする。

 今回の話のようなベクトル的な概念が何の役に立つのだろうかと思うかも知れない。まだ分からなくてもいい。次回はとりあえずここで学んだイメージを使って、波動関数とは何かという簡単な議論をすることにする。しかしそれだけではない。ユニタリ変換の本当の有用さは演算子を使ったときに明らかになるだろうからそれまで楽しみにして頂きたい。