メインコンテンツ

bdschur

ブロック対角 Schur 分解

説明

[T,B,BLKS] = bdschur(A,CONDMAX) は、変換行列 T を計算します。その際、B = T-1 AT がブロック対角、かつ各対角ブロックが上三角準 Schur 行列として扱われます。

[T,B] = bdschur(A,[],BLKS) は目的のブロック サイズをあらかじめ指定します。ユーザーがこの構文を使用する時点で、入力行列 A は既に Schur 形式になっているはずです。

入力引数

すべて折りたたむ

ブロック対角 Schur 分解の行列。実数値または複素数値の正方行列として指定します。

T の条件数の上限。1 より大きい実数スカラーとして指定します。CONDMAX を使用して、反転に関するブロック サイズと T の条件との間のトレードオフを制御します。CONDMAX の値が大きいと、ブロックは小さくなり、T はさらに悪条件 (ill-conditioned) になります。

出力引数

すべて折りたたむ

ブロック対角化変換。行列として返されます。

B = T-1 AT となるブロック対角行列。

ブロック対角分解のブロック サイズ。ベクトルとして返されます。

アルゴリズム

bdschur(A,CONDMAX) は、まず A を Schur 形式に低次元化してから (schur を参照)、非対角ブロックをゼロにすることで固有値を分離しようと試みます。反復固有値または近傍固有値のクラスターの場合、この分離において、条件数が CONDMAX を超える悪条件の変換が必要になることがあります。そのような固有値は、サイズが 1 または 2 より大きい対角ブロックにまとめられます。bdschur は、eig の変換 V の条件数に制約があるバージョンと見なすことができます。eig は自明でないジョルダン ブロックをもつ行列に対して数値的に特異な V を返すことができるのに対し、bdschur は、そのようなブロックをまとめて、スペクトルの残り部分とのみ分離します。問題なく対角化できる行列の場合は、eigbdschur の結果が同じになります。

バージョン履歴

R2008a で導入

すべて展開する

参考

|