# rowshuff

algoritmo de embaralhamento

## Seqüência de Chamamento

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

## Parâmetros

Fs

  feixe quadrado de reais `Fs = s*E-A`

Ws

  matriz de polinômios

Fs1

  feixe quadrado de reais `F1s = s*E1 -A1` com `E1` não-singular

alfa

  número real (`alfa = 0` é o valor padrão)

## Descrição

Algoritmo de embaralhamento: dado o feixe `Fs=s*E-A`, retorna Ws=W(s) (matriz quadrada de polinômios) tal que:

`Fs1 = s*E1-A1 = W(s)*(s*E-A)` é um feixe com matriz `E1` não-singular.

Isto é possível se, e só se, o feixe `Fs = s*E-A` é regular (i.e., invertível). O grau de `Ws` é igual ao índice do feixe.

Os pólos no infinito de`Fs` asão colocados para `alfa` e os zeros de `Ws` estão em `alfa`.

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

## Exemplos

    F=randpencil([],[2],[1,2,3],[]);
    F=rand(5,5)*F*rand(5,5);   // feixe regular  5 x 5 com três avaliações em 1,2,3
    [Ws,F1]=rowshuff(F,-1);
    [E1,A1]=pen2ea(F1);
    svd(E1)           //E1 não-singular
    roots(det(Ws))
    clean(inv(F)-inv(F1)*Ws,1.d-7)

## Ver Também

- pencan
- glever
- penlaur