/* -*- MaTX -*- * * 【名前】 * hess() - ヘッセンベルグ型行列 * * 【形式】 * {Q,H} = hess(A) * Matrix Q,H; * Matrix A; * * 【機能説明】 * hess()は,行列 A のヘッセンベルグ型を求める。ヘッセンベルグ行列の * 成分は,第 1 副対角成分より下が全てゼロになる。 * {Q,H} = hess(A)は,ヘッセンベルグ行列 H と直交行列(ユニタリ行列) H * を求める。これらの行列の間には,A = Q * H * Q#,Q# * Q = I(A) の * 関係がある。 * * 【アルゴリズム】 * hess(A) は,実行列に対してEispackのルーチンの ortran と orthes を * 使う。orthes は直交相似変換を使って実行列をヘッセンベルグ型に変換 * する。hess(A)は,複素行列に対してEispackのqzhesを使う。 * * 【例題】 * >> {Q,H} = hess([[1 2 3][4 5 6][7 8 9]]); * >> print Q,H; * === [Q] : ( 3, 3) === * ( 1) ( 2) ( 3) * ( 1) 1.00000000E+00 0.00000000E+00 0.00000000E+00 * ( 2) 0.00000000E+00 -4.96138938E-01 -8.68243142E-01 * ( 3) 0.00000000E+00 -8.68243142E-01 4.96138938E-01 * === [H] : ( 3, 3) === * ( 1) ( 2) ( 3) * ( 1) 1.00000000E+00 -3.59700730E+00 -2.48069469E-01 * ( 2) -8.06225775E+00 1.40461538E+01 2.83076923E+00 * ( 3) 0.00000000E+00 8.30769231E-01 -4.61538462E-02 * * 【関連項目】 * shcur(), qr(), qz() */