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

Robert Kern rkern at ucsd.edu
Wed Aug 10 17:41:06 CDT 2005

Dan Christensen wrote:
> Ok, my next question on this topic:
> 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.

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, then
stack both 30D subspaces, use the routine I gave you to get the spanned
space as a set of 40 orthogonal vectors, project each of your 300
vectors onto this space and compare those vectors to the orginals.

   P|v> = |e_i><e_i|v> =?= |v>

Robert Kern
rkern at ucsd.edu

"In the fields of hell where the grass grows high
  Are the graves of dreams allowed to die."
   -- Richard Harter

More information about the SciPy-user mailing list