Maths WorkshopMaths problems with full solutions
Exercise 2050Topology › Topology of Mn(ℝ) › Continuity of matrix mapsM1Added 7 Nov 2026

GL_n is homeomorphic to O(n) × upper triangular

#QR decomposition#Gram-Schmidt#Iwasawa#homeomorphism

Statement

Let T+T_+ be the set of upper triangular real matrices with positive diagonal entries. Show that GLn(R)→O(n)×T+GL_n(\mathbb{R})\to O(n)\times T_+, A↦(Q,R)A\mapsto(Q,R) with A=QRA=QR, is a homeomorphism.

Hint

Gram-Schmidt on the columns of AA is built from sums, products, norms and divisions by nonzero numbers.

Uniqueness: an orthogonal upper triangular matrix is diagonal.

Show solutionHide solution

Solution

Idea. Existence is Gram-Schmidt; the same recipe is a continuous formula; uniqueness makes the maps inverse to each other.

Step 1: existence by Gram-Schmidt. Let a1,…,ana_1,\dots,a_n be the columns of AA (a basis). Define
uj=aj−∑i<j⟨aj,qi⟩qi,qj=uj∣uj∣,u_j=a_j-\sum_{i<j}\langle a_j,q_i\rangle q_i,\qquad q_j=\frac{u_j}{|u_j|},
where uj≠0u_j\ne0 because aj∉span⁡(a1,…,aj−1)a_j\notin\operatorname{span}(a_1,\dots,a_{j-1}). Then (qj)(q_j) is orthonormal and aj=∑i≤jRijqia_j=\sum_{i\le j}R_{ij}q_i with Rij=⟨aj,qi⟩R_{ij}=\langle a_j,q_i\rangle for i<ji<j and Rjj=∣uj∣>0R_{jj}=|u_j|>0. So A=QRA=QR with Q=(q1∣…∣qn)Q=(q_1|\dots|q_n) orthogonal and R∈T+R\in T_+.

Step 2: uniqueness. If QR=Q′R′QR=Q'R' then M:=R′R−1=Q′TQM:=R'R^{-1}=Q'^TQ is orthogonal and upper triangular with positive diagonal. An orthogonal matrix satisfies M−1=MTM^{-1}=M^T; but M−1M^{-1} is upper triangular, and MTM^T is lower triangular, so MM is diagonal. A diagonal orthogonal matrix has entries ±1\pm1, and positive ones force M=IM=I. Hence R′=RR'=R, Q′=QQ'=Q.

Step 3: continuity of A↦(Q,R)A\mapsto(Q,R). Each step of Gram-Schmidt uses sums, products, inner products, and u↦u/∣u∣u\mapsto u/|u|, which is continuous on u≠0u\neq0. By induction on jj, the vectors qjq_j and the numbers RijR_{ij} are continuous functions of AA on GLnGL_n, as uj≠0u_j\ne0 throughout.

Step 4: the inverse. (Q,R)↦QR(Q,R)\mapsto QR is continuous (Problem 67) with values in GLnGL_n, and by uniqueness and existence it is the inverse of A↦(Q,R)A\mapsto(Q,R).

Remark.
- T+≅(0,∞)n×Rn(n−1)/2T_+\cong(0,\infty)^n\times\mathbb{R}^{n(n-1)/2} is contractible, so this decomposition again shows that GLnGL_n deformation retracts onto O(n)O(n) (compare Problem 90).
- It is the GLn(R)=K⋅A⋅NGL_n(\mathbb{R})=K\cdot A\cdot N Iwasawa decomposition, with K=O(n)K=O(n), AA the positive diagonal matrices, and NN the unipotent upper triangular matrices.
- Numerically, `numpy.linalg.qr` does not enforce Rjj>0R_{jj}>0; one must multiply by the signs of the diagonal (checked).