kroneck — Kronecker form of matrix pencil
[Q,Z,Qd,Zd,numbeps,numbeta]=kroneck(F) [Q,Z,Qd,Zd,numbeps,numbeta]=kroneck(E,A)
real matrix pencil F=s*E-A
two real matrices of same dimensions
two square orthogonal matrices
two vectors of integers
two vectors of integers
Kronecker form of matrix pencil: kroneck
computes two
orthogonal matrices Q, Z
which put the pencil F=s*E -A
into
upper-triangular form:
| sE(eps)-A(eps) | X | X | X | |----------------|----------------|------------|---------------| | O | sE(inf)-A(inf) | X | X | Q(sE-A)Z = |---------------------------------|----------------------------| | | | | | | 0 | 0 | sE(f)-A(f) | X | |--------------------------------------------------------------| | | | | | | 0 | 0 | 0 | sE(eta)-A(eta)|
The dimensions of the four blocks are given by:
eps=Qd(1) x Zd(1)
, inf=Qd(2) x Zd(2)
,
f = Qd(3) x Zd(3)
, eta=Qd(4)xZd(4)
The inf
block contains the infinite modes of
the pencil.
The f
block contains the finite modes of
the pencil
The structure of epsilon and eta blocks are given by:
numbeps(1)
= #
of eps blocks of size 0 x 1
numbeps(2)
= #
of eps blocks of size 1 x 2
numbeps(3)
= #
of eps blocks of size 2 x 3 etc...
numbeta(1)
= #
of eta blocks of size 1 x 0
numbeta(2)
= #
of eta blocks of size 2 x 1
numbeta(3)
= #
of eta blocks of size 3 x 2 etc...
The code is taken from T. Beelen (Slicot-WGS group).
F=randpencil([1,1,2],[2,3],[-1,3,1],[0,3]); Q=rand(17,17);Z=rand(18,18);F=Q*F*Z; //random pencil with eps1=1,eps2=1,eps3=1; 2 J-blocks @ infty //with dimensions 2 and 3 //3 finite eigenvalues at -1,3,1 and eta1=0,eta2=3 [Q,Z,Qd,Zd,numbeps,numbeta]=kroneck(F); [Qd(1),Zd(1)] //eps. part is sum(epsi) x (sum(epsi) + number of epsi) [Qd(2),Zd(2)] //infinity part [Qd(3),Zd(3)] //finite part [Qd(4),Zd(4)] //eta part is (sum(etai) + number(eta1)) x sum(etai) numbeps numbeta