Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Scilab-Branch-6.1-GIT
Change language to: Français - Português - 日本語 - Русский
Scilab Help >> Linear Algebra > Matrix Pencil > pencan

# 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:\$))```

• glever — inverse of matrix pencil
• penlaur — Laurent coefficients of matrix pencil
• rowshuff — shuffle algorithm