300億円欲しい

メジャーリーグのデータ解析します

三重対角行列の固有値と固有ベクトルを計算したい

3重対角行列の固有値固有ベクトルの計算をします.
ググってみても, 詳しい計算がまとまった記事が見つかりません.
ここでは詳しく書きます.

問題

$n$次の3重対角行列$A$を考えます.
\begin{align*}
A = \left(
\begin{array}{cccccc}
b & c & 0 & \ldots & 0 & 0 \\
a & b & c & \ldots & 0 & 0 \\
0 & a & b & \ldots & 0 & 0 \\
\vdots & \vdots & \vdots & \ddots & \ddots & \vdots \\
0 & 0 & 0 & \ddots & b & c \\
0 & 0 & 0 & \ldots & a & b
\end{array}
\right)
\end{align*}

このような3重対角行列の固有値, 固有ベクトルを求めたいです.

$a=c=1$, $b=2$のような形はよく見るので, その計算もしたいです.

解答

成分表示して漸化式を作る

$A$の固有値と対応する固有ベクトルをそれぞれ$\lambda$, $u$として,
$$ Au = \lambda u $$
の成分表示をします.
\begin{align*}
bu_1 + cu_2 &= \lambda u_1\\
au_{k-1} + bu_k + cu_{k+1} &= \lambda u_k \ (k = 2,3,...,n-1) \\
au_{n-1} + bu_{n} &= \lambda u_n
\end{align*}

です.
計算の都合のために, $u_0 = 0$, $u_{n+1} = 0$として,
\begin{align*}
au_{k-1} + bu_k + cu_{k+1} &= \lambda u_k \ (k = 1,...,n)
\end{align*}

が得られます. この漸化式を解くだけです.

漸化式を解く

漸化式

\begin{align*}
au_{k-1} + (b-\lambda)u_k + cu_{k+1} &= 0 \ (k = 1,...,n)
\end{align*}

特性方程式

\begin{align*}
ct^2 + (b-\lambda) t + a = 0
\end{align*}

の解を$\alpha$, $\beta$とします.
この形の漸化式の一般項は, 特性方程式の解を$n$乗して線形結合ですよね.
重解かどうかで場合分けが必要です.

$\alpha = \beta$のとき

一般項$u_n$は定数$p$, $q$を用いて

\begin{align*}
u_n = (p + qn)\alpha ^n ,
\end{align*}

です.
$u_0 = u_{n+1} = 0$より, $p = 0$.
そして$q(n+1) \alpha ^{n+1} = 0$から$q=0$が得られます.
ゆえに$u_n = 0$ ($n=1,...,n$)となります.
これは固有ベクトルは0ベクトルではありませんから, 不適です.

$\alpha \neq \beta$のとき

一般項は$u_n$は定数$p$, $q$を用いて
\begin{align*}
u_n = p \alpha ^n + q \beta ^n
\end{align*}と表せます.

$u_0 = 0$より, $p+q = 0$.
一般項は
\begin{align*}
u_n = p \left(\alpha ^n - \beta ^n\right)
\end{align*}です.

また, $u_{n+1} = 0$ より, $p (\alpha^{n+1} - \beta^{n+1}) = 0$
です.
$p=0$とすると, また$u$が0ベクトルになってしまうので, $p\neq 0$.
したがって$\alpha ^{n+1} = \beta ^{n+1}$です.
\begin{align*}
\left(\frac{\alpha }{\beta} \right)^{n+1} = 1\\
\end{align*}
から, 1の$n+1$乗根をとって,
\begin{align*}
\frac{\alpha}{\beta} = \exp\left( i\frac{2k\pi}{n+1}\right) \ (k = 0,...,n)
\end{align*}
となります.

$\alpha$と$\beta$の値が欲しいです.
漸化式の特性方程式
\begin{align*}
ct^2 + (b-\lambda) t + a = 0
\end{align*}
から, 解と係数の関係より,
\begin{align*}
\alpha + \beta &=- \frac{b-\lambda}{c} \\
\alpha \beta &= \frac{a}{c}
\end{align*}
が得られます. これを利用すると,
\begin{align*}
\alpha ^2 = \frac{\alpha}{\beta} \cdot \alpha \beta =\frac{a}{c} \exp\left( i\frac{2k\pi}{n+1}\right)
\end{align*}
なので,
\begin{align*}
\alpha = \sqrt{\frac{a}{c}} \exp\left( i\frac{k\pi}{n+1}\right) \
\end{align*}
となります.

$\beta$については, 解と係数の関係$\alpha \beta = a/c$を利用すると,
\begin{align*}
\beta &= \frac{a}{c} \cdot\frac{1}{\alpha} \\
&= \frac{a}{c} \cdot\sqrt{\frac{c}{a}}\exp\left( -i\frac{k\pi}{n+1}\right) \\
&= \sqrt{\frac{a}{c}} \exp\left( -i\frac{k\pi}{n+1}\right)
\end{align*}
となります.

固有値の計算

やっと本丸.
固有値$\lambda$を計算します.
解と係数の関係$\alpha + \beta =- (b - \lambda)/c$から,
\begin{align*}
\lambda &= b + c(\alpha + \beta) \\
&= b + c\left( \sqrt{\frac{a}{c}} \exp\left( i\frac{k\pi}{n+1}\right) + \sqrt{\frac{a}{c}} \exp\left( -i\frac{k\pi}{n+1}\right) \right) \\
&= b + \sqrt{ac}\left( \exp\left( i\frac{k\pi}{n+1}\right) + \exp\left( -i\frac{k\pi}{n+1}\right) \right) \\
&= b + 2\sqrt{ac} \cos \left( \frac{k\pi}{n+1} \right) \ (k = 1, ..., n)
\end{align*}
となります.
これが$k$番目の固有値です.

固有ベクトルの計算

$k$番目の固有値に対応する固有ベクトル$u$の, 第$l$成分$u_l$を考えます.
漸化式の一般項を計算すればいいです.
\begin{align*}
u_l &= p \left(\alpha ^l - \beta ^l \right) \\
&= p \left(\frac{a}{c} \right) ^{\frac{l}{2}} \left(\exp\left(i\frac{kl\pi}{n+1} \right) - \exp\left(-i \frac{kl\pi}{n+1} \right) \right)\\
&= 2pi \left(\frac{a}{c} \right) ^ {\frac{l}{2}} \sin\left(\frac{kl\pi}{n+1} \right)
\end{align*}
となります.
係数を払うと, 固有ベクトル$u$の第$i$成分$u_l$は
\begin{align*}
u_l &= \left(\frac{a}{c} \right) ^ {\frac{l}{2}} \sin\left(\frac{kl\pi}{n+1} \right)
\end{align*}
となります.
これで固有値固有ベクトルが求まりました.

まとめ

行に$a$, $b$, $c$が並んだ3重対角行列$A$の固有値固有ベクトルについて,
$k$番目の固有値$\lambda _k$は

\begin{align*}
\lambda _k = b + 2\sqrt{ac} \cos \left( \frac{k\pi}{n+1} \right)
\end{align*}
と表せて, 対応する固有ベクトル$u_k$は, その第$l$成分が
\begin{align*}
u_l &= \left(\frac{a}{c} \right) ^ {\frac{l}{2}} \sin\left(\frac{kl\pi}{n+1} \right)
\end{align*}
となります.

特殊例

$A$で, $a=c=1$, $b=2$とします.
運動方程式を中心差分でなんやかんやするとこの行列が出てくる気がします.
運動方程式を中心差分でなんやかかんやすると現れるのは, $a=c=-1$, $b=2$の行列です.

行列$A$の固有値は, さっき計算した結果に代入すれば
\begin{align*}
\lambda _k &= 2 + 2 \cos \left( \frac{k\pi}{n+1} \right)\\
&= 2\left(1 + \cos\left(\frac{k\pi}{n+1}\right) \right) \\
&= 2 \cdot 2\cos^2 \left(\frac{k\pi}{2(n+1)} \right)\\
&= 4\cos^2 \left(\frac{k\pi}{2(n+1)} \right)
\end{align*}
となります. 半角の公式を覚えていない人は何をやってもダメ.

"3重"を構成する要素$a$, $b$, $c$について, 行列を$A(a,b,c)$と表すことにします.
今計算したのは$A(1,2,1)$の固有値です.

ここで, 単位行列$I_n$として, $4I_n - A(1,2,1)$を考えると....
$4I_n - A(1,2,1) = A(-1,2,-1)$となりますよね.
つまり, $A(-1,2,-1)$の固有値は, $4I_n - A(1,2,1)$の固有値です.

感想

成分計算をすれば, あとは感情を失くした漸化式解きマシーンになればOKです.