ランチョス法

提供: testwiki
ナビゲーションに移動 検索に移動

テンプレート:Pathnav ランチョス法(ランチョスほう、テンプレート:Lang-en-short)とは、対象となる対称行列三重対角化する手法。

コルネリウス・ランチョスによって開発された反復計算法である。クリロフ部分空間法の一つ。

概要

行列 An×n の対称行列とする。 これが直交行列 P によって三重対角行列 B に直交変換されたとする。

B=PTAP

ここで、A が対称であるから B も対称である。 そこで、三重対角化された行列 B の成分を次のようにおくことにする。

B=(α1β1β1α2β20β2α3β30αn1βn1βn1αn)

一方、直交行列 P の第 k 列のベクトルを 𝒖k とすると、P の直交性から

𝒖iT𝒖j={0(ij),1(i=j)

が成立する。 また上記の直交変換はつぎのように書くことができる。

AP=PB

ランチョス法とは、この関係から直接変換行列 P すなわちベクトル 𝒖k を定めながら、それと同時に三重対角化を行っていく方法である。

上の等式で P=[𝒖1,𝒖2,,𝒖k,,𝒖n] とおき、 行列 B の成分を代入して両辺の各列を比較すると、次式が得られる。

{A𝒖1=α1𝒖1+β1𝒖2A𝒖2=β1𝒖1+α2𝒖2+β2𝒖3A𝒖k=βk1𝒖k1+αk𝒖k+βk𝒖k+1A𝒖n=βn1𝒖n1+αn𝒖n

k 行目の式に左から 𝒖kT を乗じると、直交性より以下のように αk が求められる。

αk=𝒖kTA𝒖k

また、𝒖k1,𝒖k がすでに求められているとすると、𝒖k+1 はつぎのように計算することができる。 まず 𝒗k+1=βk𝒖k+1

𝒗k+1=A𝒖kβk1𝒖k1αk𝒖k

によって求める。つぎに 𝒖k+1正規化条件 𝒖k+1T𝒖k+1=1 を満足させるために βk

βk=||𝒗k+1||2

と定める。そして、

𝒖k+1=1βk𝒗k+1

とすればよい。

このようにして、||𝒖1||2=1 なる任意の初期ベクトル 𝒖1 からはじめて順次 αk,βk を計算することにより三重対角行列 B を求めることができる。

特徴

もとの行列 A は変形を受けず、A とベクトルの積だけで計算が行われるのがランチョス法の長所である。 このため、行列要素にゼロの割合が多い疎行列の対角化法として有力なものである。 また、直交性から、3項のみから成る漸化関係によって逐次求める量が得られていくのがこの方法の大きな特徴である。

しかし計算を進めていくうちに丸め誤差の累積によって 𝒖k の直交性がくずれてしまう可能性も持っている。

参考文献

テンプレート:参照方法

  • テンプレート:Cite book
  • テンプレート:Cite book
  • Louis Komzsik: "The Lanczos Method: Evolution and Application", SIAM, ISBN 978-0-898715-37-8 (2003).
  • Ge'rard Meurant: "The Lanczos and Conjugate Gradient Algorithms: From Theory to Finite Precision Computations", SIAM, ISBN 978-0-898716-16-0(2006年)。

関連項目

テンプレート:Linear algebra