矩阵分解
LU分解
矩阵的LU分解是一种将一个矩阵分解为两个特定矩阵的乘积的方法。具体来说,LU分解将一个矩阵\(A\)分解为一个下三角矩阵\(L\)(Lowertriangular matrix)和一个上三角矩阵\(U\)(Uppertriangular matrix)的乘积,即: \[ A=LU \] 其中:
- \(L\)是一个下三角矩阵,其主对角线上的元素为1,主对角线以下的元素为非零值。
- \(U\)是一个上三角矩阵,其主对角线及其以上的元素为非零值。
LU分解的意义
- 简化线性方程组求解: 对于线性方程组\(Ax=b\),如果\(A\)可以分解为\(LU\),则可以将原问题转化为: \[ Ly=b\quad \text{和} \quad Ux=y \] 由于\(L\)和\(U\)是三角矩阵,求解这两个方程组非常高效。
- 计算行列式: 矩阵\(A\)的行列式可以通过\(L\)和\(U\)的行列式计算: \[ \det(A)=\det(L)\cdot\det(U) \] 由于\(L\)和\(U\)是三角矩阵,它们的行列式就是主对角线元素的乘积。
- 矩阵求逆: LU分解可以用于高效计算矩阵的逆。
LU分解的步骤
LU分解通常通过高斯消元法实现。以下是具体步骤:
- 初始化: 设\(A\)是一个\(n\times n\)的矩阵,初始化\(L\)为单位矩阵,\(U\)为\(A\)。
- 高斯消元: 对\(U\)进行高斯消元,逐步将其转化为上三角矩阵。在每一步消元中,记录消元系数,并将其填充到\(L\)的相应位置。
- 分解结果: 最终得到\(L\)和\(U\),使得\(A=LU\)。
例子
考虑矩阵: \[ A=\begin{bmatrix} 2 & 3\\ 4 & 7 \end{bmatrix} \] 通过高斯消元法,可以得到: \[ L=\begin{bmatrix} 1 & 0\\ 2 & 1 \end{bmatrix},\quad U=\begin{bmatrix} 2&3\\ 0&1 \end{bmatrix} \] 验证: \[ LU=\begin{bmatrix} 1&0\\ 2&1 \end{bmatrix} \begin{bmatrix} 2&3\\ 0&1 \end{bmatrix}= \begin{bmatrix} 2&3\\ 4&7 \end{bmatrix}=A \]
注意事项
- 存在性: 并非所有矩阵都可以进行LU分解。如果矩阵\(A\)的主子矩阵(leading principal submatrices)的行列式不为零,则LU分解存在。
- 唯一性: 如果\(A\)是非奇异矩阵,则LU分解唯一。
- 部分主元法: 在实际计算中,为了提高数值稳定性,通常会使用部分主元法(Partial Pivoting),此时分解形式为\(PA=LU\),其中\(P\)是置换矩阵。
特征分解
矩阵的特征分解(也称为谱分解)是将一个矩阵分解为特征值和特征向量的形式。具体来说,对于一个方阵\(A\),如果它可以对角化,那么它可以表示为: \[ A=Q\Lambda Q^{-1} \] 其中:
- \(Q\)是由\(A\)的特征向量组成的矩阵(每一列是一个特征向量)。
- \(\Lambda\)是一个对角矩阵,其对角线上的元素是\(A\)的特征值。
- \(Q^{-1}\)是\(Q\)的逆矩阵。
特征分解的步骤
计算特征值: 解特征方程: \[ \det(A-\lambda I)=0 \] 其中\(\lambda\)是特征值,\(I\)是单位矩阵。
计算特征向量: 对于每个特征值\(\lambda\),解方程: \[ (A-\lambda I)\mathbf{v}=0 \] 其中\(\mathbf{v}\)是对应的特征向量。
构造矩阵\(Q\)和\(\Lambda\):
- 将特征向量按列排列成矩阵\(Q\)。
- 将特征值按顺序排列成对角矩阵\(\Lambda\)。
- 验证分解: 检查是否满足\(A=Q \Lambda Q^{-1}\)。
例子
考虑矩阵: \[ A=\begin{bmatrix} 4&1\\ 2&3 \end{bmatrix} \]
- 计算特征值: 解特征方程: \[ \det(A-\lambda I)=\det\begin{bmatrix} 4-\lambda &1\\ 2&3-\lambda \end{bmatrix}=(4-\lambda)(3-\lambda)-2=\lambda^2-7\lambda+10=0 \] 解得特征值: \[ \lambda_1=5,\quad\lambda_2=2 \]
- 计算特征向量:
- 对于\(\lambda_1=5\): \[ (A-5I)\mathbf{v}=\begin{bmatrix} -1&1\\ 2&-2 \end{bmatrix}\mathbf{v}=0 \] 解得特征向量\(\mathbf{v}_1=\begin{bmatrix}1\\1\end{bmatrix}\)。
- 对于\(\lambda_2=2\): \[ (A-2I)\mathbf{v}=\begin{bmatrix} 2&1\\ 2&1 \end{bmatrix}\mathbf{v}=0 \] 解得特征向量\(\mathbf{v}_2=\begin{bmatrix}1\\-2\end{bmatrix}\)。
- 构造矩阵\(Q\)和\(\Lambda\): \[ Q=\begin{bmatrix} 1&1\\ 1&-2 \end{bmatrix},\quad \Lambda=\begin{bmatrix} 5&0\\ 0&2 \end{bmatrix} \]
- 验证分解: 计算\(Q\Lambda Q^{-1}\): \[ Q^{-1}=\frac{1}{-3}\begin{bmatrix} -2&-1\\ -1&1 \end{bmatrix}=\begin{bmatrix} \frac{2}{3}&\frac{1}{3}\\ \frac{1}{3}&-\frac{1}{3} \end{bmatrix} \]
\[ Q\Lambda Q^{-1}=\begin{bmatrix} 1&1\\ 1&-2 \end{bmatrix} \begin{bmatrix} 5&0\\ 0&2 \end{bmatrix} \begin{bmatrix} \frac{2}{3}&\frac{1}{3}\\ \frac{1}{3}&-\frac{1}{3} \end{bmatrix}=\begin{bmatrix} 4&1\\ 2&3 \end{bmatrix}=A \]
注意事项
- 可对角化条件: 只有当一个矩阵有\(n\)个线性无关的特征向量时,才可以进行特征分解。
- 实对称矩阵: 对于实对称矩阵,特征分解总是存在,且特征向量可以选为正交的,此时\(Q\)是正交矩阵,满足\(Q^{-1}=Q^T\)。
- 复数特征值: 对于非对称矩阵,特征值可能是复数,特征向量也可能是复向量。
奇异值分解
奇异值分解(Singular Value Decomposition,SVD)是一种将任意矩阵分解为三个特定矩阵乘积的方法。与特征分解不同,SVD 适用于任意形状的矩阵(不一定是方阵),并且总是存在。 对于一个矩阵 \(A\),其奇异值分解的形式为: \[ A = U \Sigma V^T \] 其中:
- \(U\) 是一个 正交矩阵(左奇异向量矩阵),其列向量是 \(AA^T\) 的特征向量。
- \(\Sigma\) 是一个 对角矩阵(奇异值矩阵),其对角线上的元素是矩阵 \(A\) 的奇异值(非负实数,通常按从大到小排列)。
- \(V\) 是一个 正交矩阵(右奇异向量矩阵),其列向量是 \(A^TA\) 的特征向量。
SVD 的意义
- 矩阵的低秩近似: SVD 可以用于将矩阵近似为低秩矩阵,这在数据压缩和降维中非常有用。
- 解决线性方程组: SVD 可以用于求解线性方程组的最小二乘解,尤其是当矩阵 \(A\) 不是方阵或不可逆时。
- 数据分析: 在数据分析中,SVD 是主成分分析(PCA)的核心工具,用于提取数据的主要特征。
- 图像处理和信号处理: SVD 被广泛应用于图像压缩、去噪和信号处理等领域。
SVD 的步骤
- 计算 \(A^TA\) 和 \(AA^T\):
- 计算 \(A^TA\) 和 \(AA^T\) 的特征值和特征向量。
- \(A^TA\) 的特征向量构成矩阵 \(V\)。
- \(AA^T\) 的特征向量构成矩阵 \(U\)。
- 计算奇异值:
- 对 \(A^TA\) 或 \(AA^T\) 的特征值取平方根,得到奇异值,并排列成对角矩阵 \(\Sigma\)。
- 验证分解: 检查是否满足 \(A = U \Sigma V^T\)。
例子
考虑矩阵: \[ A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{bmatrix} \]
- 计算 \(A^TA\) 和 \(AA^T\): \[ A^TA = \begin{bmatrix} 35 & 44 \\ 44 & 56 \end{bmatrix} \] \[ AA^T = \begin{bmatrix} 5 & 11 & 17 \\ 11 & 25 & 39 \\ 17 & 39 & 61 \end{bmatrix} \]
- 计算特征值和特征向量:
- 对 \(A^TA\),特征值为 \(\lambda_1 \approx 90.6\) ,\(\lambda_2 \approx 0.4\),对应的特征向量为 \(V\) 的列向量。
- 对 \(AA^T\),特征值为 \(\lambda_1 \approx 90.6\),\(\lambda_2 \approx 0.4\),\(\lambda_3 = 0\),对应的特征向量为 \(U\) 的列向量。
- 计算奇异值:
- 奇异值为 \(\sigma_1 = \sqrt{90.6} \approx 9.52\),\(\sigma_2 = \sqrt{0.4} \approx 0.63\)。
- 构造矩阵 \(U\)、\(\Sigma\) 和 \(V\): \[ U \approx \begin{bmatrix} -0.23 & -0.88 & 0.41 \\ -0.52 & -0.24 & -0.82 \\ -0.82 & 0.41 & 0.41 \end{bmatrix}, \quad \Sigma = \begin{bmatrix} 9.52 & 0 \\ 0 & 0.63 \\ 0 & 0 \end{bmatrix}, \quad V \approx \begin{bmatrix} -0.62 & -0.78 \\ -0.78 & 0.62 \end{bmatrix} \]
- 验证分解: 计算 \(U \Sigma V^T\),结果应与原矩阵 \(A\) 一致。
SVD 的性质
- 唯一性: 奇异值是唯一的,但 \(U\) 和 \(V\) 的列向量符号可能不唯一。
- 低秩近似: 通过保留前 \(k\) 个奇异值,可以得到矩阵 \(A\) 的最佳低秩近似。
- 数值稳定性: SVD 在数值计算中非常稳定,适合处理病态矩阵或近似奇异矩阵。