Scilab Function

randpencil - random pencil

### Calling Sequence

  `F=randpencil(eps,infi,fin,eta)`

### Parameters

- `eps` : vector of integers
- `infi` : vector of integers
- `fin` : real vector, or monic polynomial, or vector of monic polynomial
- `eta` : vector of integers
- `F` : real matrix pencil `F=s*E-A` (`s=poly(0,'s')` )

### Description

Utility function. `F=randpencil(eps,infi,fin,eta)` returns a random pencil `F` with given Kronecker structure. The structure is given by: `eps=[eps1,...,epsk]` : structure of epsilon blocks (size eps1x(eps1+1),....) `fin=[l1,...,ln]` set of finite eigenvalues (assumed real) (possibly []) `infi=[k1,...,kp]` size of J-blocks at infinity `ki>=1` (infi=[] if no J blocks). `eta=[eta1,...,etap]` : structure ofeta blocks (size eta1+1)xeta1,...)

`epsi` 's should be >=0, `etai` 's should be >=0, `infi` 's should be >=1.

If `fin` is a (monic) polynomial, the finite block admits the roots of `fin` as eigenvalues.

If `fin` is a vector of polynomial, they are the finite elementary divisors of `F` i.e. the roots of `p(i)` are finite eigenvalues of `F` .

### Examples

    F=randpencil([0,1],[2],[-1,0,1],[3]);
    [Q,Z,Qd,Zd,numbeps,numbeta]=kroneck(F);
    Qd, Zd
    s=poly(0,'s');
    F=randpencil([],[1,2],s^3-2,[]); //regular pencil
    det(F)

### See Also

`kroneck` , `pencan` , `penlaur` ,