任意の
に対して、
unitary 行列
と上三角行列
が存在して、
ここで
(事実自体は、線形代数の教科書、 例えば佐武 [11] IV§3 にも書いてあるが、 Schur 分解という名前は冠されていないことが多いようである。)
の列ベクトル
を Schur ベクトルと呼ぶ。
が Hermite 行列ならば、固有ベクトルの直交性により、
が対角行列になり、
は
の固有ベクトルになる。
実行列
に対しては、
を実直交行列
に制限し、
を対角ブロックの大きさが
以下のブロック上三角行列
7に緩和した形の実 Schur 分解
が存在する (実 Schur 分解)。
(実) Schur 分解の存在は数学的に保証されているが、 それを有限回の四則と開平演算で計算することはできない
Hermite 対称でもないのに、固有ベクトルではなく Schur ベクトルを計算する のは、これが数値的に安定に計算できるからだという。
MATLAB では schur() という関数が用意されている。 [u,t]=schur(a) として u*t*u'-a を計算すると…