~ubuntu-branches/ubuntu/hoary/scilab/hoary

« back to all changes in this revision

Viewing changes to man/linear/spantwo.man

  • Committer: Bazaar Package Importer
  • Author(s): Torsten Werner
  • Date: 2005-01-09 22:58:21 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20050109225821-473xr8vhgugxxx5j
Tags: 3.0-12
changed configure.in to build scilab's own malloc.o, closes: #255869

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
.TH spantwo 1 "April 1993" "Scilab Group" "Scilab Function"
2
 
.so ../sci.an 
3
 
.SH NAME
4
 
spantwo - sum and intersection of subspaces
5
 
.SH CALLING SEQUENCE
6
 
.nf
7
 
[Xp,dima,dimb,dim]=spantwo(A,B, [tol])
8
 
.fi
9
 
.SH PARAMETERS
10
 
.TP 10
11
 
A, B
12
 
: two real or complex matrices with equal number of rows
13
 
.TP
14
 
Xp
15
 
: square non-singular matrix
16
 
.TP
17
 
dima, dimb, dim
18
 
: integers, dimension of subspaces
19
 
.TP
20
 
tol
21
 
: nonnegative real number
22
 
.SH DESCRIPTION
23
 
Given two matrices \fVA\fR and \fVB\fR with same number of rows,
24
 
returns a square matrix \fVXp\fR (non singular but not necessarily orthogonal) 
25
 
such that :
26
 
.LP
27
 
.nf
28
 
         [A1, 0]    (dim-dimb rows)
29
 
Xp*[A,B]=[A2,B2]    (dima+dimb-dim rows)
30
 
         [0, B3]    (dim-dima rows)
31
 
         [0 , 0]
32
 
.fi
33
 
The  first \fVdima\fR  columns of \fVinv(Xp)\fR span range(\fVA\fR).
34
 
.LP
35
 
Columns \fVdim-dimb+1\fR to \fVdima\fR of \fVinv(Xp)\fR span the 
36
 
intersection of range(A) and range(B).
37
 
.LP
38
 
The \fVdim\fR first columns of \fVinv(Xp)\fR span 
39
 
range(\fVA\fR)+range(\fVB\fR).
40
 
.LP
41
 
Columns \fVdim-dimb+1\fR to \fVdim\fR of \fVinv(Xp)\fR span 
42
 
range(\fVB\fR). 
43
 
.LP
44
 
Matrix \fV[A1;A2]\fR has full row rank (=rank(A)). Matrix \fV[B2;B3]\fR has
45
 
full row rank (=rank(B)). Matrix \fV[A2,B2]\fR has full row rank (=rank(A inter B)). Matrix \fV[A1,0;A2,B2;0,B3]\fR has full row rank (=rank(A+B)).
46
 
.SH EXAMPLE
47
 
.nf
48
 
A=[1,0,0,4;
49
 
   5,6,7,8;
50
 
   0,0,11,12;
51
 
   0,0,0,16];
52
 
B=[1,2,0,0]';C=[4,0,0,1]; 
53
 
Sl=ss2ss(syslin('c',A,B,C),rand(A));
54
 
[no,X]=contr(Sl('A'),Sl('B'));CO=X(:,1:no);  //Controllable part
55
 
[uo,Y]=unobs(Sl('A'),Sl('C'));UO=Y(:,1:uo);  //Unobservable part
56
 
[Xp,dimc,dimu,dim]=spantwo(CO,UO);    //Kalman decomposition
57
 
Slcan=ss2ss(Sl,inv(Xp));
58
 
.fi             
59
 
.SH SEE ALSO
60
 
spanplus, spaninter
61
 
.SH AUTHOR
62
 
F. D.