1
schur Scilab Group Scilab Function schur
3
schur - [ordered] Schur decomposition
8
[U,dim]=schur(A,myfunction)
10
A : real or complex matrix. For ordered forms A is assumed real.
12
flag : character string ('c' or 'd')
14
myfunction : an ``external'' function (this parameter can also be a list
17
U : orthogonal or unitary square matrix
24
Schur forms, ordered Schur forms
27
produces a Schur matrix T and a unitary matrix U so that A = U*T*U' and
28
U'*U = eye(U). By itself, schur(A) returns T. If A is complex, the
29
Complex Schur Form is returned in matrix T. The Complex Schur Form is
30
upper triangular with the eigenvalues of A on the diagonal. If A is real,
31
the Real Schur Form is returned. The Real Schur Form has the real
32
eigenvalues on the diagonal and the complex eigenvalues in 2-by-2 blocks
36
returns an unitary matrix U which transforms A into schur form. In
37
addition, the dim first columns of U make a basis of the eigenspace of
38
A associated with eigenvalues with negative real parts (stable
39
"continuous time" eigenspace).
41
returns an unitary matrix U which transforms A into schur form. In
42
addition, the dim first columns of U span a basis of the eigenspace of A
43
associated with eigenvalues with magnitude lower than 1 (stable "discrete
47
returns an unitary matrix U which transforms A into schur form. In
48
addition, the dim first columns of U span a basis of the eigenspace of A
49
associated with the eigenvalues which are selected by the function
52
This function must be of the following type (here a_function is "rule"):
54
function [flag]=rule(x)
57
x is a vector with three components which characterizes either a real
58
eigenvalue or a pair of complex conjugate eigenvalues.
60
If x(1)=1, a real eigenvalue is considered and this eigenvalue is
63
If x(1)=2, a pair of complex conjugate eigenvalues is considered. The sum
64
of these two eigenvalues (twice the real part) is x(2) and the product
65
(squared magnitude) is x(3).
67
On return, flag should be 1 if the real eigenvalue is selected or the
68
pair of eigenvalues is selected and 0 otherwise.
71
function [flag]=disc(x)
74
case 1 then if abs(x(2)) < ro*abs(x(3)) then flag=1;end
75
case 2 then if x(3) < ro*ro then flag=1;end
77
The function disc selects the eigenvalues with magnitude lower than a
78
given scalar ro. And for ro=1 the calling sequence [U,dim]=schur(A,'d')
79
and [U,dim]=schur(A,disc) are equivalent.
81
Another useful example is %choose (see function code in
82
SCIDIR/macros/percent)
85
A=diag([-0.9,-2,2,0.9]);X=rand(A);A=inv(X)*A*X;
88
spec(A1(1:d,1:d)) //stable cont. eigenvalues
91
spec(A1(1:d,1:d)) //stable disc. eigenvalues
93
gschur, ricc, pbig, psmall