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) Arguments ~~~~~~~~~ :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`_ Kronecker form of matrix pencil + `gschur`_ generalized Schur form (obsolete). + `gspec`_ eigenvalues of matrix pencil (obsolete) .. _kroneck: kroneck.html .. _gspec: gspec.html .. _gschur: gschur.html