(Greatest Common Divisor of Polynomial:
GCD)を計算する手法の一つとして二つの多項式の次シルベスター行列の唯一の特異値に対応する右特異ベクトルからGCDの係数ベクトルを計算するものがある.この手法ではの特異値分解を複数回行う必要があり計算量が莫大になってしまう.これを避ける手段としての分解から最小特異値を求めるものが存在する.本稿ではから最小特異値を計算する方法との分解からの分解を計算する方法について述べる.
最小特異値の計算
の二番目に小さい特異値がでなく,がの分解であるとする.この時正しいサイズのランダムな初期値に対して以下の手順
前進代入によってをとく
後退代入によってをとく
の正規化を行う
の繰り返しによってベクトルの系列はに収束し,
(ただしはの最小特異値)を満たす.またその収束率は
となるこの補題の証明は
S.V.Huffel ”Iterative algorithms for computing the singular subspace of a matrix associated with its smallest singular values” Linear Algebra and its Applications, Volumes 154-156, 1991, pp 675-709.
を参照されたい.
前進代入及び後退代入は行列に対してで実行可能である.また実用上は3回程度の繰り返しによってとできるため,一度分解が与えられればで最小特異値を計算することが可能である.これはの特異値分解と比べると大きな改善である.
ユニタリ変換による特異値の不変性
にユニタリ行列とをそれぞれ左右からかけてもその特異値は変化しない
の特異値分解がある時,ユニタリ行列は積について閉じているためはどちらもユニタリ行列である.そのためはの特異値分解となっており,と同じ特異値を持つ
列の入れ替え操作による特異値の不変性
右からかけることで列の入れ替えを行う行列をと書く.するとこれはユニタリ行列であるため,この性質によってシルベスター行列の最小特異値を求める代わりにの最小特異値を求めても同じであることがわかる.
シルベスター行列の更新
第一段階
の最下行にゼロベクトルを追加した時,以下の行列分解はQR分解となっている
第二段階
の第列と行列の最も右に列ベクトルを追加すると次シルベスター行列を得る.
この行列に対してがの右隣に配置されるように置換行列を右側からかけ,を得る.上式の両辺に左側から
をかけ とおくと である.の分解としては,の対角成分より下がになるようにをユニタリ行列で変形すれば良い.
ギブンズ回転
行列またはベクトルのある成分の零化はギブンズ回転によって行われる.
ギブンズ回転とは,正方行列 をベクトルの右側からかけることで鏡像回転を行うハウスホルダー変換の一種であり,明らかに
である.
とすると
は となり,の第要素を利用して第要素を零化できる.
QR分解を完了する
ギブンズ回転を利用して(2)式の三角化を引き続き行うとは既に上三角行列となっているため,の分解は,の対角以下の成分がになるように右側からギブンズ行列をかければ良い.ベクトルの第要素を用いて第要素を消去する行列を(3)のに対してとかくことにする.このギブンズ回転を複数回行うことで,は
と余分な成分の零化を実行できる.なおの第成分以下は既に全てであるためこれらのギブンズ回転を行っても変化しない.つまり
である.を(2)の両辺に右側からかけることで
を得る.式変形を行うと
がの分解となっている.