- Scilab Online Help
- Linear Algebra
- aff2ab
- balanc
- bdiag
- chfact
- chol
- chsolve
- classmarkov
- cmb_lin
- coff
- colcomp
- companion
- cond
- det
- eigenmarkov
- ereduc
- expm
- fstair
- fullrf
- fullrfk
- genmarkov
- givens
- glever
- gschur
- gspec
- hess
- householder
- im_inv
- inv
- kernel
- kroneck
- linsolve
- lsq
- lu
- lyap
- nlev
- orth
- pbig
- pencan
- penlaur
- pinv
- polar
- proj
- projspec
- psmall
- qr
- quaskro
- randpencil
- range
- rank
- rankqr
- rcond
- rowcomp
- rowshuff
- rref
- schur
- spaninter
- spanplus
- spantwo
- spec
- sqroot
- squeeze
- sva
- svd
- sylv
- trace
Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
kroneck
Kronecker form of matrix pencil
Calling Sequence
[Q,Z,Qd,Zd,numbeps,numbeta]=kroneck(F) [Q,Z,Qd,Zd,numbeps,numbeta]=kroneck(E,A)
Arguments
- F
real matrix pencil
F=s*E-A
- E,A
two real matrices of same dimensions
- Q,Z
two square orthogonal matrices
- Qd,Zd
two vectors of integers
- numbeps,numeta
two vectors of integers
Description
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).
Examples
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
<< kernel | Linear Algebra | linsolve >> |