sum of subspaces
[X,dim,dima]=spanplus(A,B[,tol])
:A, B two real or complex matrices with equal number of rows : :X orthogonal or unitary square matrix : :dim, dima integers, dimension of subspaces : :tol nonnegative real number :
computes a basis X such that:
the first dima columns of X span Range( A) and the following ( dim-dima) columns make a basis of A+B relative to A.
The dim first columns of X make a basis for A+B.
One has the following canonical form for [A,B]:
[*,*] (dima rows)
X'*[A,B]=[0,*] (dim-dima rows)
[0,0]
tol is an optional argument (see function code).
A=`rand`_(6,2)*`rand`_(2,5); // rank(A)=2
B=[A(:,1),`rand`_(6,2)]*`rand`_(3,3); //two additional independent vectors
[X,dim,dimA]=spanplus(A,B);
dimA
dim