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
|