Please note that the recommended version of Scilab is 2026.0.0. This page might be outdated.
See the recommended documentation of this function
kroneck
行列ペンシルのクロネッカー形式
呼び出し手順
[Q, Z, Qd, Zd, numbeps, numbeta] = kroneck(F) [Q, Z, Qd, Zd, numbeps, numbeta] = kroneck(E,A)
引数
- F
実数行列ペンシル
F=s*E-A- E,A
同じ次元の実数行列
- Q,Z
正方直交行列
- Qd,Zd
整数ベクトル
- numbeps,numeta
整数ベクトル
説明
行列ペンシルのクロネッカー形式: kroneck は,
ペンシルF=s*E -Aを以下のような上三角形式に変換する
2つの直交行列Q, Zを計算します:
| 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)|
4個のブロックの次元は以下のように指定されます:
eps=Qd(1) x Zd(1), inf=Qd(2) x Zd(2),
f = Qd(3) x Zd(3), eta=Qd(4)xZd(4)
infブロックにはペンシルの無限大モードが含まれます.
f ブロックにはペンシルの有限モードが含まれます.
イプシロンとetaブロックの構造は以下のように指定されます:
numbeps(1) = 大きさ 0 x 1のepsブロックの番号
numbeps(2) = 大きさ 1 x 2のepsブロックの番号
numbeps(3) = 大きさ 2 x 3のepsブロックの番号 etc...
numbeta(1) = 大きさ 1 x 0のetaブロックの番号
numbeta(2) = 大きさ 2 x 1のetaブロックの番号
numbeta(3) = 大きさ 3 x 2のetaブロックの番号 etc...
このコードは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
参照
| Report an issue | ||
| << glever | Matrix Pencil | lyap >> |