rowcomp

rowcomp — row compression, range

Calling sequence

[W,rk]=rowcomp(A [,flag] [,tol])  

Parameters

A : real or complex matrix
flag : character string
tol : real number
W : square non-singular matrix (change of basis)
rk : integer (rank of A)

Description

Row compression of A. Ac = W*A is a row compressed matrix: i.e. Ac=[Af;0] with Af full row rank.

flag and tol are optional parameters: flag='qr' or 'svd' (default 'svd').

tol is a tolerance parameter (of order sqrt(%eps) as default value).

The rk first columns of W' span the range of A.

The rk first (top) rows of W span the row range of A.

Remark

A non zero vector x belongs to range(A) iff W*x is row compressed in accordance with Ac i.e the norm of its last components is small w.r.t its first components.

Examples



A=rand(5,2)*rand(2,4);   // 4 col. vectors, 2 independent.
[X,dim]=rowcomp(A);Xp=X';
svd([Xp(:,1:dim),A])     //span(A) = span(Xp(:,1:dim)
x=A*rand(4,1);      //x belongs to span(A)
y=X*x  
norm(y(dim+1:$))/norm(y(1:dim))    // small
 
  

See also

colcomp, fullrf, fullrfk

Author

F. D.; ;