# pencan

行列ペンシルの正準形

## 呼び出し手順

    [Q,M,i1]=pencan(Fs)
                [Q,M,i1]=pencan(E,A)

## パラメータ

Fs

  標準ペンシル `s*E-A`

E,A

  実数正方行列

Q,M

  正則実数行列

i1

  整数

## 説明

標準ペンシル `Fs=s*E-A`を指定すると, `pencan` は, `M*(s*E-A)*Q`が"正準"形となるような 行列`Q` および`M`を返します.

`M*E*Q` はブロック行列です.

    [I,0;
     0,N]

ただし,冪零行列`N`および `i1` = 行列`I`の大きさ.

`M*A*Q` はブロック行列です:

    [Ar,0;
     0,I]

## 例

    F=randpencil([],[1,2],[1,2,3],[]);
    F=rand(6,6)*F*rand(6,6);
    [Q,M,i1]=pencan(F);
    W=clean(M*F*Q)
    roots(det(W(1:i1,1:i1)))
    det(W($-2:$,$-2:$))

## 参照

- glever
- penlaur
- rowshuff