Scilab Function
Last update : April 1993

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`,