/* -*- MaTX -*- * * 【名前】 * qz() - QZ分解 * * 【形式】 * {AA,BB,Q,Z,X} = qz(A,B) * Matrix AA,BB,Q,Z,X; * Matrix A,B; * * 【機能説明】 * qz() は,一般化固有値の計算で使われる。正方行列 A と B に対して, * {AA,BB,Q,Z,X} = qz(A,B) は,上三角行列 AA と BB,左変換のための * 行列 Q,右変換のための行列 Z,一般化固有ベクトルからなる行列 X * を求める。これらの行列の間には, * * A = Q * AA * Z * B = Q * BB * Z * A * X * diag_vec(BB) = B * X * diag_vec(AA) * Q# * Q = I * Z# * Z = I * * の関係がある。 * * 【アルゴリズム】 * Eispackの qzhes, qzit, qzval, qzvec を使用する。 * * 【例題】 * >> A = [[1 2][6 5]]; B = [[3 4][2 1]]; * >> {AA, BB, Q, zz, X} = qz(A, B); * >> Q# * A * zz - AA * === [ans] : ( 2, 2) === * ( 1) ( 2) * ( 1) -6.66133815E-16 0.00000000E+00 * ( 2) -1.72388145E-16 0.00000000E+00 * >> Q# * B * zz - BB * === [ans] : ( 2, 2) === * ( 1) ( 2) * ( 1) -1.22124533E-15 1.33226763E-15 * ( 2) -2.64545330E-17 8.88178420E-16 * >> A * X * diag_vec(BB) - B * X * diag_vec(AA) * === [ans] : ( 2, 1) === * [ ( 1)-Real ( 1)-Imag ] * ( 1) -2.66453526E-15 0.00000000E+00 * ( 2) 4.44089210E-15 0.00000000E+00 * * 【関連項目】 * hess(), qz() * */