# angle between subspaces

Let $E$ be a finite dimensional real inner product space. I want to define the angle between two subspaces $E_1$ and $E_2$. This has a fairly obvious meaning if $E_1$ is 1-diemsnional: Take the angle between any non-zero vector in $E_1$ and its orthogonal projection onto $E_2$.

There are a number of other cases that can be treated ad-hoc, if one is a hyperplane, or the dihedral angle between planes in $R^3$.

In general, it isn't quite clear what the right definition is. I see two possibilities:

1. If $p=\dim E_1\le \dim E_2$, consider the two subspace $\lambda^p(E_1)$ and $\Lambda^p(E_2$ of $\Lambda^p(E)$ (which is also an inner product space, and proceed as above, since $\Lambda^p(E_1)$ is a line.

2. $Hom(E,E)$ is itself an inner product space with the inner product $$\langle A,B\rangle=trace A^\top B.$$ Let $A_i$ be the orthogonal projection onto $E_i$ and take the angle between $A_1$ and $A_2$.

Are either of these definitions standard? Are they equivalent (I think so)? Is there another definition, perhaps more immediate?

• Didn't you try Google? If you put "angle between subspaces" into Google you will find a ton of stuff there. – Dick Palais Jul 13 '12 at 17:00
• I did go to google. I found lots of things, along the lines of principal angles and the product of their cosines. I don't really understand what that measures; maybe it is one (or both) of the suggestions above. By the way, I have a third possibility: Take the infimum of the angles between pairs of unit vectors, one in $E_1$ and one in $E_2$, and both orthogonal to $$E_1\cap E_2 (angle 0 if this set is empy, i.e., if one subspace is a subspace of the other). – John Hubbard Jul 13 '12 at 17:16 • John, what are \lambda^p and \Lambda^p? – Vidit Nanda Jul 13 '12 at 19:16 • I think the two definitions aren't equivalent. If one space is generated by the p first vectors of an ON basis, and B is the matrix of orthogonal proj. on a second same dimension subspace, with obvious 2x2 block partition, then the first angle has cosine \det(B_{11}) and the second has cosine tr(B_{11})/p. In general, I would say that the most general notion of "angle" is the orbit of the pair of subspaces under the orthogonal group. – BS. Jul 14 '12 at 14:14 • I am not sure it can be done in general if E_1 and E_2 are of different dimensionality. Ideally the angle (or rather its cosine) would be given by the scalar or inner product of \Lambda_1 and \Lambda_2 where each \Lambda is the exterior product of all the elements in some basis of E_1 and E_2 respectively, normalised to unity. However the standard definition for the inner product does not apply if \Lambda_1 and \Lambda_2 are not of the same grade. – AlexArvanitakis Jul 15 '12 at 1:18 ## 3 Answers There is a standard answer: Principal angles, see http://en.wikipedia.org/wiki/Principal_angles. Let p \ge q be the dimensions of the two subspaces E_1 and E_2. Then there is a unique non-increasing sequence [c_1,c_2,...,c_q] with entries in [0,1] (and a matching non-decreasing sequence [s_1,s_2,...,s_q]) such that one can have an orthonormal basis for E, call it e_1,e_2,..., in such a way that one subspace is generated by orthonormal vectors$$e_1,e_2,...,e_p$$and the other subspace generated by orthonormal vectors$$c_1e_1+s_1e_{p+q},c_2e_2+s_2e_{p+q-1},...,c_qe_q+s_qe_{p+1}.$$One can see this from the Singular Value Theorem. The principal angles are obviously those angles whose cosines match the c_i values. This concept captures all of the geometric invariant information relating the positioning of the two subspaces, so any well-defined definition you care to give must be a deterministic function of this sequence of principal angles. Let me confuse you some more. There is a third possibility that is used frequently in functional analysis. Define$$\delta(E_1,E_2)= \sup_{x\in E_1,\;|x|=1}{\rm dist}\; (x,E_2). $$The number \delta(E_1,E_2) is called the gap between E_1 and E_2. Clearly \delta(E_1, E_2)\in [0,1] so that there exists \theta\in [0,\frac{\pi}{2}] such that$$\delta(E_1,E_2)=\sin \theta.$$We define the above \theta to be the angle between E_1,E_2. Note that if \dim E_1=1, than this definition agrees with your first definition. However$$\delta(E_1, E_2)\neq \delta(E_2,E_1).$$Moreover$$ \theta <\frac{\pi}{2} \Longleftrightarrow \delta(E_1,E_2)<1 \Longleftrightarrow E_1\cap E_2^\perp= 0. $$Your first definition of angle has a similar property. Finally let me point out that$$ \delta(E_1,E_2)= \Vert P_{E_2^\perp}P_{E_1}\Vert, $$where P_U denotes the orthogonal projection onto the subspace U, and for any linner operator A we set$$ \Vert A\Vert =\sup_{|x|=1} |Ax|. 

• If you take the Hausdorff distance between the intersections of $E_1$ and $E_2$ with the unit sphere, you get a very good metric on the space of all subspaces. It works even for closed subspaces of Banach spaces. This is similar to a symmetrized version of your $\delta$. It isn't quite the angle I am after, because it returns $\pi/2$ when $E_1\subset E_2$ and $E_1 \ne E_2$. I would want the angle between a line and a plane in $R^3$ to be $0$ when the line is in the plane. – John Hubbard Jul 15 '12 at 16:02

I know this is a few years late, but still it might be useful ...

A nice way to express Dan's answer is to let $A$ and $B$ be matrices whose columns form orthonormal bases for $E_1$ and $E_2$ respectively. Then the cosines of the principal angles are the singular values of the matrix $A^TB$ (or of $B^TA$ of course).