bdiag ブロック対角化, 一般化固有ベクトル

## 呼び出し手順

    [Ab [,X [,bs]]]=bdiag(A [,rmax])

## 引数

A

  実数または複素数の正方行列

rmax

  実数

Ab

  実数または複素数の正方行列

X

  実数または複素数の正則行列

bs

  整数ベクトル

## 説明

    [Ab [,X [,bs]]]=bdiag(A [,rmax])

は,行列`A`のブロック対角化を行ないます. bs はブロックの構造(個々のブロックの大きさ)を出力します. `X` は基底変換です. すなわち, `Ab = inv(X)*A*X` はブロック対角です.

`rmax` は`X`の 条件数を制御します; デフォルト値は `A` の l1ノルムです.

(存在する場合,)対角形式を得るには`rmax`に 大きな値を指定します(例えば,`rmax=1/%eps`). 一般に(ランダムな実数の Aの場合) ブロックは (1x1) および (2x2) で, `X` は固有値の行列です.

## 例

    //実数の場合: 1x1 および 2x2 ブロック
    a=rand(5,5);[ab,x,bs]=bdiag(a);ab

    //複素数の場合: 複素数 1x1 ブロック
    [ab,x,bs]=bdiag(a+%i*0);ab

## 参照

- schur
- sylv
- spec
- blockdiag