File: equil1.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 (42 lines) | stat: -rw-r--r-- 1,038 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
equil1            Scilab Group            Scilab Function            equil1
NAME
   equil1 - balancing (nonnegative) pair of matrices
  
CALLING SEQUENCE
 [T [,siz]]=equil1(P,Q [,tol])
PARAMETERS
 P, Q       : two non-negative symmetric matrices
            
 T          : nonsingular matrix
            
 siz        : vector of three integers
            
 tol        : threshold
            
DESCRIPTION
   equil1 computes t such that:
  
   P1=T*P*T'  and Q1=inv(T)'*Q*inv(T) are as follows:
  
   P1 = diag(S1,S2,0,0)  and Q1 = diag(S1,0,S3,0) with S1,S2,S3 positive and
  diagonal matrices with respective  dimensions siz=[n1,n2,n3]
  
   tol is a threshold for rank determination in SVD
  
EXAMPLE
 S1=rand(2,2);S1=S1*S1';
 S2=rand(2,2);S2=S2*S2';
 S3=rand(2,2);S3=S3*S3';
 P=sysdiag(S1,S2,zeros(4,4));
 Q=sysdiag(S1,zeros(2,2),S3,zeros(2,2));
 X=rand(8,8);
 P=X*P*X';Q=inv(X)'*Q*inv(X);
 [T,siz]=equil1(P,Q);
 P1=clean(T*P*T')
 Q1=clean(inv(T)'*Q*inv(T))
SEE ALSO
   balreal, minreal, equil, hankelsv
  
AUTHOR
   S. Steer 1987