Loading [Contrib]/a11y/accessibility-menu.js

数値解析 第15回 (5) ヤコビ法

Ex.12 の続き

 Ex.12 をめげずに続けてみましょう。 次は $(2,3)$-成分をターゲットにして、 再び $(1,2)$-成分、$(1,3)$-成分、$\cdots$ と 3周回してみると、 めでたく ( 許容誤差の範囲で ) 対角化に成功します: \begin{align} A &=\mat{rrr}{ 1.0000000000 & 2.0000000000 & 3.0000000000 \\ 2.0000000000 & 5.0000000000 & 4.0000000000 \\ 3.0000000000 & 4.0000000000 & 7.0000000000 \\ } \end{align}
------------------------------ round 1 ------------------------------
\begin{align} R_1 &= R(1, 2; -0.3926990817)\\ A_1 &= {}^tR_1\, A\, R_1\\ &=\mat{rrr}{ 0.1715728753 & -0.0000000000 & 1.2409048681 \\ -0.0000000000 & 5.8284271247 & 4.8435684271 \\ 1.2409048681 & 4.8435684271 & 7.0000000000 \\ } \end{align} \begin{align} R_2 &= R(1, 3; -0.1743043552)\\ A_2 &= {}^tR_2\, A_1\, R_2 \\ &=\mat{rrr}{ -0.0469396931 & -0.8399865337 & 0.0000000000 \\ -0.8399865337 & 5.8284271247 & 4.7701758596 \\ 0.0000000000 & 4.7701758596 & 7.2185125684 \\ } \end{align} \begin{align} R_3 &= R(2, 3; -0.7130543098)\\ A_3 &= {}^tR_3\, A_2\, R_3 \\ &=\mat{rrr}{ -0.0469396931 & -0.6353384637 & -0.5494746703 \\ -0.6353384637 & 1.7029240147 & 0.0000000000 \\ -0.5494746703 & -0.0000000000 & 11.3440156784 \\ } \end{align}
----------------------------- round 2 ------------------------------
\begin{align} R_4 &= R(1, 2; 0.3140332911)\\ A_4 &= {}^tR_4\, A_3\, R_4 \\ &=\mat{rrr}{ -0.2532851914 & 0.0000000000 & -0.5226028516 \\ 0.0000000000 & 1.9092695130 & 0.1697311779 \\ -0.5226028516 & 0.1697311779 & 11.3440156784 \\ } \end{align} \begin{align} R_5 &= R(1, 3; 0.0449410398)\\ A_5 &= {}^tR_5\, A_4\, R_5 \\ &=\mat{rrr}{ -0.2767873315 & 0.0076253282 & 0.0000000000 \\ 0.0076253282 & 1.9092695130 & 0.1695598040 \\ 0.0000000000 & 0.1695598040 & 11.3675178185 \\ } \end{align} \begin{align} R_6 &= R(2, 3; -0.0179195128)\\ A_6 &= {}^tR_6\, A_5\, R_6 \\ &=\mat{rrr}{ -0.2767873315 & 0.0076241040 & 0.0001366349 \\ 0.0076241040 & 1.9062307587 & -0.0000000000 \\ 0.0001366349 & -0.0000000000 & 11.3705565729 \\ } \end{align}
------------------------------ round 3 ------------------------------
\begin{align} R_7 &= R(1, 2; -0.0034924035)\\ A_7 &= {}^tR_7\, A_6\, R_7 \\ &=\mat{rrr}{ -0.2768139581 & 0.0000000000 & 0.0001366340 \\ 0.0000000000 & 1.9062573852 & 0.0000004772 \\ 0.0001366340 & 0.0000004772 & 11.3705565729 \\ } \end{align} \begin{align} R_8 &= R(1, 3; -0.0000117309)\\ A_8 &= {}^tR_8\, A_7\, R_8 \\ &=\mat{rrr}{ -0.2768139597 & -0.0000000000 & -0.0000000000 \\ -0.0000000000 & 1.9062573852 & 0.0000004772 \\ 0.0000000000 & 0.0000004772 & 11.3705565745 \\ } \end{align} \begin{align} \require{color} R_9 &= R(2, 3; -0.0000000504)\\ A_9 &= {}^tR_9\, A_8\, R_9 \\ &=\mat{rrr}{ -0.2768139597 & \textcolor{red}{-0.0000000000} & \textcolor{red}{-0.0000000000} \\ \textcolor{red}{-0.0000000000} & 1.9062573852 & \textcolor{red}{0.0000000000} \\ \textcolor{red}{0.0000000000} & \textcolor{red}{-0.0000000000} & 11.3705565745 \\ } \end{align} すなわち \begin{align} P &= R_1\,R_2\,R_3\,R_4\,R_5\,R_6\,R_7\,R_8\,R_9 \\ &=\mat{rrr}{ 0.9385567220 & -0.1080624304 & 0.3277709425 \\ -0.1070043104 & 0.8118025918 & 0.5740441007 \\ -0.3281179013 & -0.5738458531 & 0.7503596336 \\ }\\ \end{align} を用いて \begin{align} P^{-1}\,A\,P &={}^tP\,A\,P \\ &=\mat{rrr}{ -0.2768139597 & -0.0000000000 & 0.0000000000 \\ -0.0000000000 & 1.9062573852 & -0.0000000000 \\ 0.0000000000 & -0.0000000000 & 11.3705565745 \\ } \end{align} と対角化できました。

 このように 0 でない非対角成分(モグラ)を叩き続けて実対称行列を対角化する方法を「ヤコビ法」と呼びます。 なぜ収束するのかが知りたい人は付録を見てください。

ヤコビ法の色々

 「モグラを叩く」順番によってヤコビ法に色々な種類があります。
  • シリアル・ヤコビ法
    ... 上の例のように順番通りに叩いてゆく。
  • 古典的ヤコビ法
    ... 絶対値最大の非対角要素を次々と叩いてゆく。
  • 閾値(しきいち)ヤコビ法
    ... 非対角要素を順番に見て、設定した閾値より大きい絶対値を持つときだけ叩く。
 今日の本編はここで終わりです。