quaskro

quaskro — quasi-Kronecker form

Calling sequence

[Q,Z,Qd,Zd,numbeps,numbeta]=quaskro(F)  
[Q,Z,Qd,Zd,numbeps,numbeta]=quaskro(E,A)  
[Q,Z,Qd,Zd,numbeps,numbeta]=quaskro(F,tol)  
[Q,Z,Qd,Zd,numbeps,numbeta]=quaskro(E,A,tol)  

Parameters

F : real matrix pencil F=s*E-A (s=poly(0,'s'))
E,A : two real matrices of same dimensions
tol : a real number (tolerance, default value=1.d-10)
Q,Z : two square orthogonal matrices
Qd,Zd : two vectors of integers
numbeps : vector of integers

Description

Quasi-Kronecker form of matrix pencil: quaskro computes two orthogonal matrices Q, Z which put the pencil F=s*E -A into upper-triangular form:




           | sE(eps)-A(eps) |        X       |      X     |
           |----------------|----------------|------------|
           |        O       | sE(inf)-A(inf) |      X     |
Q(sE-A)Z = |=================================|============|
           |                                 |            |
           |                O                | sE(r)-A(r) |

   
    

The dimensions of the blocks are given by:

eps=Qd(1) x Zd(1), inf=Qd(2) x Zd(2), r = Qd(3) x Zd(3)

The inf block contains the infinite modes of the pencil.

The f block contains the finite modes of the pencil

The structure of epsilon 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...

The complete (four blocks) Kronecker form is given by the function kroneck which calls quaskro on the (pertransposed) pencil sE(r)-A(r).

The code is taken from T. Beelen

See also

kroneck, gschur, gspec