fstair QZ変換により列階段型ペンシルを計算する

## 呼び出し手順

    [AE,EE,QE,ZE,blcks,muk,nuk,muk0,nuk0,mnei]=fstair(A,E,Q,Z,stair,rk,tol)

## 引数

A

  実数エントリを有するm x n行列.

tol

  実数の正のスカラー.

E

  列階段型行列

Q

  m x m ユニタリ行列

Z

  n x n ユニタリ行列

stair

  添字ベクトル (ereduc参照)

rk

  整数, 行列ランクの推定値

AE

  実数エントリを有するm x n行列.

EE

  列階段型行列

QE

  m x m ユニタリ行列

ZE

  n x n ユニタリ行列

nblcks

  行列`A`で検出された フル行ランクを有するサブ行列の数(>= 0).

muk:

  次元 (n) の整数配列. ペンシルsE(eps)-A(eps)において 列フルランクを有するサブ行列の列次元 mu(k) (k=1,...,nblcks) を含みます.

nuk:

  次元 (m+1) の整数配列. ペンシルsE(eps)-A(eps)において 行フルランクを有するサブ行列の行次元 nu(k) (k=1,...,nblcks) を含みます.

muk0:

  次元 (n) の整数配列. ペンシルsE(eps,inf)-A(eps,inf)において 列フルランクを有するサブ行列の列次元 mu(k) (k=1,...,nblcks) を含みます.

nuk:

  次元 (m+1) の整数配列. ペンシルsE(eps,inf)-A(eps,inf)において 行フルランクを有するサブ行列の行次元 nu(k) (k=1,...,nblcks) を含みます.

mnei:

  次元 (4) の整数配列. mnei(1) = sE(eps)-A(eps)の行の次元

## 説明

行列 `E` を列階段形として, ペンシル `sE-A` を指定すると, 関数`fstair`は ユーザの指定に基づき ユニタリ変換されたペンシル`QE(sEE-AE)ZE`を 計算します. このペンシルは, ほぼペンシル`sE-A` の一般化Schur形式です. この関数は,指定したペンシルの クロネッカー構造の部分も出力します.

`Q,Z` はユニタリ行列で, ペンシルを計算する際に使用されます. ただし, E は列階段形です (ereduc参照)

## 参照

- quaskro
- ereduc