File: schur.cat

package info (click to toggle)
scilab 2.6-4
  • links: PTS
  • area: non-free
  • in suites: woody
  • size: 54,632 kB
  • ctags: 40,267
  • sloc: ansic: 267,851; fortran: 166,549; sh: 10,005; makefile: 4,119; tcl: 1,070; cpp: 233; csh: 143; asm: 135; perl: 130; java: 39
file content (94 lines) | stat: -rw-r--r-- 3,344 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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
schur            Scilab Group            Scilab Function              schur
NAME
   schur - [ordered] Schur decomposition
  
CALLING SEQUENCE
 [U,T] = schur(A) 
 [U,dim]=schur(A,flag)
 [U,dim]=schur(A,myfunction)
PARAMETERS
 A          : real or complex matrix. For ordered forms A is assumed real.
            
 flag       : character string ('c' or 'd')
            
 myfunction : an ``external'' function (this parameter can also be a list
            or character string)
            
 U          : orthogonal or unitary square matrix
            
 T          : matrix
            
 dim        : integer
            
DESCRIPTION
   Schur forms, ordered Schur forms
  
USUAL SCHUR FORM
   produces a Schur matrix T and a unitary matrix U so that A = U*T*U' and
  U'*U = eye(U). By itself, schur(A) returns T. If A is complex, the
  Complex Schur Form is returned in matrix T. The Complex Schur Form is
  upper triangular with the eigenvalues of A on the diagonal. If A is real,
  the Real Schur Form is returned.  The Real Schur Form has the real
  eigenvalues on the diagonal and the complex eigenvalues in 2-by-2 blocks
  on the diagonal.
  
ORDERED STABLE FORM
   returns an unitary matrix U which transforms A into schur form. In
  addition, the dim first columns of U  make a basis of the  eigenspace of
  A associated with eigenvalues with negative  real parts (stable
  "continuous time" eigenspace).
  
   returns an unitary matrix U which transforms A into schur form. In
  addition, the dim first columns of U span a basis of the  eigenspace of A
  associated with eigenvalues with magnitude lower than 1 (stable "discrete
  time" eigenspace).
  
GENERAL EIGENSPACE
   returns an unitary matrix U which transforms A into schur form.  In
  addition, the dim first columns of U span a basis of the  eigenspace of A
  associated with the eigenvalues which are  selected by the function
  a_function.
  
   This function must be of the following type (here a_function is "rule"):
  
 function [flag]=rule(x)
 
 flag=...
   x is a vector with three components which characterizes either a real
  eigenvalue or a pair of complex conjugate eigenvalues.
  
   If x(1)=1, a real eigenvalue is considered and this eigenvalue is
  x(2)/x(3).
  
   If x(1)=2, a pair of complex conjugate eigenvalues is considered. The sum
  of these two eigenvalues (twice the real part) is x(2) and the product
  (squared magnitude) is x(3).
  
   On return, flag should be 1 if the real eigenvalue is  selected or the
  pair of eigenvalues is selected and 0 otherwise.
  
EXAMPLE OF FUNCTION
         function [flag]=disc(x)
         ls =x(1);flag=0;
         select  ls
            case 1 then if abs(x(2)) < ro*abs(x(3)) then flag=1;end
            case 2 then if x(3) < ro*ro then flag=1;end
         end
   The function disc selects the eigenvalues with magnitude lower than a
  given scalar ro. And for ro=1 the calling sequence [U,dim]=schur(A,'d')
  and [U,dim]=schur(A,disc) are equivalent.
  
   Another useful example is %choose  (see function code in
  SCIDIR/macros/percent)
  
EXAMPLE
 A=diag([-0.9,-2,2,0.9]);X=rand(A);A=inv(X)*A*X;
 [U,d]=schur(A,'c');
 A1=U'*A*U;
 spec(A1(1:d,1:d))      //stable cont. eigenvalues
 [U,d]=schur(A,'c');
 A1=U'*A*U;
 spec(A1(1:d,1:d))      //stable disc. eigenvalues
SEE ALSO
   gschur, ricc, pbig, psmall