ヤコビ法の一般化によるエルミート行列の対角化


コンピューターで数値的に行列を対角化する方法の1つに「ヤコビ法」というものがある。通常この方法は、実対称行列を対角化するための手法として解説されているが、少し修正するだけでエルミート行列の対角化にも使えるようになる。量子力学のハミルトニアンは行列で表すと一般にエルミート行列となるため、エルミート行列の数値対角化は重要な問題である。このページではヤコビ法の一般化について考えていく。

ヤコビ法の概要

まずはじめに実対称行列の対角化に用いられる通常のヤコビ法を簡単に見ていこう。ヤコビ法は、\(n\times n\) 実対称行列 \(A=(a_{ij})\) に直交行列 \(P\) を繰り返し掛けていくことによって \(A\) の非対角成分を \(0\) へ近づけていく反復計算手法である。具体的には、二次元平面における回転の行列 \begin{equation} R = \begin{bmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{bmatrix} \label{matrix} \end{equation} を \(n\times n\) に拡張した \begin{equation} P = \begin{bmatrix} 1 & \ldots & 0 & \ldots & 0 & \ldots & 0 \\ \vdots & \ddots & \vdots & & \vdots & & \vdots \\ 0 & \ldots & \cos \theta & \ldots & -\sin \theta & \ldots & 0 \\ \vdots & & \vdots & \ddots & \vdots & & \vdots \\ 0 & \ldots & \sin \theta & \ldots & \cos \theta & \ldots & 0 \\ \vdots & & \vdots & & \vdots & \ddots & \vdots \\ 0 & \ldots & 0 & \ldots & 0 & \ldots & 1 \end{bmatrix} \begin{matrix} \ \\ \ \\ \gets p \ \text{行} \\ \ \\ \gets q \ \text{行} \\ \ \\ \ \end{matrix} \label{matrix2} \end{equation} を直交行列 \(P\) として用いる。この行列は \(p\) 行 \(p\) 列目、\(p\) 行 \(q\) 列目、\(q\) 行 \(p\) 列目、\(q\) 行 \(q\) 列目が回転の行列 \eqref{matrix} と同じになっており、それ以外の対角成分はすべて \(1\)、非対角成分はすべて \(0\) である。この \(P\) を使って新しい対称行列 \begin{equation} A' = P^{T} \! A P \label{eq} \end{equation} を作ると \(A'=(a'_{ij})\) の各成分は次で与えらえる: \begin{align} &a'_{ij} = a_{ij} \\[8pt] &a'_{pk} = a'_{kp} = a_{pk} \cos \theta + a_{qk} \sin \theta \\[3pt] &a'_{qk} = a'_{kq} = -a_{pk} \sin \theta + a_{qk} \cos \theta \\[8pt] &a'_{pp} = a_{pp} \cos^{2} \theta + a_{qq} \sin^{2} \theta + a_{pq} \sin 2\theta \\[3pt] &a'_{qq} = a_{pp} \sin^{2} \theta + a_{qq} \cos^{2} \theta - a_{pq} \sin 2\theta \\[3pt] &a'_{pq} = a'_{qp} = -\frac{1}{2} ( a_{pp} - a_{qq} ) \sin 2\theta + a_{pq} \cos 2\theta \label{apq} \end{align} ただし \(i,j,k\) と表した添え字の値は、いずれも \(p,q\) とは異なるものとする。さて、行列\eqref{matrix2}には3つのパラメーター \(p,q,\theta\) が含まれているのだが、これらは次のようにして決める。まず \(p,q\) は、\(a_{pq}\) が行列 \(A\) の非対角成分の中で絶対値が最大となるように選ぶ。また \(\theta\) は、変換後の行列 \(A'\) の \(a'_{pq}\) が \(0\) になるように選ぶ。式\eqref{apq}より \(a'_{pq}=0\) の条件は \begin{equation} \cot 2\theta = \frac{a_{pp}-a_{qq}}{2a_{pq}} \label{cot} \end{equation} と書き換えられるので、この方程式を解いて \(\theta\) の値を定めることとなる。

以上でヤコビ法の繰り返し計算の1回分が終わるが、あとは同じことの繰り返しである。\({A'}^{T}=P^{T}\!AP=A'\) より、\(A'\) は再び対称行列となるので、先ほどと同じ手順により、\(A'\) の非対角成分の中で絶対値が最大のものを \(0\) に変換するような新しい直交行列 \(P'\) を作り \begin{equation} A'' = {P'}^{T} \! A' P' \label{eq2} \end{equation} を求める。それが終わったら次は \begin{equation} A''' = {P''}^{T} \! A'' P'' \label{eq3} \end{equation} である。実はこのような計算の繰り返しにより \(A,A',A'',A''',\dots\) の非対角成分の2乗和が次第に \(0\) へと近づいていくことが示せるので、\(A,A',A'',A''',\dots\) という列の極限は対角行列になる。実際の数値計算では無限回の計算を行うことはできないが、行列のすべての非対角成分が十分に \(0\) へ近づいたところで計算を打ち切ればよい。なお、式\eqref{eq}、\eqref{eq2}、\eqref{eq3}より \begin{align*} A''' &= {P''}^{T} \! A'' P'' \\[3pt] &= {P''}^{T} {P'}^{T} P^{T} A \: P \, P' P'' \\[3pt] &= ( P \, P' P'' )^{T} A \, ( P \, P' P'' ) \end{align*} であるから、もし3回の繰り返しで \(A'''\) が(近似的に)対角行列になったのなら、行列の積 \(P\1P'\!P''\) が行列 \(A\) を対角化する直交行列ということになる。このとき \(P\1P'\!P''\) の各列は \(n\) 個の固有ベクトルに対応している。

ヤコビ法の一般化

上で概要を述べたヤコビ法は、対称行列の一般化であるエルミート行列の対角化には用いることができない。なぜならば、エルミート行列では一般に \(a_{pq}\) が複素数となるため、\(a'_{pq}\) を \(0\) とするような式\eqref{cot}の解、\(\theta\) を実数の範囲では求めることができなくなってしまうからである。エルミート行列の対角化には直交行列ではなく、一般にユニタリー行列を用いなければならないが、たとえ式\eqref{cot}の解 \(\theta\) を複素数の範囲で求められたとしても、それを式\eqref{matrix}に単純に代入したものはユニタリー行列にはならないのである: \begin{equation*} R^{\dagger} R = \begin{bmatrix} \cos \theta^{*} & \sin \theta^{*} \\ -\sin \theta^{*} & \cos \theta^{*} \end{bmatrix} \begin{bmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{bmatrix} \neq I \end{equation*} そこでヤコビ法を一般化するにあたり、まずは直交行列\eqref{matrix}や\eqref{matrix2}に類似するユニタリー行列を探すことから始めよう。

式\eqref{matrix}の回転の行列をよく観察すると次のような構造になっていることがわかる: \begin{equation} R = \begin{bmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{bmatrix} = I \cos \theta + J \sin \theta \label{matrix3} \end{equation} ただし \(I\) と \(J\) は \begin{equation*} I = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}, \4 J = \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} \end{equation*} である。行列 \(J\) は2乗すると単位行列の \(-1\) 倍になるので虚数単位 \(i\) に対応した行列である。また \(J^{T}J=JJ^{T}=I\) を満たすので直交行列でもある。式\eqref{matrix3}の回転の行列は、複素数の極形式に類似しているように見えるが、このように見たとき、パラメーター \(\theta\) は二次元平面上の点の偏角を表していると解釈することができる。さて \(a_{pq}\) が複素数である場合には、一般に、方程式\eqref{cot}の解を実数の範囲内では求めらなくなってしまうのだが、その原因はパラメーターが1つだけしかないことにある。もしこの方程式を複素数にも対応できるように拡張したければ、パラメーターをもう1つ増やして2つにすればよい。そこで「偏角」を表すもう1つのパラメーター \(\phi\) を導入することにしよう。すぐに思いつくことだが、三次元極座標 \begin{equation*} \bm{r} = r \, ( \bm{e}_{x} \sin \theta \cos \phi + \bm{e}_{y} \sin \theta \sin \phi + \bm{e}_{z} \cos \theta ) \end{equation*} は2つの偏角を含んでいる。式\eqref{matrix3}にならい \(\sin\theta\cos\phi,\:\sin\theta\sin\phi,\:\cos\theta\) を含む回転の行列を作りたい。それにはこれらと結合する3つのユニタリー行列を持ってくればよさそうだが、おそらくそのようなユニタリー行列として真っ先に思いつくのはパウリ行列 \begin{equation*} \sigma_{x} = \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix}, \4 \sigma_{y} = \begin{bmatrix} 0 & -i \\ i & 0 \end{bmatrix}, \4 \sigma_{z} = \begin{bmatrix} 1 & 0 \\ 0 & -1 \end{bmatrix} \end{equation*} だろう。そこでパウリ行列 \(\bm{\sigma}\) と、三次元極座標の動径方向単位ベクトル \(\bm{e}_{r}=\bm{e}_{x}\sin\theta\cos\phi+\bm{e}_{y}\sin\theta\sin\phi+\bm{e}_{z}\cos\theta\) の内積 \begin{equation} \bm{\sigma} \cdot \bm{e}_{r} = \sigma_{x} \sin \theta \cos \phi + \sigma_{y} \sin \theta \sin \phi + \sigma_{z} \cos \theta = \begin{bmatrix} \cos \theta & \sin \theta \, e^{-i\phi} \\ \sin \theta \, e^{i\phi} & -\cos \theta \ \ \end{bmatrix} \label{matrix4} \end{equation} を考える。この行列はユニタリー行列である(エルミート行列でもある): \begin{equation*} ( \bm{\sigma} \cdot \bm{e}_{r} )^{\dagger} \, ( \bm{\sigma} \cdot \bm{e}_{r} ) = \begin{bmatrix} \cos \theta & \sin \theta \, e^{-i\phi} \\ \sin \theta \, e^{i\phi} & -\cos \theta \ \ \end{bmatrix} \begin{bmatrix} \cos \theta & \sin \theta \, e^{-i\phi} \\ \sin \theta \, e^{i\phi} & -\cos \theta \ \ \end{bmatrix} = I \end{equation*} また2つの実パラメーター \(\theta,\phi\) を含んでいる。そしてこれを \(n\times n\) に拡張した \begin{equation} U = \begin{bmatrix} 1 & \ldots & 0 & \ldots & 0 & \ldots & 0 \\ \vdots & \ddots & \vdots & & \vdots & & \vdots \\ 0 & \ldots & \cos \theta & \ldots & \sin \theta \, e^{-i\phi} & \ldots & 0 \\ \vdots & & \vdots & \ddots & \vdots & & \vdots \\ 0 & \ldots & \sin \theta \, e^{i\phi} & \ldots & -\cos \theta & \ldots & 0 \\ \vdots & & \vdots & & \vdots & \ddots & \vdots \\ 0 & \ldots & 0 & \ldots & 0 & \ldots & 1 \end{bmatrix} \begin{matrix} \ \\ \ \\ \gets p \ \text{行} \\ \ \\ \gets q \ \text{行} \\ \ \\ \ \end{matrix} \label{matrix5} \end{equation} を式\eqref{matrix2}の直交行列 \(P\) の一般化として採用してみることにしよう。(ただし \(\phi=0\) としても \(P\) には一致しないので素直な一般化ではなさそうだ。) 少し計算してみるとわかることだが、この \(n\times n\) 行列は相変わらずユニタリー行列である。すなわち \begin{equation} U^{\dagger} U = U U^{\dagger} = I \label{unitarity} \end{equation} が成り立つ。

行列の形が決まってしまえばあとは簡単である。通常のヤコビ法の手順にならい、エルミート行列の対角化がうまくいくかを確かめればよい。以下、\(A=(a_{ij})\) はエルミート行列を表すものとしよう。すなわち \begin{equation*} A^{\dagger} = A, \4 a_{ji} = {a_{ij}}^{*} \end{equation*} である。このエルミート行列に次のような変換を行い、新しい行列 \(A'\) を作る。 \begin{equation*} A' = U^{\dagger} \! A U \end{equation*} このとき \(A'\) の各成分は次のように計算される: \begin{align} &a'_{ij} = a_{ij} \label{aij} \\[8pt] &a'_{pk} = a_{pk} \cos \theta + a_{qk} \sin \theta \, e^{-i\phi} \\[3pt] &a'_{qk} = a_{pk} \sin \theta \, e^{i\phi} - a_{qk} \cos \theta \\[3pt] &a'_{kp} = a_{kp} \cos \theta + a_{kq} \sin \theta \, e^{i\phi} = (a'_{pk})^{*} \\[3pt] &a'_{kq} = a_{kp} \sin \theta \, e^{-i\phi} - a_{kq} \cos \theta = (a'_{qk})^{*} \\[8pt] &a'_{pp} = a_{pp} \cos^{2} \theta + a_{qq} \sin^{2} \theta + a_{pq} \sin \theta \cos \theta \, e^{i\phi} + a_{qp} \sin \theta \cos \theta \, e^{-i\phi} \label{app} \\[3pt] &a'_{qq} = a_{pp} \sin^{2} \theta + a_{qq} \cos^{2} \theta - a_{pq} \sin \theta \cos \theta \, e^{i\phi} - a_{qp} \sin \theta \cos \theta \, e^{-i\phi} \\[3pt] &a'_{pq} = e^{-i\phi} ( a_{pp} \sin \theta \cos \theta - a_{qq} \sin \theta \cos \theta - a_{pq} \cos^{2} \theta \, e^{i\phi} + a_{qp} \sin^{2} \theta \, e^{-i\phi} ) \label{apq2} \\[3pt] &a'_{qp} = e^{i\phi} \1 ( a_{pp} \sin \theta \cos \theta - a_{qq} \sin \theta \cos \theta + a_{pq} \sin^{2} \theta \, e^{i\phi} - a_{qp} \cos^{2} \theta \, e^{-i\phi} ) = ( a'_{pq})^{*} \label{aqp} \end{align} ただし \(i,j,k\) と表した添え字の値は、いずれも \(p,q\) とは異なるものとする。これらの導出はやや面倒だが、\(U=(u_{ij})\) が \begin{equation*} u_{ij} = \delta_{ij} \, c_{i} + \delta_{ip} \delta_{jq} \2 \sin \theta \, e^{-i\phi} + \delta_{iq} \delta_{jp} \2 \sin \theta \, e^{i\phi}, \4 c_{i} = \begin{cases} \ \cos \theta & i = p \\ \! \! -\cos \theta \ \ & i = q \\ \ \ 1 & i \neq p,q \end{cases} \end{equation*} と表せることに注意して \begin{equation*} a'_{ij} = ( U^{\dagger} \! A U )_{ij} = ( U \! A U )_{ij} = \sum_{l,m=1}^{n} u_{il} \2 a_{lm} \2 u_{mj} \end{equation*} をそれぞれの場合に分けて丁寧に計算していく。それでは行列 \(U\) にあらわれる4つのパラメーター \(p,q,\theta,\phi\) の値を決めていこう。まず \(p,q\) の値だが、これらは通常のヤコビ法と同様に \(A\) の非対角成分の中で絶対値最大のものが \(a_{pq}\) であるように選ぶ。問題は偏角 \(\theta,\phi\) をどのように決めるかであるが、方針はやはり同じで、式\eqref{apq2}の \(a'_{pq}\) が \(0\) となるように選ぶ。すなわち \begin{equation} ( a_{pp} - a_{qq} ) \sin \theta \cos \theta - a_{pq} \cos^{2} \theta \, e^{i\phi} + a_{qp} \sin^{2} \theta \, e^{-i\phi} = 0 \label{eq4} \end{equation} が成り立つように \(\theta\) と \(\phi\) の値を定める。1つの方程式に対して未知変数が2つあるが、式\eqref{eq4}は複素数の方程式なので、これを実部と虚部に分けて書けば方程式は2つである。そこで複素数 \(a_{pq}\) を極形式で \begin{equation*} a_{pq} = r \2 ( \cos \alpha + i \sin \alpha ) \end{equation*} と表して上の方程式に代入し、実部と虚部に分けて書いてみよう。エルミート行列では \begin{equation*} a_{qp} = {a_{pq}}^{\!\!*} = r \2 ( \cos \alpha - i \sin \alpha ) \end{equation*} であり、また対角成分 \(a_{pp},\,a_{qq}\) が実数であることに注意すると \begin{equation*} \biggl( \frac{1}{2} ( a_{pp} - a_{qq} ) \sin 2\theta - r \cos 2\theta \1 \cos( \phi + \alpha ) \biggr) + ir \sin ( \phi + \alpha ) = 0 \end{equation*} となる。この虚部を \(0\) とするには \(\sin(\phi+\alpha)=0\)、すなわち \begin{equation} \phi = -\alpha \end{equation} とすればよい。またこのとき \(\cos(\phi+\alpha)=1\) になるので、実部を \(0\) とするには \begin{equation*} \frac{1}{2} ( a_{pp} - a_{qq} ) \sin 2\theta - r \cos 2\theta = 0 \end{equation*} または \begin{equation} \cot 2\theta = \frac{a_{pp}-a_{qq}}{2r} \end{equation} である。この式を \(\tan\) ではなく \(\cot\) で書いたのは、一般に \(a_{pp}-a_{qq}\neq 0\) であるとは限らないのに対して、\(r=|a_{pq}|\) が \(0\) にならないことは常に保証されているからである。(\(\,a_{pq}\) は \(A\) の非対角成分のうち絶対値最大のものだったから、もしこれが \(0\) になっているなら対角化はすでに完了していることになる。) しかし、数値計算を行う上では \(\cot\) よりも \(\tan\) で表したほうが便利かもしれない(例えばC言語の標準ライブラリー関数には、\(\tan^{-1}\) はあるが \(\cot^{-1}\) はない)。そこで \(\cot\) を \(\tan\) に書き直そう。公式 \(\cot x=\tan(\pi/2-x)\) を使って \begin{equation*} \tan \Bigl( \frac{\pi}{2} - 2\theta \Bigr) = \frac{a_{pp}-a_{qq}}{2r} \end{equation*} または \begin{equation} \theta = \frac{\pi}{4} - \frac{1}{2} \tan^{-1} \Bigl( \frac{a_{pp}-a_{qq}}{2r} \Bigr) \end{equation} とする。まとめると2つのパラメーター \(\theta,\phi\) は \begin{equation} \theta = \frac{\pi}{4} - \frac{1}{2} \tan^{-1} \Bigl( \frac{a_{pp}-a_{qq}}{2\2|a_{pq}|} \Bigr), \5 \phi = -\arg \2 a_{pq} \label{angle} \end{equation} により決定されることになる。

あとの手順は通常のヤコビ法と同じである。4つのパラメーター \(p,q,\theta,\phi\) の値を適切に変化させながら、行列\eqref{matrix5}をエルミート行列 \(A\) に繰り返し掛けていく: \begin{equation} A' = U^{\dagger} \! A U, \3 A'' = {U'}^{\dagger} \! A' U', \3 A''' = {U''}^{\dagger} \! A'' U'', \3 \cdots \label{eq5} \end{equation} 問題はこの繰り返しによって必ず \(A\) を対角化することができるかどうかという点だと思うが、このページのいちばん最後で示すように \(A,A',A'',A''',\dots\) の列は必ず対角行列に収束する。したがって最終的に \begin{equation} X^{\dagger} \! A X = \varLambda \5 ( X = U \2 U' U'' \dotsm ) \label{eq6} \end{equation} という形になるわけである。ただし \(\varLambda\) は \(A\) を対角化した行列 \begin{equation} \varLambda = \begin{bmatrix} \lambda_{1} & & & 0 \\ & \lambda_{2} & & \\ & & \ddots & \\ 0 & & & \lambda_{n} \\ \end{bmatrix} \end{equation} を表す。行列を数値的に対角化する方法はヤコビ法だけではないが、ヤコビ法の利点はすべての固有値と同時にすべての固有ベクトルも求められることにある。実は \begin{equation} X = \begin{bmatrix} \bm{x}_{1} & \bm{x}_{2} & \ldots & \bm{x}_{n} \end{bmatrix} \end{equation} の各列ベクトルは \(A\) の固有ベクトルになっている。このことを確認してみよう。まず \(X\) は、ユニタリー行列 \(U,U',U'',\dotsm\) たちの積なので \(X\) もまたユニタリー行列である。それゆえ \(X^{\dagger}X=XX^{\dagger}=I\) が成り立つから、式\eqref{eq6}の両辺に左から \(X\) を掛けると \begin{equation*} A X = X \varLambda \end{equation*} または \begin{equation*} A \begin{bmatrix} \bm{x}_{1} & \bm{x}_{2} & \ldots & \bm{x}_{n} \end{bmatrix} = \begin{bmatrix} \bm{x}_{1} & \bm{x}_{2} & \ldots & \bm{x}_{n} \end{bmatrix} \begin{bmatrix} \lambda_{1} & & & 0 \\ & \lambda_{2} & & \\ & & \ddots & \\ 0 & & & \lambda_{n} \\ \end{bmatrix} \end{equation*} となる。これは \begin{equation*} \begin{bmatrix} A\bm{x}_{1} & A\bm{x}_{2} & \ldots & A\bm{x}_{n} \end{bmatrix} = \begin{bmatrix} \lambda_{1} \bm{x}_{1} & \lambda_{2} \bm{x}_{2} & \ldots & \lambda_{n} \bm{x}_{n} \end{bmatrix} \end{equation*} と同値であり、したがって \begin{equation} A \bm{x}_{k} = \lambda_{k} \bm{x}_{k} \5 ( k = 1, 2, \dots, n ) \end{equation} が言えるので、\(X\) の各列は \(A\) の固有ベクトルになっていることとなる。数値計算で固有値と同時に固有ベクトルを得るには、式\eqref{eq5}の手順と並列に、次の行列計算を行っていけばよい。 \begin{equation} X' = I \1 U, \3 X'' = X' U', \3 X''' = X'' U'', \3 \cdots \label{eq7} \end{equation} ここで \(I\) は \(n\times n\) の単位行列である。任意の \(n\times n\) 正方行列 \(B=(b_{ij})\) と \(B'=(b'_{ij})\) のあいだに \(B'=B\1U\) という関係式が成立しているとき、それらの成分同士は次の式で関係づけられる: \begin{align} &b'_{ij} = b_{ij} \4 ( j \neq p, q ) \label{bij} \\[3pt] &b'_{ip} = b_{ip} \cos \theta + b_{iq} \sin \theta \, e^{i\phi} \\[3pt] &b'_{iq} = -b_{iq} \cos \theta + b_{ip} \sin \theta \, e^{-i\phi} \label{biq} \end{align} 式\eqref{eq7}の行列成分の計算はこれを参考にして行えばよい。

以上をまとめると、ヤコビ法によるエルミート行列対角化のアルゴリズムは次のようになる。

  1. エルミート行列 \(A\) を用意する。また行列 \(X\) を単位行列に初期化する。
  2. \(A\) の非対角成分の中で絶対値が最大のものを見つけ、その位置を \(p\) 行 \(q\) 列とする。
  3. もし \(|a_{pq}|\) が十分に小さくなっていたら 7. へ進む。そうでない場合は 4. へ進む。
  4. 式\eqref{angle}から \(\theta\) と \(\phi\) を計算する。
  5. \(A'=U^{\dagger}\!AU\) と \(X'=X\1U\) を計算する。計算には式\eqref{aij}-\eqref{aqp}および式\eqref{bij}-\eqref{biq}を利用する。
  6. \(A\) に \(A'\) を代入、また \(X\) に \(X'\) を代入して 2. にもどる。
  7. \(A\) の対角成分から固有値を得る。また \(X\) の各列から対応する固有ベクトルを得る。

非対角成分が 0 に収束することの証明

式\eqref{eq5}の操作によって \(A,A',A'',A''',\dots\) の非対角成分の絶対値の2乗の和が次第に \(0\) へ近づいていくことを証明しよう。\(A'=U^{\dagger}\!AU\) とする。このとき \(A'=(a'_{ij})\) のすべての行列成分の絶対値の2乗の和を計算すると \begin{align} \sum_{i,j=1}^{n} |a'_{ij}|^{2} &= \sum_{i,j=1}^{n} a'_{ij} ({a'_{ij}})^{*} = \sum_{i,j=1}^{n} a'_{ij} {a'_{ji}} = \sum_{i=1}^{n} (A'A')_{ii} \notag \\[5pt] &= \tr (A'A') = \tr ( U^{\dagger} \! A U \, U^{\dagger} \! A U ) = \tr (AA) \notag \\[5pt] &= \sum_{i,j=1}^{n} |a_{ij}|^{2} \label{eq8} \end{align} となる。ただし、途中で行列のトレースの性質 \(\tr(XY)=\tr(YX)\) およびユニタリー行列の性質\eqref{unitarity}を使った。これより、ユニタリー変換 \(A'=U^{\dagger}\!AU\) によって行列成分の絶対値の2乗の和は不変であることがわかる。では対角成分の2乗の和はどうなるだろう? 式\eqref{aij}より、\(i,j\neq p,q\) の場合には \(a'_{ij}=a_{ij}\) であることに注意すると \begin{align} \sum_{i=1}^{n} {a'_{ii}}^{2} &= {a'_{pp}}^{2} + {a'_{qq}}^{2} + \sum_{i\neq p,q} {a'_{ii}}^{2} \notag \\ &= {a'_{pp}}^{2} + {a'_{qq}}^{2} + \sum_{i\neq p,q} {a_{ii}}^{2} \label{eq9} \end{align} となる。ここで次の恒等式を使う。 \begin{equation*} {a'_{pp}}^{2} + {a'_{qq}}^{2} + 2 \2 |a'_{pq}|^{2} = {a_{pp}}^{2} + {a_{qq}}^{2} + 2 \2 |a_{pq}|^{2} \end{equation*} これを示すには式\eqref{app}-\eqref{aqp}を代入すればよいのだが、長い式となり大変なので細かい計算は省略する。ところでヤコビ法の手順に従って \(\theta\) と \(\phi\) を選んだ場合には \(a'_{pq}\) が \(0\) になっているのであったから、ヤコビ法ではとくに \begin{equation*} {a'_{pp}}^{2} + {a'_{qq}}^{2} = {a_{pp}}^{2} + {a_{qq}}^{2} + 2 \2 |a_{pq}|^{2} \end{equation*} という等式が成立することになる。これを式\eqref{eq9}に代入すると \begin{align} \sum_{i=1}^{n} {a'_{ii}}^{2} &= {a_{pp}}^{2} + {a_{qq}}^{2} + 2 \2 |a_{pq}|^{2} + \sum_{i\neq p,q} {a_{ii}}^{2} \notag \\ &= \sum_{i=1}^{n} {a_{ii}}^{2} + 2 \2 |a_{pq}|^{2} \label{eq10} \end{align} となる。すなわち \(A'\) の対角成分の2乗和は、\(A\) のそれよりも \(2\2|a_{pq}|^{2}\) だけ値が大きい。それでは非対角成分の2乗和についてはどうだろう? 行列の非対角成分の和は、全成分の和から対角成分の和を差し引けば求まるので、式\eqref{eq8}から式\eqref{eq10}の辺々を引く。すると \begin{equation} \sum_{i\neq j} |a'_{ij}|^{2} = \sum_{i\neq j} |a_{ij}|^{2} - 2 \2 |a_{pq}|^{2} \label{eq11} \end{equation} が得られる。ところでヤコビ法では \(a_{pq}\) が \(A\) の非対角成分の中で絶対値最大であったから \begin{equation*} \sum_{i\neq j} |a_{ij}|^{2} \le \sum_{i\neq j} |a_{pq}|^{2} = ( n^{2} - n ) \2 |a_{pq}|^{2} \end{equation*} という不等式が成立することになる。これより \begin{equation*} |a_{pq}|^{2} \ge \frac{1}{n(n-1)} \sum_{i\neq j} |a_{ij}|^{2} \end{equation*} が言えるので、これを式\eqref{eq11}に代入して \begin{equation} \sum_{i\neq j} |a'_{ij}|^{2} \le \biggl( 1 - \frac{2}{n(n-1)} \biggr) \sum_{i\neq j} |a_{ij}|^{2} \label{eq12} \end{equation} を得る。この式にあらわれる係数 \begin{equation*} 1 - \frac{2}{n(n-1)} \end{equation*} は行列の大きさだけによって決まる定数であり、またどのような大きさの行列に対しても常に \(0\) 以上 \(1\) 未満の値をとる。ヤコビ法によって行列を \(A\to A'\to A''\to A'''\to\dotsb\) と変換していくと、そのたびに変換された行列の非対角成分の2乗の和に \(0\) 以上 \(1\) 未満の定数が掛かっていくのだから、変換回数を無限大にもっていった極限では、非対角成分の2乗の和は \(0\) へ収束することになる。