Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Change language to: English - Français - Português - 日本語 -

See the recommended documentation of this function

Справка Scilab >> Linear Algebra > Matrix Pencil > rowshuff

# rowshuff

shuffle algorithm

### Syntax

`[Ws,Fs1]=rowshuff(Fs, [alfa])`

### Arguments

Fs

square real pencil `Fs = s*E-A`

Ws

polynomial matrix

Fs1

square real pencil `F1s = s*E1 -A1` with `E1` non-singular

alfa

real number (`alfa = 0` is the default value)

### Description

Shuffle algorithm: Given the pencil `Fs=s*E-A`, returns Ws=W(s) (square polynomial matrix) such that:

`Fs1 = s*E1-A1 = W(s)*(s*E-A)` is a pencil with non singular `E1` matrix.

This is possible iff the pencil `Fs = s*E-A` is regular (i.e. invertible). The degree of `Ws` is equal to the index of the pencil.

The poles at infinity of `Fs` are put to `alfa` and the zeros of `Ws` are at `alfa`.

Note that `(s*E-A)^-1 = (s*E1-A1)^-1 * W(s) = (W(s)*(s*E-A))^-1 *W(s)`

### Examples

```F=randpencil([],[2],[1,2,3],[]);
F=rand(5,5)*F*rand(5,5);   // 5 x 5 regular pencil with 3 evals at 1,2,3
[Ws,F1]=rowshuff(F,-1);
[E1,A1]=pen2ea(F1);
svd(E1)           //E1 non singular
roots(det(Ws))
clean(inv(F)-inv(F1)*Ws,1.d-7)```

• pencan — canonical form of matrix pencil
• glever — inverse of matrix pencil
• penlaur — Laurent coefficients of matrix pencil