Skip to main content

Section 7.3 Orthogonal Diagonalization of Symmetric Matrices

We now study a special case: symmetric matrices (matrices where \(A^T = A\)). These matrices have remarkable properties that make them especially important in applications.
As we’ll see, symmetric matrices are not only always diagonalizable, but can be diagonalized using an orthogonal matrix—a matrix whose columns form an orthonormal set. This gives us both geometric and computational advantages.

Subsection 7.3.1 Orthogonal Matrices

Before discussing symmetric matrices, we need to understand orthogonal matrices—matrices whose columns form an orthonormal set (see Definitions of Orthogonal and Orthonormal). These matrices have special properties that make them invaluable in applications.

Definition 7.3.1. Orthogonal Matrix.

A square matrix \(P\) is called an orthogonal matrix if its columns form an orthonormal set (recall Definitions of Orthogonal and Orthonormal). That is, if \(P = [\mathbf{p}_1 \mid \mathbf{p}_2 \mid \cdots \mid \mathbf{p}_n]\text{,}\) then:
\begin{equation*} \mathbf{p}_i \cdot \mathbf{p}_j = \begin{cases} 1 \amp \text{if } i = j \\ 0 \amp \text{if } i \neq j \end{cases} \end{equation*}
The name "orthogonal" comes from the fact that the columns are orthogonal (perpendicular) to each other, and they are also normalized to have length 1.

Proof.

(1) \(\Rightarrow\) (2): If \(P = [\mathbf{p}_1 \mid \cdots \mid \mathbf{p}_n]\) has orthonormal columns, then the \((i,j)\)-entry of \(P^TP\) is:
\begin{equation*} (P^TP)_{ij} = \mathbf{p}_i \cdot \mathbf{p}_j = \begin{cases} 1 \amp \text{if } i=j \\ 0 \amp \text{if } i \neq j \end{cases} \end{equation*}
Therefore \(P^TP = I\text{.}\)
(2) \(\Rightarrow\) (3): If \(P^TP = I\text{,}\) then \(P^T\) is the inverse of \(P\text{,}\) so \(P^{-1} = P^T\text{.}\)
(3) \(\Rightarrow\) (4): If \(P^{-1} = P^T\text{,}\) then \(PP^{-1} = I\) implies \(PP^T = I\text{.}\)
(4) \(\Rightarrow\) (1): If \(PP^T = I\text{,}\) then by a similar argument to (1) \(\Rightarrow\) (2), the rows of \(P\) are orthonormal, which means the columns of \(P^T\) are orthonormal. From \(P^TP = (PP^T)^T = I^T = I\text{,}\) we can reverse the argument in (1) \(\Rightarrow\) (2) to conclude that the columns of \(P\) are orthonormal.

Insight 7.3.3. Why Orthogonal Matrices Are Wonderful.

The condition \(P^{-1} = P^T\) means that finding the inverse of an orthogonal matrix is trivial—just transpose it! This is computationally much cheaper than computing an inverse using Gaussian elimination or other methods.

Example 7.3.4. A \(2 \times 2\) Orthogonal Matrix.

Show that \(P = \begin{bmatrix} \cos\theta \amp -\sin\theta \\ \sin\theta \amp \cos\theta \end{bmatrix}\) is an orthogonal matrix for any angle \(\theta\text{.}\)
Solution.
The columns of \(P\) are \(\mathbf{p}_1 = \begin{bmatrix} \cos\theta \\ \sin\theta \end{bmatrix}\) and \(\mathbf{p}_2 = \begin{bmatrix} -\sin\theta \\ \cos\theta \end{bmatrix}\text{.}\)
Check orthonormality:
\begin{align*} \|\mathbf{p}_1\| \amp= \sqrt{\cos^2\theta + \sin^2\theta} = \sqrt{1} = 1\\ \|\mathbf{p}_2\| \amp= \sqrt{(-\sin\theta)^2 + \cos^2\theta} = \sqrt{\sin^2\theta + \cos^2\theta} = 1\\ \mathbf{p}_1 \cdot \mathbf{p}_2 \amp= \cos\theta(-\sin\theta) + \sin\theta(\cos\theta) = -\cos\theta\sin\theta + \sin\theta\cos\theta = 0 \end{align*}
The columns are orthonormal, so \(P\) is an orthogonal matrix.
Geometric meaning: This matrix represents a rotation by angle \(\theta\) in \(\mathbb{R}^2\text{.}\) Rotations preserve lengths and angles, which is exactly what orthogonal matrices do!

Example 7.3.5. Verifying a \(3 \times 3\) Orthogonal Matrix.

Verify that \(P = \begin{bmatrix} \frac{2}{3} \amp \frac{2}{3} \amp \frac{1}{3} \\ \frac{1}{3} \amp -\frac{2}{3} \amp \frac{2}{3} \\ \frac{2}{3} \amp \frac{1}{3} \amp -\frac{2}{3} \end{bmatrix}\) is an orthogonal matrix.
Solution.
We verify that \(P^TP = I\text{:}\)
Since \(P^TP = I\text{,}\) we have \(P^{-1} = P^T\text{,}\) so \(P\) is an orthogonal matrix.

Proof.

(1): From \(P^TP = I\text{,}\) we have \(\det(P^TP) = \det(I) = 1\text{.}\) But \(\det(P^TP) = \det(P^T)\det(P) = \det(P)^2\text{.}\) Therefore \(\det(P)^2 = 1\text{,}\) giving \(\det(P) = \pm 1\text{.}\)
(2): For length preservation:
\begin{equation*} \|P\mathbf{u}\|^2 = (P\mathbf{u}) \cdot (P\mathbf{u}) = (P\mathbf{u})^T(P\mathbf{u}) = \mathbf{u}^TP^TP\mathbf{u} = \mathbf{u}^T\mathbf{u} = \|\mathbf{u}\|^2 \end{equation*}
For dot product preservation:
\begin{equation*} (P\mathbf{u}) \cdot (P\mathbf{v}) = (P\mathbf{u})^T(P\mathbf{v}) = \mathbf{u}^TP^TP\mathbf{v} = \mathbf{u}^T\mathbf{v} = \mathbf{u} \cdot \mathbf{v} \end{equation*}
Angle preservation follows from the formula \(\cos\theta = \frac{\mathbf{u} \cdot \mathbf{v}}{\|\mathbf{u}\|\|\mathbf{v}\|}\text{,}\) which is preserved since both numerator and denominator are preserved.
(3): If \(P^TP = I\) and \(Q^TQ = I\text{,}\) then \((PQ)^T(PQ) = Q^TP^TPQ = Q^TQ = I\text{.}\)
(4): If \(P^{-1} = P^T\text{,}\) then \((P^{-1})^{-1} = P = (P^T)^T = (P^{-1})^T\text{,}\) so \(P^{-1}\) is orthogonal.
Geometric Interpretation: Orthogonal matrices represent rigid motions—transformations that preserve lengths and angles, such as rotations and reflections. This preservation property makes them ideal for diagonalizing symmetric matrices: we can find an optimal coordinate system without distorting the underlying geometry.

Remark 7.3.7.

Why do orthogonal matrices appear naturally in symmetric matrix diagonalization? Because symmetric matrices arise from geometric objects (quadratic forms, physical systems), and we want to analyze them in the "best" coordinate system while preserving their geometric structure. Orthogonal matrices achieve exactly this—they change coordinates without changing distances or angles.

Subsection 7.3.2 Special Properties of Symmetric Matrices

Before diving into the technical theorems, let’s understand why symmetric matrices deserve special attention.

Insight 7.3.8. Why Study Symmetric Matrices?

Symmetric matrices (\(A^T = A\)) appear constantly in applications:
  • Quadratic forms: Expressions like \(\mathbf{x}^TA\mathbf{x}\) (used in optimization, statistics, physics) naturally involve symmetric matrices. For example, the variance-covariance matrix in statistics is always symmetric.
  • Physical systems: Moment of inertia tensors, stress tensors in mechanics, and the Hessian matrix in optimization are all symmetric.
  • Graph theory and networks: Adjacency matrices of undirected graphs are symmetric, appearing in network analysis, social networks, and web search algorithms.
  • Differential equations: Many important operators in physics (like the Laplacian) lead to symmetric matrices when discretized.

Why Symmetric Matrix Diagonalization Is Special.

While we’ve learned that some matrices can be diagonalized, symmetric matrices have exceptional properties:
  1. Always diagonalizable: Every symmetric matrix can be diagonalized, whereas general matrices may not be diagonalizable at all.
  2. Real eigenvalues: All eigenvalues of a real symmetric matrix are real numbers (not complex), making them easier to interpret physically.
  3. Orthogonal eigenvectors: Eigenvectors for distinct eigenvalues are automatically orthogonal, giving us a geometric orthogonal basis.
  4. Orthogonal diagonalization: We can diagonalize using an orthogonal matrix \(P\) (with \(P^{-1} = P^T\)), which is computationally efficient and numerically stable.
The Bottom Line: Symmetric matrices are not just "nice to work with"—they are fundamental objects in science and engineering, and their special properties make them computationally tractable and geometrically meaningful.
Let’s now prove these remarkable properties.

Proof.

Let \(\lambda\) be an eigenvalue of \(A\) with corresponding eigenvector \(\mathbf{v}\) (which may have complex entries). We need to show that \(\lambda\) is real, i.e., \(\lambda = \overline{\lambda}\text{,}\) where \(\overline{\lambda}\) denotes the complex conjugate of \(\lambda\text{.}\)
Since \(A\mathbf{v} = \lambda\mathbf{v}\text{,}\) taking the complex conjugate of both sides gives:
\begin{equation*} \overline{A\mathbf{v}} = \overline{\lambda\mathbf{v}} \end{equation*}
Since \(A\) is a real matrix, \(\overline{A} = A\text{,}\) and we have:
\begin{equation*} A\overline{\mathbf{v}} = \overline{\lambda}\,\overline{\mathbf{v}} \end{equation*}
Now, multiply the original equation \(A\mathbf{v} = \lambda\mathbf{v}\) on the left by \(\overline{\mathbf{v}}^T\text{:}\)
\begin{equation*} \overline{\mathbf{v}}^T A\mathbf{v} = \lambda\,\overline{\mathbf{v}}^T\mathbf{v} \end{equation*}
Since \(A\) is symmetric (\(A^T = A\)) and real, we have:
\begin{align*} \overline{\mathbf{v}}^T A\mathbf{v} \amp= (A\overline{\mathbf{v}})^T\mathbf{v} \amp\amp \text{(using $A^T = A$)}\\ \amp= (\overline{\lambda}\,\overline{\mathbf{v}})^T\mathbf{v} \amp\amp \text{(using $A\overline{\mathbf{v}} = \overline{\lambda}\,\overline{\mathbf{v}}$)}\\ \amp= \overline{\lambda}\,\overline{\mathbf{v}}^T\mathbf{v} \end{align*}
Combining our two expressions:
\begin{equation*} \lambda\,\overline{\mathbf{v}}^T\mathbf{v} = \overline{\lambda}\,\overline{\mathbf{v}}^T\mathbf{v} \end{equation*}
Since \(\mathbf{v} \neq \mathbf{0}\) (eigenvectors are nonzero), we have \(\overline{\mathbf{v}}^T\mathbf{v} = \sum_{i=1}^n \overline{v_i}v_i = \sum_{i=1}^n |v_i|^2 > 0\text{.}\) Dividing both sides by \(\overline{\mathbf{v}}^T\mathbf{v}\) gives:
\begin{equation*} \lambda = \overline{\lambda} \end{equation*}
Therefore, \(\lambda\) is real.

Proof.

We have \(A\mathbf{v}_1 = \lambda_1\mathbf{v}_1\) and \(A\mathbf{v}_2 = \lambda_2\mathbf{v}_2\text{.}\) Then:
\begin{align*} \lambda_1(\mathbf{v}_1 \cdot \mathbf{v}_2) \amp= (\lambda_1\mathbf{v}_1) \cdot \mathbf{v}_2 = (A\mathbf{v}_1) \cdot \mathbf{v}_2\\ \amp= \mathbf{v}_1 \cdot (A^T\mathbf{v}_2) \amp\amp \text{(property of dot product)}\\ \amp= \mathbf{v}_1 \cdot (A\mathbf{v}_2) \amp\amp \text{(since $A^T = A$)}\\ \amp= \mathbf{v}_1 \cdot (\lambda_2\mathbf{v}_2) = \lambda_2(\mathbf{v}_1 \cdot \mathbf{v}_2) \end{align*}
Therefore \((\lambda_1 - \lambda_2)(\mathbf{v}_1 \cdot \mathbf{v}_2) = 0\text{.}\) Since \(\lambda_1 \neq \lambda_2\text{,}\) we must have \(\mathbf{v}_1 \cdot \mathbf{v}_2 = 0\text{.}\)
These two properties combine to give us the fundamental theorem about symmetric matrices:

Proof.

We prove this by induction on \(n\text{,}\) the size of the matrix.
Base case (\(n = 1\)): A \(1 \times 1\) matrix \(A = [a]\) is already diagonal, and \(P = [1]\) is orthogonal.
Inductive step: Assume the theorem holds for all \((n-1) \times (n-1)\) symmetric matrices. Let \(A\) be an \(n \times n\) symmetric matrix.
By Theorem 7.3.9, \(A\) has a real eigenvalue \(\lambda_1\text{.}\) Let \(\mathbf{u}_1\) be a corresponding eigenvector normalized so that \(\|\mathbf{u}_1\| = 1\text{.}\) Then \(A\mathbf{u}_1 = \lambda_1\mathbf{u}_1\text{.}\)
Extend \(\{\mathbf{u}_1\}\) to an orthonormal basis \(\{\mathbf{u}_1, \mathbf{u}_2, \ldots, \mathbf{u}_n\}\) of \(\mathbb{R}^n\) (using Gram-Schmidt if necessary). Let \(Q = [\mathbf{u}_1 \mid \mathbf{u}_2 \mid \cdots \mid \mathbf{u}_n]\text{.}\) Then \(Q\) is orthogonal.
Consider \(B = Q^TAQ\text{.}\) Since \(A\) is symmetric, so is \(B\text{.}\) The first column of \(B\) is:
\begin{equation*} Q^TA\mathbf{u}_1 = Q^T(\lambda_1\mathbf{u}_1) = \lambda_1 Q^T\mathbf{u}_1 = \lambda_1\begin{bmatrix} 1 \\ 0 \\ \vdots \\ 0 \end{bmatrix} \end{equation*}
By symmetry, the first row of \(B\) is \([\lambda_1 \; 0 \; \cdots \; 0]\text{.}\) Thus:
\begin{equation*} B = \begin{bmatrix} \lambda_1 \amp \mathbf{0}^T \\ \mathbf{0} \amp B_1 \end{bmatrix} \end{equation*}
where \(B_1\) is an \((n-1) \times (n-1)\) symmetric matrix.
By the inductive hypothesis, \(B_1\) is orthogonally diagonalizable: there exists an \((n-1) \times (n-1)\) orthogonal matrix \(P_1\) such that \(P_1^TB_1P_1 = D_1\) is diagonal.
Define \(R = \begin{bmatrix} 1 \amp \mathbf{0}^T \\ \mathbf{0} \amp P_1 \end{bmatrix}\text{.}\) Then \(R\) is orthogonal and:
\begin{equation*} R^TBR = \begin{bmatrix} \lambda_1 \amp \mathbf{0}^T \\ \mathbf{0} \amp D_1 \end{bmatrix} = D \end{equation*}
is diagonal.
Finally, let \(P = QR\text{.}\) Since \(Q\) and \(R\) are orthogonal, so is \(P\text{.}\) Moreover:
\begin{equation*} P^TAP = (QR)^TA(QR) = R^T(Q^TAQ)R = R^TBR = D \end{equation*}
Thus \(A\) is orthogonally diagonalizable, completing the induction.

Steps for Orthogonal Diagonalization.

To orthogonally diagonalize a symmetric matrix \(A\text{:}\)
  1. Find all eigenvalues and corresponding eigenvectors of \(A\text{.}\)
  2. For each eigenspace, if it has dimension greater than 1, apply the Gram-Schmidt process to get an orthogonal basis.
  3. Normalize all eigenvectors to get orthonormal eigenvectors.
  4. Form \(P\) with these orthonormal eigenvectors as columns, and \(D\) with corresponding eigenvalues on the diagonal.
Then \(P^TAP = D\text{.}\)

Example 7.3.12. Orthogonally Diagonalizing a Symmetric Matrix.

Orthogonally diagonalize the symmetric matrix
\begin{equation*} A = \begin{bmatrix} 5 \amp -8 \amp 4 \\ -8 \amp 5 \amp -4 \\ 4 \amp -4 \amp -1 \end{bmatrix} \end{equation*}
Solution.
We’ll work through this step by step.
Step 1: Find eigenvalues and eigenvectors.
From the output, we have:
  • \(\lambda_1 = 15\) with eigenvector \(\mathbf{v}_1 = \begin{bmatrix} 1 \\ -1 \\ 1/2 \end{bmatrix}\)
  • \(\lambda_2 = -3\) with multiplicity 2 and eigenspace basis \(\left\{\begin{bmatrix} 1 \\ 0 \\ -2 \end{bmatrix}, \begin{bmatrix} 0 \\ 1 \\ 2 \end{bmatrix}\right\}\)
Step 2: Apply Gram-Schmidt to the \(\lambda_2 = -3\) eigenspace.
Since the eigenspace for \(\lambda_2 = -3\) has dimension 2, we need to orthogonalize the two eigenvectors. Let \(\mathbf{w}_1 = \begin{bmatrix} 1 \\ 0 \\ -2 \end{bmatrix}\) and \(\mathbf{w}_2 = \begin{bmatrix} 0 \\ 1 \\ 2 \end{bmatrix}\text{.}\)
Using Gram-Schmidt: keep \(\mathbf{v}_2 = \mathbf{w}_1\text{,}\) then compute:
\begin{equation*} \mathbf{v}_3 = \mathbf{w}_2 - \frac{\mathbf{w}_2 \cdot \mathbf{v}_2}{\mathbf{v}_2 \cdot \mathbf{v}_2}\mathbf{v}_2 \end{equation*}
Step 3: Normalize all eigenvectors.
Step 4: Form the orthogonal matrix \(P\) and the diagonal matrix \(D\text{.}\)
Step 5: Verify that \(P^TAP = D\text{.}\)
Conclusion: We have successfully orthogonally diagonalized \(A\text{.}\) Notice that \(P\) is an orthogonal matrix (satisfying \(P^TP = I\)), and \(P^TAP = D\) is diagonal with the eigenvalues on the diagonal.

Example 7.3.13. Orthogonal Diagonalization with Repeated Eigenvalue.

Orthogonally diagonalize the matrix
\begin{equation*} A = \begin{bmatrix} 3 \amp -2 \amp 4 \\ -2 \amp 6 \amp 2 \\ 4 \amp 2 \amp 3 \end{bmatrix} \end{equation*}
Solution.
Step 1: Compute eigenvalues and corresponding eigenvectors.
First, we find the characteristic polynomial and solve for eigenvalues:
From the computation, we find:
  • \(\lambda = 7\) (multiplicity 2) with eigenvectors \(\mathbf{v}_1 = \begin{bmatrix} 1 \\ 0 \\ 1 \end{bmatrix}\) and \(\mathbf{v}_2 = \begin{bmatrix} -1/2 \\ 1 \\ 0 \end{bmatrix}\)
  • \(\lambda = -2\) (multiplicity 1) with eigenvector \(\mathbf{v}_3 = \begin{bmatrix} -1 \\ -1/2 \\ 1 \end{bmatrix}\)
Step 2: Apply the Gram-Schmidt process to the eigenspace for \(\lambda = 7\text{.}\)
Since the eigenvalue \(\lambda = 7\) has multiplicity 2, we need to orthogonalize the two eigenvectors \(\mathbf{v}_1\) and \(\mathbf{v}_2\text{.}\)
Gram-Schmidt process on \(\{\mathbf{v}_1, \mathbf{v}_2\}\text{:}\)
  • Keep the first vector: \(\mathbf{w}_1 = \mathbf{v}_1 = \begin{bmatrix} 1 \\ 0 \\ 1 \end{bmatrix}\)
  • Orthogonalize the second vector:
    \begin{align*} \mathbf{w}_2 \amp= \mathbf{v}_2 - \frac{\mathbf{v}_2 \cdot \mathbf{w}_1}{\mathbf{w}_1 \cdot \mathbf{w}_1}\mathbf{w}_1\\ \amp= \begin{bmatrix} -1/2 \\ 1 \\ 0 \end{bmatrix} - \frac{-1/2}{2}\begin{bmatrix} 1 \\ 0 \\ 1 \end{bmatrix}\\ \amp= \begin{bmatrix} -1/2 \\ 1 \\ 0 \end{bmatrix} + \begin{bmatrix} 1/4 \\ 0 \\ 1/4 \end{bmatrix}\\ \amp= \begin{bmatrix} -1/4 \\ 1 \\ 1/4 \end{bmatrix} \end{align*}
Note about \(\mathbf{v}_3\text{:}\) Since \(\mathbf{v}_3\) corresponds to a different eigenvalue (\(\lambda = -2\)), by Theorem 7.3.10, it is automatically orthogonal to both \(\mathbf{v}_1\) and \(\mathbf{v}_2\) (and hence to \(\mathbf{w}_1\) and \(\mathbf{w}_2\)). Therefore:
\begin{equation*} \mathbf{w}_3 = \mathbf{v}_3 = \begin{bmatrix} -1 \\ -1/2 \\ 1 \end{bmatrix} \end{equation*}
Step 3: Normalize the orthogonal vectors.
Now we normalize \(\mathbf{w}_1, \mathbf{w}_2, \mathbf{w}_3\) to get unit vectors:
\begin{align*} \mathbf{u}_1 \amp= \frac{\mathbf{w}_1}{\|\mathbf{w}_1\|} = \frac{1}{\sqrt{2}}\begin{bmatrix} 1 \\ 0 \\ 1 \end{bmatrix} = \begin{bmatrix} 1/\sqrt{2} \\ 0 \\ 1/\sqrt{2} \end{bmatrix}\\ \mathbf{u}_2 \amp= \frac{\mathbf{w}_2}{\|\mathbf{w}_2\|} = \frac{1}{\sqrt{(-1/4)^2 + 1^2 + (1/4)^2}}\begin{bmatrix} -1/4 \\ 1 \\ 1/4 \end{bmatrix}\\ \amp= \frac{1}{\sqrt{18/16}}\begin{bmatrix} -1/4 \\ 1 \\ 1/4 \end{bmatrix} = \frac{4}{\sqrt{18}}\begin{bmatrix} -1/4 \\ 1 \\ 1/4 \end{bmatrix} = \begin{bmatrix} -1/\sqrt{18} \\ 4/\sqrt{18} \\ 1/\sqrt{18} \end{bmatrix}\\ \mathbf{u}_3 \amp= \frac{\mathbf{w}_3}{\|\mathbf{w}_3\|} = \frac{1}{\sqrt{1 + 1/4 + 1}}\begin{bmatrix} -1 \\ -1/2 \\ 1 \end{bmatrix}\\ \amp= \frac{1}{\sqrt{9/4}}\begin{bmatrix} -1 \\ -1/2 \\ 1 \end{bmatrix} = \frac{2}{3}\begin{bmatrix} -1 \\ -1/2 \\ 1 \end{bmatrix} = \begin{bmatrix} -2/3 \\ -1/3 \\ 2/3 \end{bmatrix} \end{align*}
Step 4: Form the matrices \(P\) and \(D\text{.}\)
Let \(P = [\mathbf{u}_1 \mid \mathbf{u}_2 \mid \mathbf{u}_3]\) and \(D = \text{diag}(7, 7, -2)\text{:}\)
\begin{equation*} P = \begin{bmatrix} 1/\sqrt{2} \amp -1/\sqrt{18} \amp -2/3 \\ 0 \amp 4/\sqrt{18} \amp -1/3 \\ 1/\sqrt{2} \amp 1/\sqrt{18} \amp 2/3 \end{bmatrix}, \quad D = \begin{bmatrix} 7 \amp 0 \amp 0 \\ 0 \amp 7 \amp 0 \\ 0 \amp 0 \amp -2 \end{bmatrix} \end{equation*}
Then \(P^TAP = D\text{.}\)

Checkpoint 7.3.14. Orthogonal Diagonalization of a Block Symmetric Matrix.

Orthogonally diagonalize the symmetric matrix
\begin{equation*} A=\begin{bmatrix} 1 \amp -2 \amp 0 \amp 0 \\ -2 \amp 1 \amp 0 \amp 0 \\ 0 \amp 0 \amp 1 \amp -2 \\ 0 \amp 0 \amp -2 \amp 1 \end{bmatrix} \end{equation*}
Hint 1.
Notice that \(A\) has a block structure. This matrix has special symmetry properties that make it easier to diagonalize. Look for eigenvalues \(3\) and \(-1\text{,}\) each with multiplicity 2.
Hint 2.
After finding the eigenspaces, apply Gram-Schmidt to each eigenspace separately to get orthonormal bases. The final matrix \(P\) should satisfy \(P^TP = I\) and \(P^TAP = \text{diag}(3, 3, -1, -1)\) (or some permutation of the diagonal entries).