deformation retract of $GL_n^{+}(\mathbb{R})$

Well, I need a deformation retract from $GL_n^{+}(\mathbb{R})$ to $SO(n)$

Here is what I tried, let $A\in GL_n^{+}(\mathbb{R})$ $A=(A_1,\dots,A_n)$ where $A_i$'s are collumn vectors, Recall that the Gram-Schmidt algorithm turns A into an orthogonal matrix by the following sequence of steps. First normalise $A_1$ (i.e. make it unit length) $A_1\mapsto \frac{A_1}{|A_1|}$ next I make $A_2$ orthogonal to $A_1$ like $A_2\mapsto A_2-\langle A_1,A_2\rangle A_1$ and normalize $A_2\mapsto \frac{A_2}{|A_2|}$ like this upto $A_n$

But I am not getting an explicit homotopy which gives me a deformation retract $GL_n^{+}(\mathbb{R})$ to $SO(n)$

-
$A_1 \mapsto \left[\left(1 - t\right) + \frac{t}{|A_1|}\right]A_1$, $A_2 \mapsto A_2 - t \langle A_1, A_2 \rangle A_1$, no? –  Alexei Averchenko Oct 16 '12 at 12:20

By QR decomposition you can write any $A \in \textrm{GL}_n^+ (\Bbb{R})$ as an orthogonal matrix $Q$ times an upper triangular matrix $R$ which you can arrange to be such that $\det Q = 1$. Clearly you can homotope $R$ to the identity matrix and thus $\textrm{GL}_n^+(\Bbb{R})$ deformation retracts onto $\textrm{SO}(n)$.

If you want an explicit deformation retract, you can take the function $F : \textrm{GL}_n^+(\Bbb{R}) \times I \to \textrm{SO}(n)$ given as follows. Write any $A$ in the connected component of the identity as $A= QR$ with $R = (a_{ij})$ upper triangular with entries on the diagonal all positive. Then

$$F(A,t) = Q\times \left(\begin{array}{ccccc} (t) + (1-t)a_{11} & (1-t)a_{12} & \ldots & (1-t)a_{1n} \\ 0 & (t) + (1-t)a_{22} & \ldots & (1-t) a_{2n} \\ & \ddots& \vdots \\ &&\ddots \\ && &t + (1-t)a_{nn} \end{array}\right)$$

is the required deformation retract.

You should note that the same proof shows that $\textrm{GL}_n(\Bbb{C})$ deformation retracts onto $\textrm{U}(n)$.

-
Somehow if $A = QR$, then if $\det Q = \det R = 1$, apparently I see only $\det A = 1$, definitely not all of $\mathrm{GL}_n^+(\Bbb R)$... –  Lord_Farin Oct 16 '12 at 11:42
@Lord_Farin Sorry I made a mistake earlier I've cleared it up now. –  user38268 Oct 16 '12 at 11:43
Shouldn't one require that $a_{i,i}>0$ for all $i$? –  Marc van Leeuwen Oct 16 '12 at 13:28
thank you very much sir –  La Belle Noiseuse Oct 17 '12 at 5:44
@MarcvanLeeuwen I edited my answer. –  user38268 Oct 17 '12 at 6:49

Here is a geometric way to see this. To any ordered basis $(v_1,v_2,\ldots,v_n)$ of your vector space $V$ associate the "flag" of subspaces $V_0=\{0\}$, $V_1=\langle v_1\rangle$, $V_2=\langle v_1,v_2\rangle$, ... $V_n=\langle v_1,v_2,\ldots,v_n\rangle=V$. The Gram-Schmidt algorithm turns any such basis into an orthonormal basis $(b_1,\ldots,b_n)$ that gives rise to the same flag of subspaces. It is moreover the unique such basis (orthonomal and with the same flag) for which in addition each $b_i$, inside $V_i$, is on the same side of the hyperplane $V_{i-1}$ as the original basis vector $v_i$.

Now taking $V=\Bbb R^n$ we can identify $GL_n^+(\Bbb R)$ with the set of ordered bases $(v_1,v_2,\ldots,v_n)$ with $\det(v_1,v_2,\ldots,v_n)>0$, and $SO(n)$ with the set of ordered orthonormal bases $(b_1,b_2,\ldots,b_n)$ with $\det(b_1,b_2,\ldots,b_n)>0$. Now for such a basis $(v_1,v_2,\ldots,v_n)$ let $(b_1,\ldots,b_n)$ be the orthonormal basis associated to it under Gram-Schmidt, and simultaneously (or successively if you prefer) deform every $v_i$ linearly to $b_i$, as $t\mapsto (1-t)v_i+tb_i$. The intermediate vectors stay inside $V_i$, and since $b_i$ is on the same side as $v_i$, they never enter $V_{i-1}$. This means the deformed vectors stay linearly independent at all times, so the deformation takes place inside $GL_n(\Bbb R)$. As the determinant cannot vanish anywhere we have $\det(v_1,v_2,\ldots,v_n)>0\implies \det(b_1,b_2,\ldots,b_n)>0$ and we have a deformation retract of $GL_n^+(\Bbb R)$ to $SO(n)$. It is in fact a strong deformation retract: elements of $SO(n)$ remain fixed.

-
fabulas explaination dear sir –  La Belle Noiseuse Oct 17 '12 at 5:43