# rowshuff

シャッフルアルゴリズム

## 呼び出し手順

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

## パラメータ

Fs

  正方実数ペンシル `Fs = s*E-A`

Ws

  多項式行列

Fs1

  正方実数ペンシル `F1s = s*E1 -A1`, ただし `E1` は正則

alfa

  実数 (`alfa = 0` がデフォルト値)

## 説明

シャッフルアルゴリズム: ペンシル `Fs=s*E-A`を指定すると, 以下のような(正方多項式行列) Ws=W(s) を返します:

`Fs1 = s*E1-A1 = W(s)*(s*E-A)` は正則なペンシル行列 `E1` です.

これは,ペンシル`Fs = s*E-A`が正則 (すなわち,可逆)の場合に限り可能です. `Ws` の次数はペンシルの添字に等しくなります.

`Fs`の無限大にある極は`alfa`に配置され, `Ws`のゼロは`alfa`に配置されます.

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

## 例

    F=randpencil([],[2],[1,2,3],[]);
    F=rand(5,5)*F*rand(5,5);   // 3つの評価点を1,2,3に有する5 x 5 の正則ペンシル
    [Ws,F1]=rowshuff(F,-1);
    [E1,A1]=pen2ea(F1);
    svd(E1)           //E1 正則
    roots(det(Ws))
    clean(inv(F)-inv(F1)*Ws,1.d-7)

## 参照

- pencan
- glever
- penlaur