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