pencan canonical form of matrix pencil

## Syntax

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

## Arguments

Fs

  a regular pencil `s*E-A`

E,A

  two real square matrices

Q,M

  two non-singular real matrices

i1

  integer

## Description

Given the regular pencil `Fs=s*E-A`, `pencan` returns matrices `Q` and `M` such than `M*(s*E-A)*Q` is in "canonical" form.

`M*E*Q` is a block matrix

    [I,0;
     0,N]

with `N` nilpotent and `i1` = size of the `I` matrix above.

`M*A*Q` is a block matrix:

    [Ar,0;
     0,I]

## Examples

    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:$))

## See also

- glever
- penlaur
- rowshuff