# 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

## 参照

- gschur
- gspec
- systmat
- pencan
- randpencil
- trzeros