コンパニオン行列

\(c_0, c_1, \ldots, c_{n-1} \in \R\) に対して以下の \(n \times n\) 行列をコンパニオン行列と呼ぶ。 フロベニウスの同伴行列とも呼ばれる。

\[\begin{bmatrix} 0 & 1 & 0 & \cdots & 0 \\ \vdots & & 1 \\ & & & \ddots \\ 0 & & & & 1 \\ -c_0 & -c_1 & \cdots & -c_{n-2} & -c_{n-1} \end{bmatrix}\]

固有多項式

コンパニオン行列で最も重要な性質は、この行列(\(A\) と表す)の固有多項式 \(P_A(s)\) が以下の形になることである。

\[s^n + c_{n-1}s^{n-1} + \cdots + c_1 s + c_0\]

そこでこのコンパニオン行列を、「多項式 \(s^n + c_{n-1}s^{n-1} + \cdots + c_1 s + c_0\) に関するコンパニオン行列」とも呼ぶ。 コンパニオン行列は与えられた多項式を固有多項式として持つ行列を設計したい場合に活用できる。

レゾルベント

\(s\) が固有値でない場合、レゾルベント \((sI - A)^{-1}\) が存在する。\(B = \;^t[0 \ \cdots \ 0 \ 1]\) と置いたとき、

\[(s I - A)^{-1} B = \frac{1}{P_A(s) } \begin{bmatrix} 1 \\ s \\ \vdots \\ s^{n-1} \end{bmatrix}\]

となる。

固有ベクトルと対角化

\(\lambda\) を固有値、つまり多項式 \(P_A(s)\) の根とすると、 \(\;^t \begin{bmatrix} 1 & \lambda & \cdots & \lambda^{n-1} \end{bmatrix}\) はコンパニオン行列の固有値 \(\lambda\) の固有ベクトルとなる。

よって、コンパニオン行列の固有方程式が重根を持たないならば、\(n\) 個の固有値から定義されるヴァンデルモンド行列によってコンパニオン行列は対角化される。

固有多項式が重根を持つ場合

固有多項式が重根を持つ場合は、対角化はできないが、ジョルダン標準形に似たある種の標準化が合流型ヴァンデルモンド行列を用いて具体的に記述できる。

\(\lambda\) が \(n_\lambda\) 重根であるとすると、

\[\begin{aligned} u_\lambda^{(i)} &= \begin{bmatrix} u_{i,0} \\ \vdots \\ u_{i,n-1} \end{bmatrix} \ (i=0, \ldots, n_\lambda - 1)\\ u_{i,j} & = \frac{d^i}{ds^i} s^j \lvert_{s = \lambda} = \begin{cases} 0 & \text{if } i > j \\ \frac{j!}{(j-i)!} \lambda^{j-i} & \text{if } i \leq j \end{cases} \end{aligned}\]

とする、具体的に書くと、

\[u_\lambda^{(0)} = \begin{bmatrix} 1 \\ \lambda \\ \vdots \\ \lambda^{n-1} \end{bmatrix}, u_\lambda^{(1)} = \begin{bmatrix} 0 \\ 1 \\ 2 \lambda \\ \vdots \\ (n-1)\lambda^{n-2} \end{bmatrix}, u_\lambda^{(2)} = \begin{bmatrix} 0 \\ 0 \\ 2 \\ 6 \lambda \\ \vdots \\ (n-1)(n-2)\lambda^{n-3} \end{bmatrix}, \ldots, u_\lambda^{(n_\lambda - 1)} = \begin{bmatrix} 0 \\ \vdots \\ 0 \\ n_\lambda! \\ \frac{(n_\lambda+1)!}{2!} \lambda\\ \vdots \\ \frac{(n-1)!}{(n-n_\lambda)!}\lambda^{n-n_\lambda} \end{bmatrix},\]

である。すると、

\[\begin{aligned} A u_\lambda^{(0)} &= \lambda u_\lambda^{(0)} \\ A u_\lambda^{(i)} &= i u_\lambda^{(i-1)} + \lambda u_\lambda^{(i)} \ (i=1, \ldots, n_\lambda - 1) \end{aligned}\]

が成立する。これは合流型ヴァンデルモンド行列でジョルダン標準形に似た形に変換できることを意味する。 このときはジョルダンブロックの代わりに次のブロックが現れる。

\[\begin{bmatrix} \lambda & 1 \\ & \lambda & 2 & \\ & & \ddots & \ddots \\ & & & \lambda & n_\lambda - 1 \\ & & & & \lambda \end{bmatrix}\]

証明

固有多項式

\(A\) をコンパニオン行列とすると、

\[\det(sI - A) = \begin{vmatrix} s & -1 & 0 & \cdots & 0 \\ 0 & s & -1 \\ \vdots & & \ddots & \ddots \\ 0 & & & s & -1 \\ c_0 & c_1 & \cdots & c_{n-2} & s + c_{n-1} \end{vmatrix} = s \begin{vmatrix} s & -1 \\ & \ddots & \ddots \\ & & s & -1 \\ c_1 & \cdots & c_{n-2} & s + c_{n-1} \end{vmatrix} +(-1)^{n-1} c_0 \begin{vmatrix} -1 & \\ s & -1 \\ & \ddots & \ddots \\ & & s & -1 \\ \end{vmatrix} = s \begin{vmatrix} s & -1 \\ & \ddots & \ddots \\ & & s & -1 \\ c_1 & \cdots & c_{n-2} & s + c_{n-1} \end{vmatrix} + c_0\]

となり、

\[s \cdot (\text{一つサイズの小さいコンパニオン行列式}) + c_0\]

という形となり、一つサイズの小さいコンパニオン行列式へと帰納的に帰結される。

サイズ1のコンパニオン行列式は \(s + c_0\) であるので、 一つサイズの小さいコンパニオン行列式は

\[c_1 + c_2 s + \cdots + c_{n-1} s^{n-2}\]

となるので、

\[\det(sI - A) = c_0 + c_1 s + \cdots + c_{n-1} s^{n-1}\]

がわかる。

レゾルベント

\((sI - A)^{-1} B\) は \((sI - A)^{-1}\) の右端の列 (第n列) を取り出したものである。 \((sI - A)^{-1}\) の \((i, n)\) 要素は \(sI - A\) の \((n, i)\) 小行列式を \(\det(sI - A)\)、つまり固有多項式で割ったものである。

よって、\(sI - A\) の \((n, i)\) 小行列式が \(s^{i-1}\) であることを示せばよい。

固有ベクトル

\[\begin{bmatrix} 0 & 1 & 0 & \cdots & 0 \\ \vdots & & 1 \\ & & & \ddots \\ 0 & & & & 1 \\ -c_0 & -c_1 & \cdots & -c_{n-2} & -c_{n-1} \end{bmatrix} \begin{bmatrix} 1 \\ \lambda \\ \vdots \\ \lambda^{n-1} \end{bmatrix} = \begin{bmatrix} \lambda \\ \vdots \\ \lambda^{n-1} \\ -c_0 -c_1 \lambda - \cdots - c_{n-1} \lambda^{n-1} \end{bmatrix}\]

ここで、\(\lambda\) は固有方程式の根なので、\(P_A(\lambda) = \lambda^n + c_{n-1}\lambda^{n-1} + \cdots + c_1 \lambda + c_0 = 0\) なので

\[(右辺) = \begin{bmatrix} \lambda \\ \vdots \\ \lambda^{n-1} \\ \lambda^n \end{bmatrix} = \lambda \begin{bmatrix} 1 \\ \vdots \\ \lambda^{n-2} \\ \lambda^{n-1} \end{bmatrix}\]

重根の場合

\(Ae_\lambda^{(0)} = \lambda e_\lambda^{(0)}\) は上で示したこととまったく同じなので、 \(Ae_\lambda^{(i)} = i e_\lambda^{(i-1)} + \lambda e_\lambda^{(i)}\) for \((1 \leq i \leq n_\lambda - 1)\) を示す。

\(\lambda\) は \(n_\lambda\) 重根なので、\(1 \leq i \leq n_\lambda - 1\) に対して \(\frac{d^i}{ds^i}P_A(\lambda) = 0\) が成り立つ。これは \(u_{i,j}\) を使って

\[\frac{d^i}{ds^i}P_A(\lambda) = \frac{d^i}{ds^i}|_{s=\lambda} (\sum_{j=0}^n c_j s^j + s^n) = \sum_{j=0}^n c_j u_{i,j} + \frac{n!}{(n-i)!} s^{n-i}= 0\]

と表すことができる。よって、

\[A e_\lambda^{(i)} = \begin{bmatrix} 0 & 1 & 0 & \cdots & 0 \\ \vdots & & 1 \\ & & & \ddots \\ 0 & & & & 1 \\ -c_0 & -c_1 & \cdots & -c_{n-2} & -c_{n-1} \end{bmatrix} \begin{bmatrix} u_{i,0} \\ \vdots \\ u_{i,n-1} \end{bmatrix} = \begin{bmatrix} u_{i,1} \\ \vdots \\ u_{i,n-1} \\ -\sum_{j=0}^n c_j u_{i,j} \end{bmatrix} = \begin{bmatrix} u_{i,1} \\ \vdots \\ u_{i,n-1} \\ \frac{n!}{(n-i)!} \lambda^{n-i} \end{bmatrix} \ \cdots(*)\]

ここで \(u_{i,j+1}, u_{i,j}, u_{i-1,j}\) の間には \(u_{i,j+1} = i u_{i-1,j} + \lambda u_{i,j}\) という関係がある。

\[u_{i,j+1} - i u_{i-1,j} - \lambda u_{i,j} = \frac{(j+1)!}{(j-i+1)!} \lambda^{j-i+1} - i \frac{j!}{(j-i+1)!} \lambda^{j-i+1} - \frac{j!}{(j-i)!} \lambda^{j-i+1} = \frac{j!}{(j-i+1)!}[(j+1) - i - (j - i + 1)]\lambda^{j-i+1} = 0\]

となる。さらに \(\frac{n!}{(n-i)!} \lambda^{n-i} = i u_{i-1, n-1} + \lambda u_{i,n-1}\) が成立する。

\[(右辺) = i \frac{(n-1)!}{(n-i)!} \lambda^{n-i} + \lambda \frac{(n-1)!}{(n-i-1)!} \lambda^{n-i-1} = \frac{(n-1)!}{(n-i)!}[i + (n-i)]\lambda^{n-i} = \frac{(n-1)!}{(n-i)!} n \lambda^{n-i} = (左辺)\]

よって

\[(*) = \begin{bmatrix} i u_{i-1, 0} + \lambda u_{i,0} \\ \vdots \\ i u_{i-1, n-2} + \lambda u_{i,n-2} \\ i u_{i-1, n-1} + \lambda u_{i,n-1} \\ \end{bmatrix} = i \begin{bmatrix} u_{i-1, 0} \\ \vdots \\ u_{i-1, n-1} \end{bmatrix} + \lambda \begin{bmatrix} u_{i, 0} \\ \vdots \\ u_{i, n-1} \end{bmatrix} = i e_\lambda^{(i-1)} + \lambda e_\lambda^{(i)}\]