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
行列ペンシルのクロネッカー形式
呼び出し手順
[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 >> |