bilin 一般化双一次変換

## 呼び出し手順

    [sl1]=bilin(sl,v)

## パラメータ

sl,sl1

  線形システム (`syslin` リスト)

v

  4つのエントリを有する実数ベクトル (`v=[a,b,c,d]`)

## 説明

線形システムを状態空間形式`sl=syslin(dom,A,B,C,D)` (`syslin` リスト) で指定すると, `sl1=bilin(sl,v)` は行列`[A1,B1,C1,D1]`を有する 線形システム`sl1`を返します. ここで,行列`[A1,B1,C1,D1]`は その伝達関数`H1(s)=C1*inv(s*eye()-A1)*B1+D1`が `H(z)=C*inv(z*eye()-A)*B+D`において `z`を`z=(a*s+b)/(c*s+d)`で置換することにより 得られたものです. `w=bilin(bilin(w,[a,b,c,d]),[d,-b,-c,a])`の関係があります.

## 例

    s=poly(0,'s');z=poly(0,'z');
    w=ssrand(1,1,3);
    wtf=ss2tf(w);v=[2,3,-1,4];a=v(1);b=v(2);c=v(3);d=v(4);
    [horner(wtf,(a*z+b)/(c*z+d)),ss2tf(bilin(w,[a,b,c,d]))]
    clean(ss2tf(bilin(bilin(w,[a,b,c,d]),[d,-b,-c,a]))-wtf)

## 参照

- horner
- cls2dls