Qiitaの記事 [1] を見た。どうやら「固有値だけから固有ベクトルが求められる」という arXivの論文 [2] が話題になっていたようだ。件の式 (記事[1]に倣ってDentonの式と呼ぶことにする) は以下の形をしている。
\newcommand{\adj}{\mathrm{adj}}
|v_{i,j}|^2 \prod_{k=1\atop k\neq i}^{n} [\lambda_i(A) - \lambda_k(A)] = \prod_{k=1}^{n-1}[\lambda_i(M) - \lambda_k(M_j)].
但し、$A$は$n\times n$行列で、$\lambda_k(X)$ は行列 $X$ の $k$ 番目の固有値で、$v_{i,j}は$A$の固有値 $\lambda_i(A)に対応する固有ベクトル$v_iの第 $j$ 成分。$M_jは$A$から$j$行目と$j$列目を抜き去って作られる小行列。ちゃんとみると、その行列の固有値だけでなく小行列の固有値も要求しているので、論文のタイトルは扇動的である。
縮退がある場合には両辺0になる
そもそもこの式が気になった理由は、もしかすると自分の計算で使っている固有ベクトル(応力主軸)を求めるコードの問題を解決するのに使えるかもしれないと思ったから。自分の計算で問題が起こるのは対称性によって縮退がある場合と、それからブロック対角になっている場合。その対策に少し計算量の多いことをしている。その観点でDentonの式を見ると、どうも縮退がある場合には両辺が0になってしまって固有ベクトルに関する情報は何も得られない。使えない。
縮退がある場合の類似の関係式?
縮退がある場合にも何か類似の関係式があると考えるのが自然な気がする。然し、縮退がある場合にはユニタリ変換の自由度があるので固有ベクトルの組は一意に定まらない。従って、単純に固有ベクトルの各要素について情報が得られるとは考えにくい。何らかのユニタリ不変な組み合わせに対して何か言わなければならない。と思ったがゴールの形もないのに闇雲に考えてもよく分からない。
方針を変えて縮退のない場合の導出を観察してそれを拡張する。
関係式1
余因子行列(adjugate)による導出の拡張で以下が得られる。固有値 $\lambda$ に対して、
\sum_{k=1\atop \lambda_k(A)= \lambda}^n |v_{k,j_1}|^2
= \frac{\sum_{j_2 < \dots < j_\Lambda\atop j_p\neq j_1 (p=2,\dots,\Lambda)}
\prod_{k=1}^{n-\Lambda}[\lambda - \lambda_k(M_{j_1,\dots,j_\Lambda})]
}{\prod_{k=1 \atop \lambda_k(A) \neq \lambda}^n [\lambda - \lambda_k(A)]}. \label{eq:r1}
但し、$\Lambda は $\lambda の重複度で、
$M_{j_1,\dots,j_\Lambda} は行列 $A$ から($j_1行$,\dots,j_\Lambda行$,j_1列$,\dots,j_\Lambda列)を除いて得られる小行列。
Proof.
余因子行列と逆行列の関係から、 \adj(\lambda - A + \epsilon)
&= (\lambda - A + \epsilon)^{-1} \det(\lambda - A + \epsilon) \\
&= \left(\sum_{k=1}^n \frac1{\lambda - \lambda_k(A) + \epsilon} v_k v_k^\dag\right) \det(\lambda - A + \epsilon).
% &= \left(\sum_{k=1\atop \lambda_k(A)= \lambda}^n \frac1\epsilon v_kv_k^\dag
% + \sum_{k=1\atop \lambda_k(A) \neq \lambda}^n \frac1{\lambda - \lambda_k(A)+\epsilon}v_kv_k^\dag\right) \\
% &\qquad\times \epsilon^\Lambda\prod_{k=1 \atop \lambda_k(A) \neq \lambda}^n [\lambda - \lambda_k(A) + \epsilon] \\
但し、面倒なので $\lambda I_n - A$ などは $\lambda - A$ と書いている。
右辺の $\epsilon$ の最低次を見ると
\epsilon^{\Lambda-1} \left(\sum_{k=1\atop \lambda_k(A)= \lambda}^n v_kv_k^\dag\right)
\prod_{k=1 \atop \lambda_k(A) \neq \lambda}^n [\lambda - \lambda_k(A)]
になっている。特に対角成分$(j_1,j_1)$を見れば
\epsilon^{\Lambda-1} \left(\sum_{k=1\atop \lambda_k(A)= \lambda}^n |v_{k,j_1}|^2\right)
\prod_{k=1 \atop \lambda_k(A) \neq \lambda}^n [\lambda - \lambda_k(A)]
一方で、左辺の該当する次数の係数を微分して取り出すと、
&\left. (\Lambda-1)!
\frac{\partial^{\Lambda-1}}{\partial\epsilon^{\Lambda-1}}
\adj(\lambda - A + \epsilon)_{j_1j_1}\right|_{\epsilon=0} \\
&\qquad= \sum_{j_2 < \dots < j_\Lambda\atop j_p\neq j_1 (p=2,\dots,\Lambda)}
\det(\lambda - M_{j_1,\dots,j_\Lambda}) \\
&\qquad= \sum_{j_2 < \dots < j_\Lambda\atop j_p\neq j_1 (p=2,\dots,\Lambda)}
\prod_{k=1}^{n-\Lambda}[\lambda - \lambda_k(M_{j_1,\dots,j_\Lambda})].
■
関係式2
関係式$\eqref{eq:r1}$は或いはまた以下のようにも書ける。
\sum_{k=1\atop \lambda_k(A)= \lambda}^n |v_{k,j_1}|^2
= \frac{c_{n-\Lambda}\{\lambda - \lambda_k(M_{j_1})\}_{k=1}^{n-1}
}{\prod_{k=1 \atop \lambda_k(A) \neq \lambda}^n [\lambda - \lambda_k(A)]}. \label{eq:r2}
但し、$c_k\{a_i\}_{i=1}^n は $\{a_i\}_{i=1}^n の $k$ 次基本対称式。
Proof.
関係式1の導出で左辺 $\adj(\lambda - A + \epsilon)_{j_1j_1} = \det(\lambda - M_{j_1} + \epsilon)$ の $\epsilon^{\Lambda-1}$ 次の係数は、$\lambda - M_{j_1}$ の特性多項式の $\Lambda - 1$ 次の係数なので、$\lambda - M_{j_1}$ の固有値の $\Lambda - 1$ 次の基本対称式になっている。■関係式3
Cauchy-Binet型公式による導出 [2,3] の拡張で以下が得られる。
\left|\det\begin{pmatrix}
v_{i_1,j_1} &\cdots &v_{i_\Lambda,j_1} \\
\vdots & \ddots & \vdots \\
v_{i_1,j_\Lambda} &\cdots &v_{i_\Lambda,j_\Lambda}
\end{pmatrix}\right|^2 = \frac{
\prod_{k=1}^{n-\Lambda} [\lambda - \lambda_k(M_{j_1,\dots,j_\Lambda})]
}{\prod_{k=1\atop \lambda_k(A) \neq \lambda}^n [\lambda - \lambda_k(A)]}. \label{eq:r3}
但し、$i_1,\dots,i_\Lambda は固有値$\lambda$に属する相異なる固有ベクトルの番号である。
また、$j_1,\dots,j_\Lambda ($1\le j_p\le n)は相異なる整数。
Proof.
原論文 [2] に倣って $v_{n-\Lambda+1},\dots,v_n$ が固有値 $\lambda$ の固有ベクトルとする。 $B$ として $(n-\Lambda)\times n$ 行列を考えて、 |\det\bigl(\begin{array}{cccc}B&v_{n-\Lambda+1}&\dots&v_n\end{array}\bigr)|^2 \cdot \prod_{i=1}^{n-\Lambda} \lambda_k(A) = \det(B^\dag AB)
を得る。$B = \begin{pmatrix}0\\\\I_{n-\Lambda}\end{pmatrix}$ を考えれば直ちに
\left|\det\begin{pmatrix}
v_{n-\Lambda+1,1} &\cdots &v_{n,1} \\
\vdots & \ddots & \vdots \\
v_{n-\Lambda+1,\Lambda} &\cdots &v_{n,\Lambda}
\end{pmatrix}\right|^2
\prod_{k=1}^{n-\Lambda} [\lambda - \lambda_k(A)]
&= \det(\lambda - M_{1,\dots,\Lambda}) \\
&= \prod_{k=1}^{n-\Lambda} [\lambda - \lambda_k(M_{1,\dots,\Lambda})].
■
関係式4?
関係式$\eqref{eq:r1}$,$\eqref{eq:r2}$と関係式$\eqref{eq:r3}$の間を無理やり埋めると次の式が成り立ちそうな気がする。
&\left\|
\begin{pmatrix} v_{i_1,j_1} \\ v_{i_2,j_1} \\ \vdots \\ v_{i_\Lambda,j_1} \end{pmatrix}
\wedge \dots \wedge
\begin{pmatrix} v_{i_1,j_P} \\ v_{i_2,j_P} \\ \vdots \\ v_{i_\Lambda,j_P} \end{pmatrix}
\right\|^2 \nonumber \\
&\qquad= \frac{\displaystyle
\sum_{j_{P+1} < \dots < j_\Lambda\atop \{j_p\}_{p=1}^P \cap \{j_p\}_{p=P+1}^\Lambda = \emptyset}
\prod_{k=1}^{n-\Lambda}[\lambda - \lambda_k(M_{j_1,\dots,j_\Lambda})]
}{\displaystyle
\prod_{k=1 \atop \lambda_k(A) \neq \lambda}^n [\lambda - \lambda_k(A)]} \\
&\qquad= \frac{c_{n-\Lambda}\{\lambda - \lambda_k(M_{j_1,\dots,j_P})\}_{k=1}^{n-P}}{
\displaystyle
\prod_{k=1 \atop \lambda_k(A) \neq \lambda}^n [\lambda - \lambda_k(A)]}.
但し、$\wedge は外積。$1 \le P \le \Lambda$ で、$j_1,\dots,j_P は相異なる整数 ($1\le j_p \le n)。
面倒になったので上の式が本当に成立するかどうかは誰か別の人が屹度考えてくれる。
最後に
縮退がある場合でも成立する関係式が得られた訳だが、これが実際に自分の数値計算に使えるかというと、使えない。 小行列の固有値を求めるのは大変だし、求められたとしても位相の情報が完全に欠落している。 縮退がある場合の判定に使う閾値の調整も大変だし、閾値付近で不連続な振る舞いが出ないかもちゃんと確認しなければならない。
現在使っている方法は $\adj(\lambda - A)$ の列ベクトルの中でノルム最大の物を選ぶという方法であり、 そちらの方が断然簡単である。$3\times3$ という小さな行列なので $\adj$ を直接求めるコストも小さい。
今後、Dentonの式がもっと使いやすい形に発展していく可能性はあるだろうか。
参照
- [1] 話題の「固有値から固有ベクトルを求める」を検証する - Qiita
- [2] [1908.03795] Eigenvectors from Eigenvalues
- [3] デントンとテレンスタオの論文を読み解く、その1 - ほんまにコメントほしい 日本語による証明の説明はここに。