[SciPy-user] Re: finding approximate rank of matrix

Dan Christensen jdc at uwo.ca
Wed Aug 10 20:41:50 CDT 2005

Robert Kern <rkern at ucsd.edu> writes:

> Dan Christensen wrote:
>> Suppose you have 300 vectors each with 64 components.  You have
>> determined using the singular value decomposition of the 300x64 matrix
>> they form that they all approximately lie in a 40-dimensional
>> subspace.  You suspect, however, that they really lie in the union of
>> two 30-dimensional subspaces (which intersect in a 20-dimensional
>> subspace).  How could you show this?
> Proof by construction: Take the first 30 orthogonal unit vectors from
> the 40D subspace. Take the last 30 unit vectors. The join of those two
> subspaces is the 40D subspace spanned by your 300 vectors. The meet is
> the 20D subspace spanned by the 20 shared orthogonal vectors.

When you say "join", do you mean the sum of the subspaces, i.e. the
subspace spanned by all vectors in the two subspaces?  If so, that's
not what I meant, and of course is trivial.  I really mean the
set-theoretic union of the subspaces.  If you meant union too, then I
don't see how to use your construction.

> If you have specified the two 30D spaces and just want to test if your
> 300 vectors do indeed all fall into the join of the two subspaces, 

Nope, that's the catch, I don't know the subspaces.  If I did, I would
just check that each vector is close to at least one of the subspaces,
by projecting it in and comparing.



More information about the SciPy-user mailing list