数値線形代数 においてヤコビ法(ヤコビほう、古典ヤコビ法) は実対称行列 の固有値 と固有ベクトルをすべて同時に求める手法である[ 1] [ 2] 。ドイツ の数学者 カール・グスタフ・ヤコブ・ヤコビ の名前にちなむ。(電子計算機が発明開発された初期において,固有値問題を解く方法としてフォン・ノイマンがこの方法を提唱したので一時期フォン・ノイマンの方法と呼ばれていたようである。しかしその後に数学者・天文学者ヤコビが既にこの方法も含めた計算手法について公表していたことが判明したので,今日ではヤコビの対角化法と呼ばれる。)
原理
対称行列
A
=
[
a
i
j
]
∈ ∈ -->
R
n
× × -->
n
{\displaystyle A=[a_{ij}]\in \mathbb {R} ^{n\times n}}
が与えられたとき、ヤコビの回転行列
U
1
=
[
u
i
j
]
{\displaystyle U_{1}=[u_{ij}]}
を次のように定める[ 1] [ 2] 。
U
1
:=
[
1
⋯ ⋯ -->
0
⋯ ⋯ -->
0
⋯ ⋯ -->
0
⋮ ⋮ -->
⋱ ⋱ -->
⋮ ⋮ -->
⋮ ⋮ -->
⋮ ⋮ -->
0
⋯ ⋯ -->
cos
-->
(
θ θ -->
)
⋯ ⋯ -->
sin
-->
(
θ θ -->
)
⋯ ⋯ -->
0
⋮ ⋮ -->
⋮ ⋮ -->
⋱ ⋱ -->
⋮ ⋮ -->
⋮ ⋮ -->
0
⋯ ⋯ -->
− − -->
sin
-->
(
θ θ -->
)
⋯ ⋯ -->
cos
-->
(
θ θ -->
)
⋯ ⋯ -->
0
⋮ ⋮ -->
⋮ ⋮ -->
⋮ ⋮ -->
⋱ ⋱ -->
⋮ ⋮ -->
0
⋯ ⋯ -->
0
⋯ ⋯ -->
0
⋯ ⋯ -->
1
]
,
u
p
p
=
u
q
q
=
cos
-->
(
θ θ -->
)
,
u
p
q
=
sin
-->
(
θ θ -->
)
,
u
q
p
=
− − -->
sin
-->
(
θ θ -->
)
.
{\displaystyle U_{1}:={\begin{bmatrix}1&\cdots &0&\cdots &0&\cdots &0\\\vdots &\ddots &\vdots &&\vdots &&\vdots \\0&\cdots &\cos(\theta )&\cdots &\sin(\theta )&\cdots &0\\\vdots &&\vdots &\ddots &\vdots &&\vdots \\0&\cdots &-\sin(\theta )&\cdots &\cos(\theta )&\cdots &0\\\vdots &&\vdots &&\vdots &\ddots &\vdots \\0&\cdots &0&\cdots &0&\cdots &1\end{bmatrix}},\quad u_{pp}=u_{qq}=\cos(\theta ),\quad u_{pq}=\sin(\theta ),\quad u_{qp}=-\sin(\theta ).}
tan
-->
(
2
θ θ -->
)
=
− − -->
2
a
p
q
a
p
p
− − -->
a
q
q
,
− − -->
π π -->
/
4
≤ ≤ -->
θ θ -->
≤ ≤ -->
π π -->
/
4.
{\displaystyle \tan(2\theta )={\frac {-2a_{pq}}{a_{pp}-a_{qq}}},\quad -\pi /4\leq \theta \leq \pi /4.}
このとき、非対角要素のうちで絶対値最大な要素
a
p
q
{\displaystyle a_{pq}}
に対して
A
1
:=
U
1
t
A
U
1
{\displaystyle A_{1}:=U_{1}^{t}AU_{1}}
とおく。以下、
A
ν ν -->
− − -->
1
=
U
ν ν -->
− − -->
1
t
A
ν ν -->
− − -->
2
U
ν ν -->
− − -->
1
=
U
ν ν -->
− − -->
1
t
⋯ ⋯ -->
U
1
t
A
U
1
⋯ ⋯ -->
U
ν ν -->
− − -->
1
{\displaystyle A_{\nu -1}=U_{\nu -1}^{t}A_{\nu -2}U_{\nu -1}=U_{\nu -1}^{t}\cdots U_{1}^{t}AU_{1}\cdots U_{\nu -1}}
の非対角要素のうち、絶対値最大な要素に対して順次同じ操作を行って回転行列
U
ν ν -->
{\displaystyle U_{\nu }}
を定める。このとき、
lim
ν ν -->
→ → -->
∞ ∞ -->
A
ν ν -->
=
D
{\displaystyle \lim _{\nu \to \infty }A_{\nu }=D}
が成り立つ (
D
{\displaystyle D}
は対角行列)[ 1] [ 2] 。
D
{\displaystyle D}
の対角要素が
A
{\displaystyle A}
の固有値で
∏ ∏ -->
i
=
1
∞ ∞ -->
U
i
{\displaystyle \prod _{i=1}^{\infty }U_{i}}
の各列が固有ベクトルを与える[ 1] [ 2] 。
変種
上記で述べられている絶対値が最大の非対角要素を毎回直交回転で消去し続ける(ヤコビが本来提案したのと同じ)方法を古典ヤコビ法と称する。
電子計算機上での能率の面などから古典法から消去の方針を変更して得られた以下のような変種がある[ 1] 。
しきい値ヤコビ法 (
ϵ ϵ -->
1
≥ ≥ -->
ϵ ϵ -->
2
≥ ≥ -->
⋯ ⋯ -->
{\displaystyle \epsilon _{1}\geq \epsilon _{2}\geq \cdots }
となるようにしきい値
ϵ ϵ -->
ν ν -->
>
0
{\displaystyle \epsilon _{\nu }>0}
を選び、
|
a
p
q
(
ν ν -->
)
|
>
ϵ ϵ -->
ν ν -->
{\displaystyle |a_{pq}^{(\nu )}|>\epsilon _{\nu }}
なる
a
p
q
(
ν ν -->
)
{\displaystyle a_{pq}^{(\nu )}}
に対して回転を施す)[ 1]
特別巡回ヤコビ法 (2次収束する)[ 1]
そのほかにも算法の並列性を引き出して使う並列化ヤコビ法[ 3] や、電子計算機上での記憶参照の局所性を高めるブロック化算法としてのブロック化ヤコビ法もある。
意義
現代ではQR法 や可積分アルゴリズム など、ヤコビ法(古典ヤコビ法)より計算が早くて精度の良い方法が多く存在する[ 1] [ 2] [ 4] [ 5] 。しかしそれらのほとんどは固有ベクトルを併せて求めることはできないので、逆べき乗法 を使う必要がある[ 1] [ 2] 。そのため現代においても,すべての固有値 および固有ベクトルが同時に求められてしかも終盤で2次収束をするヤコビ法(古典ヤコビ法)は重宝されている[ 1] [ 2] [ 6] [ 7] [ 8] 。なお,ヤコビ法は行列が密で実対称の場合ばかりが特に有名であるが,同様の手法で複素エルミート密行列の全固有値全固有ベクトルを求めることができる。なおかつては(一般的には要素が複素数の)非対称な密行列に対する固有値問題に対するヤコビ法も研究されていた。
出典
^ a b c d e f g h i j 山本哲朗『数値解析入門』(増訂版)サイエンス社 〈サイエンスライブラリ 現代数学への入門 14〉、2003年6月。ISBN 4-7819-1038-6 。
^ a b c d e f g 森正武 . 数値解析 第2版. 共立出版 .
^ Ahmed H. Sameh: "On Jacobi and Jacobi-Like Algorithms for a Parallel Computer", Math. Comp. Vol.25, No.115(July 1971), pp.579-590
^ 数値線形代数の数理とHPC , 櫻井鉄也, 松尾宇泰, 片桐孝洋編(シリーズ応用数理 / 日本応用数理学会 監修, 第6巻)共立出版 , 2018.8
^ David S. Watkins (2008), The Matrix Eigenvalue Problem: GR and Krylov Subspace Methods, SIAM .
^ Demmel, James; Veselic, Kresimir: "Jacobi's method is more accurate than QR", SIAM J. Matrix Anal. and Appl. v13(4), pp.1204-1245(1992).
^ Walter F. Mascarenhas: "A note on Jacobi Being More Accurate Than QR", SIAM. J. Matrix Anal. and Appl. v15(1), pp.215-218 (1994).
^ Roy Mathias: "Accurate Eigensystem Computations by Jacobi Methods",SIAM J. Matrix Anal. and Appl. v16(3), (1995).
参考文献
Golub, G.H.; van der Vorst, H.A. (2000). "Eigenvalue computation in the 20th century". en:Journal of Computational and Applied Mathematics . 123 (1–2): 35–65.
Sameh, A.H. (1971). "On Jacobi and Jacobi-like algorithms for a parallel computer". en:Mathematics of Computation . 25 (115): 579–590.
Veselić, K. (1979). "On a class of Jacobi-like procedures for diagonalising arbitrary real matrices". en:Numerische Mathematik . 33 (2): 157–172.
Veselić, K.; Wenzel, H. J. (1979). "A quadratically convergent Jacobi-like method for real matrices with complex eigenvalues". en:Numerische Mathematik . 33 (4): 425–435.
Gene H. Golub, Charles F. van Loan: "Matrix Computations" (3rd Ed.), 第8.4節 "Jacobi Methods", Johns Hopkins University Press (1996).
外部リンク