range - range (span) of A^k
Computation of Range A^k : the first dim columns of U' span the range of A^k . U performs a row compression of A^k without calculating A^k .Vector y belongs to range A^k iff the last components of U*y are zeros (i.e. numerically small). U*U' is the Identity matrix
A=rand(4,2)*rand(2,4); // 4 column vectors, 2 independent. [U,dim]=range(A,1);dim // compute the range y1=A*rand(4,1); //a vector which is in the range of A y2=rand(4,1); //a vector which is not in the range of A norm(U(dim+1:$,:)*y1) //the last entries are zeros, y1 is in the range of A norm(U(dim+1:$,:)*y2) //the last entries are not zeros I=U(1:dim,:)' //I is a basis of the range coeffs=U(1:dim,:)*y1 // components of y1 relative to the I basis norm(I*coeffs-y1) //check
F. D. INRIA ;