File: kroneck.cat

package info (click to toggle)
scilab 2.4-1
  • links: PTS
  • area: non-free
  • in suites: potato, slink
  • size: 55,196 kB
  • ctags: 38,019
  • sloc: ansic: 231,970; fortran: 148,976; tcl: 7,099; makefile: 4,585; sh: 2,978; csh: 154; cpp: 101; asm: 39; sed: 5
file content (74 lines) | stat: -rw-r--r-- 2,544 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74

kroneck(1)                     Scilab Function                     kroneck(1)
NAME
  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)

PARAMETERS

  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).

EXAMPLE
  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

SEE ALSO
  gschur, gspec, systmat, pencan, randpencil, trzeros