next up previous contents
Next: settimer Up: リファレンスマニュアル Previous: scanf

  
schur

【目的】
schur - シュア分解
【形式】
{U,T} = schur(A)
   Matrix U,T;
   Matrix A;
【詳細】
schur()は,行列 A のSchur型を求める。行列の複素Schur型は,対角成分 に行列の固有値をもつ上三角行列であり,実Schur型は,対角成分に行列 の実固有値と複素固有値をもつ 2 x 2 のブロックをもつブロック上三角 行列である。 {U,T} = schur(A)は,Schur行列 T と直交行列(ユニタリ行列) U を求める。これらの行列の間には,A = U * T * U#,U# * U = I(A) の 関係がある。shcur(A)は,A が実行列なら,実Schur型を,A が複素行列 なら,複素Schur型を求める。
【算法】
schur(A) は,実行列に対してEispackのルーチンの ortran, orthes, hqr2 を使う。orthes は直交相似変換を使って実行列をヘッセンベルグ型 に変換。hqr2 は,QR法でヘッセンベルグ行列の固有値を求める。 schur(A)は,複素行列に対してEispackのqzhes, qzit, qzval, qzvec を 使って,QZ法で計算する。
【例題】
>> {U,T} = schur([[1 2 3][4 5 6][7 8 9]]);
>> print U,T;
=== [U] : (  3,  3) ===
           (  1)           (  2)           (  3)     
(  1)  2.31970687E-01  8.82905960E-01  4.08248290E-01
(  2)  5.25322093E-01  2.39520420E-01 -8.16496581E-01
(  3)  8.18673499E-01 -4.03865120E-01  4.08248290E-01
=== [T] : (  3,  3) ===
           (  1)           (  2)           (  3)     
(  1)  1.61168440E+01  4.89897949E+00  5.68558108E-16
(  2) -4.99901156E-27 -1.11684397E+00  2.27776519E-16
(  3)  0.00000000E+00 -3.06646861E-20 -1.28803904E-16
【参照】
hess(2.91), qr(2.168), qz(2.171)


Masanobu KOGA 平成11年10月2日