From Orthonormal Vectors to a Matrix
A matrix can be understood one column at a time. If its columns are mutually perpendicular unit vectors, then they form an orthonormal list. That geometric condition has a compact algebraic description: multiplying the transpose of the matrix by the matrix records every column’s dot products. This connection is useful in computations such as QR factorization, where a matrix is built with orthonormal columns.
Throughout this tutorial the scalar field is \(\mathbb{R}\), and vectors are columns. For \(\mathbf{x},\mathbf{y}\in\mathbb{R}^m\), their dot product is \(\mathbf{x}^{\top}\mathbf{y}\), and their norm is \(\|\mathbf{x}\|=\sqrt{\mathbf{x}^{\top}\mathbf{x}}\). Two vectors are orthogonal when their dot product is zero. A vector has unit length when its norm equals \(1\).
Thus the definition has two requirements: every column must have length \(1\), and every pair of different columns must be orthogonal. Neither requirement alone is enough. The matrix equation below conveniently checks them together.
The Column Dot Products in \(\mathbf{Q}^{\top}\mathbf{Q}\)
Let \(\mathbf{Q}\in\mathbb{R}^{m\times n}\), and write its columns as \(\mathbf{q}_1,\dots,\mathbf{q}_n\). The transpose \(\mathbf{Q}^{\top}\) has the columns of \(\mathbf{Q}\) as its rows. By the rule for matrix multiplication, the entry in row \(i\), column \(j\) of \(\mathbf{Q}^{\top}\mathbf{Q}\) is the dot product of column \(i\) with column \(j\):
When \(i=j\), this entry is \(\mathbf{q}_i^{\top}\mathbf{q}_i=\|\mathbf{q}_i\|^2\). When \(i\ne j\), it is the dot product of two different columns. The identity matrix \(\mathbf{I}_n\) has \(1\) on its diagonal and \(0\) elsewhere, matching exactly the requirements for an orthonormal list.
Proof. Suppose first that the columns are orthonormal. For every pair \(i,j\), the entry in position \((i,j)\) of \(\mathbf{Q}^{\top}\mathbf{Q}\) is \(\mathbf{q}_i^{\top}\mathbf{q}_j\). If \(i=j\), this is \(\|\mathbf{q}_i\|^2=1\). If \(i\ne j\), it is \(0\) by orthogonality. Therefore the diagonal entries are \(1\), the other entries are \(0\), and \(\mathbf{Q}^{\top}\mathbf{Q}=\mathbf{I}_n\). Conversely, suppose \(\mathbf{Q}^{\top}\mathbf{Q}=\mathbf{I}_n\). Comparing entries gives \(\mathbf{q}_i^{\top}\mathbf{q}_i=1\) for each \(i\), so \(\|\mathbf{q}_i\|=1\). For \(i\ne j\), the same entry comparison gives \(\mathbf{q}_i^{\top}\mathbf{q}_j=0\), so distinct columns are orthogonal. Both requirements in the definition hold, and the columns are orthonormal. When \(m=n\), this is precisely the stated condition for \(\mathbf{Q}\) to be an orthogonal matrix. \(\square\)
The identity in this theorem is \(\mathbf{I}_n\), since \(\mathbf{Q}^{\top}\mathbf{Q}\) has \(n\) rows and \(n\) columns: it has one row and column for each column of \(\mathbf{Q}\). The statement applies to rectangular matrices as well as square ones, but only the square case is called an orthogonal matrix here.
Worked Matrix Tests
Worked Example: A Square Matrix with Orthonormal Columns
Test whether the following matrix is orthogonal by computing \(\mathbf{Q}^{\top}\mathbf{Q}\):
The columns are \(\mathbf{q}_1=(\frac35,\frac45)^{\top}\) and \(\mathbf{q}_2=(-\frac45,\frac35)^{\top}\). First form the transpose and multiply:
The product equals \(\mathbf{I}_2\), so the columns are orthonormal and \(\mathbf{Q}\) is orthogonal. Directly, each column has squared length \(\frac9{25}+\frac{16}{25}=1\), and their dot product is \(-\frac{12}{25}+\frac{12}{25}=0\), confirming the result.
Worked Example: A Signed Permutation of Coordinate Vectors
Determine whether the columns of this \(3\times3\) matrix are orthonormal:
The columns are \(\mathbf{p}_1=(0,1,0)^{\top}\), \(\mathbf{p}_2=(1,0,0)^{\top}\), and \(\mathbf{p}_3=(0,0,-1)^{\top}\). The matrix is symmetric, so \(\mathbf{P}^{\top}=\mathbf{P}\). Multiplication gives
For example, the first diagonal entry is \(0^2+1^2+0^2=1\), and the entry in position \((1,2)\) is \(0\cdot1+1\cdot0+0\cdot0=0\). The other diagonal entries are also \(1\), and the other off-diagonal entries are \(0\), as shown by the full product. Thus the columns are orthonormal and \(\mathbf{P}\) is orthogonal.
Worked Example: Unit-Length Columns That Are Not Orthogonal
Each column of the matrix below has length \(1\). Is that enough for the matrix to be orthogonal?
The columns are \(\mathbf{a}_1=(1,0)^{\top}\) and \(\mathbf{a}_2=(\frac35,\frac45)^{\top}\). Their squared lengths are \(1^2+0^2=1\) and \((\frac35)^2+(\frac45)^2=\frac9{25}+\frac{16}{25}=1\). But their dot product is \(1\cdot\frac35+0\cdot\frac45=\frac35\), which is not zero. Computing the matrix product shows the same issue:
The product is not \(\mathbf{I}_2\), because its off-diagonal entries are \(\frac35\), not \(0\). The columns are unit vectors but not orthogonal, so \(\mathbf{A}\) is not an orthogonal matrix.
A Consequence for Linear Independence
Orthonormal columns cannot be redundant. This follows directly from their dot products, without needing to solve a matrix equation by row reduction. Recall that a list is linearly independent when the only linear combination of its vectors equal to \(\mathbf{0}\) has all coefficients zero.
Proof. Suppose \(c_1\mathbf{q}_1+\cdots+c_n\mathbf{q}_n=\mathbf{0}\) for real scalars \(c_1,\dots,c_n\). Fix an index \(j\) and take the dot product of both sides with \(\mathbf{q}_j\). Distributivity of the dot product gives \(\sum_{i=1}^{n}c_i(\mathbf{q}_i^{\top}\mathbf{q}_j)=\mathbf{0}^{\top}\mathbf{q}_j=0\). Since the list is orthonormal, \(\mathbf{q}_i^{\top}\mathbf{q}_j=0\) for \(i\ne j\) and \(\mathbf{q}_j^{\top}\mathbf{q}_j=1\). The sum therefore reduces to \(c_j=0\). This argument applies to every \(j\in\{1,\dots,n\}\), so all coefficients are zero. Hence the list is linearly independent. \(\square\)
In particular, each column in an orthonormal list is nonzero: its length is \(1\). The proposition adds that no column can be expressed as a linear combination of the others. It is a consequence of the orthonormality definition, rather than an additional condition to check when testing \(\mathbf{Q}^{\top}\mathbf{Q}=\mathbf{I}_n\).
Common Pitfall: Checking Only the Diagonal
A common incomplete test is to check that every column has length \(1\) and then conclude that the matrix is orthogonal. For the matrix \(\mathbf{A}\) in the third example, that calculation gives diagonal entries \(1\) and \(1\) in \(\mathbf{A}^{\top}\mathbf{A}\). The incorrect conclusion would be, “Both columns have unit length, so \(\mathbf{A}^{\top}\mathbf{A}=\mathbf{I}_2\).” The actual product is
so the off-diagonal entries show that the columns are not perpendicular. The correction is to compare the entire product with the identity, not just its diagonal. Conversely, a zero off-diagonal entry alone does not guarantee a unit-length column: for example, \(\begin{bmatrix}2&0\\0&1\end{bmatrix}^{\top}\begin{bmatrix}2&0\\0&1\end{bmatrix}=\begin{bmatrix}4&0\\0&1\end{bmatrix}\), which is diagonal but not the identity.
For a direct test of a real square matrix, compute \(\mathbf{Q}^{\top}\mathbf{Q}\) and inspect every entry. The diagonal entries must all be \(1\), and every off-diagonal entry must be \(0\). Equivalently, check that every column has unit length and every pair of different columns has dot product zero. These are the same test, expressed once as a matrix equation and once in terms of vectors.
Check Your Understanding
Use column dot products or compute the indicated matrix product, and justify each conclusion.
- For \(\mathbf{B}=\begin{bmatrix}0&-1\\1&0\end{bmatrix}\), compute \(\mathbf{B}^{\top}\mathbf{B}\). Are its columns orthonormal?
- Can a list of two unit vectors be non-orthonormal? Give a specific pair in \(\mathbb{R}^2\) and compute their dot product.
- For an \(m\times n\) matrix \(\mathbf{Q}\), what is the size of \(\mathbf{Q}^{\top}\mathbf{Q}\), and what does its \((i,j)\) entry represent?
- Prove that if \(\mathbf{q}_1,\dots,\mathbf{q}_n\) are orthonormal, then \(\|\mathbf{q}_j\|=1\) for each \(j\).
- Explain why checking only the diagonal entries of \(\mathbf{Q}^{\top}\mathbf{Q}\) does not establish that the columns are orthonormal.