next up previous contents
Next: 11 Sylvester の慣性律, 2次形式の対角化 Up: 固有値問題ノートの補足 Previous: 9.3 2分法の一般化固有値問題への拡張

10 Shur 分解

任意の $ A\in\C^{n\times n}$ に対して、 unitary 行列 $ U$ と上三角行列 $ S$ が存在して、

$\displaystyle U^H A U=S.
$

ここで $ U^H$ $ U$ の Hermite 共役 (共役転置) $ \overline U^T$ を表わす。 これを $ A$ Schur 分解という。

(事実自体は、線形代数の教科書、 例えば佐武 [11] IV§3 にも書いてあるが、 Schur 分解という名前は冠されていないことが多いようである。)

$ U=(u_1,u_2,\cdots,u_n)$ の列ベクトル $ u_j$ Schur ベクトルと呼ぶ。

$ A$ が Hermite 行列ならば、固有ベクトルの直交性により、 $ S$ が対角行列になり、$ u_j$ $ A$ の固有ベクトルになる。

実行列 $ A$ に対しては、$ U$ を実直交行列 $ Q$ に制限し、 $ S$ を対角ブロックの大きさが $ 2$ 以下のブロック上三角行列 7に緩和した形の実 Schur 分解

$\displaystyle Q^T A Q=S
$

が存在する (実 Schur 分解)。 $ S$ の対角ブロックの固有値が $ A$ の固有値である。

(実) Schur 分解の存在は数学的に保証されているが、 それを有限回の四則と開平演算で計算することはできない

Hermite 対称でもないのに、固有ベクトルではなく Schur ベクトルを計算する のは、これが数値的に安定に計算できるからだという。

MATLAB では schur() という関数が用意されている。 [u,t]=schur(a) として u*t*u'-a を計算すると…


next up previous contents
Next: 11 Sylvester の慣性律, 2次形式の対角化 Up: 固有値問題ノートの補足 Previous: 9.3 2分法の一般化固有値問題への拡張
桂田 祐史
2015-12-22