矩阵分解技术解析
矩阵分解是线性代数中最核心的技术之一,它将复杂的矩阵运算转化为更简单、更易处理的形式。这项技术不仅在理论数学中占据重要地位,更是现代机器学习、数据科学和工程计算的基础工具。
矩阵分解的本质与意义
矩阵分解的核心思想是将一个复杂的矩阵 A\\mathbf{A}A 表示为若干个具有特殊性质的矩阵的乘积。这种分解揭示了原始矩阵的内在结构,使得许多看似困难的计算变得简单高效。就像将一个复合函数分解为基本函数的组合,矩阵分解使我们能够通过理解各个组成部分来理解整体。在实际应用中,矩阵分解的价值体现在多个方面。首先,它能够大幅降低计算复杂度——例如求解线性方程组 Ax=b\\mathbf{Ax} = \\mathbf{b}Ax=b,直接求解需要 O(n3)O(n^3)O(n3) 的计算量,而通过 LU 分解后只需要 O(n2)O(n^2)O(n2) 的前向和后向替换。其次,矩阵分解能够提高数值稳定性,避免直接计算中的数值误差累积。最重要的是,不同的分解方法揭示了矩阵的不同性质,为各种应用提供了理论基础。
奇异值分解(SVD):最强大的分解工具
奇异值分解可以说是所有矩阵分解技术中最重要、最通用的一种。对于任意 m×nm \\times nm×n 矩阵 A\\mathbf{A}A,无论是方阵还是矩形矩阵,实数还是复数矩阵,都存在奇异值分解:
A=UΣVT\\mathbf{A} = \\mathbf{U\\Sigma V}^TA=UΣVT
其中 U\\mathbf{U}U 是 m×mm \\times mm×m 的正交矩阵,包含左奇异向量;Σ\\mathbf{\\Sigma}Σ 是 m×nm \\times nm×n 的对角矩阵,对角线上的元素称为奇异值,按照 σ1≥σ2≥…≥σr≥0\\sigma_1 \\geq \\sigma_2 \\geq \\ldots \\geq \\sigma_r \\geq 0σ1≥σ2≥…≥σr≥0 的顺序排列;VT\\mathbf{V}^TVT 是 n×nn \\times nn×n 正交矩阵的转置,包含右奇异向量。
SVD 的几何直观
从几何角度理解,SVD 将任何线性变换分解为三个基本操作的组合。想象一个二维平面上的单位圆,经过矩阵 A\\mathbf{A}A 的变换后会变成一个椭圆。SVD 告诉我们这个变换可以分解为:首先通过 VT\\mathbf{V}^TVT 进行旋转或反射,将坐标系对齐到特定方向;然后通过 Σ\\mathbf{\\Sigma}Σ 沿着坐标轴进行拉伸或压缩,拉伸的比例就是奇异值;最后通过 U\\mathbf{U}U 再次旋转或反射到最终位置。这种几何理解对于理解主成分分析(PCA)特别有帮助。在高维数据空间中,SVD 能够找到数据变化最大的方向(主成分),这些方向就是右奇异向量,而对应的奇异值表示了在该方向上的变化程度。
计算 SVD 的算法
计算 SVD 的标准方法是先计算 ATA\\mathbf{A}^T\\mathbf{A}ATA 的特征值和特征向量得到 V\\mathbf{V}V,再计算 AAT\\mathbf{AA}^TAAT 的特征值和特征向量得到 U\\mathbf{U}U,奇异值则是 ATA\\mathbf{A}^T\\mathbf{A}ATA 特征值的平方根。然而在实际计算中,这种方法会导致数值精度损失,因为 ATA\\mathbf{A}^T\\mathbf{A}ATA 的条件数是 A\\mathbf{A}A 条件数的平方。现代算法采用更稳定的方法,如 Golub-Kahan 双对角化算法。该算法首先将矩阵化为双对角形式,然后使用 QR 迭代或分治算法计算奇异值。整个过程的时间复杂度为 O(min(mn2,m2n))O(\\min(mn^2, m^2n))O(min(mn2,m2n)),对于方阵就是 O(n3)O(n^3)O(n3)。
特征值分解:揭示矩阵的本质特性
特征值分解是理解方阵性质的基本工具。对于 n×nn \\times nn×n 方阵 A\\mathbf{A}A,如果存在 nnn 个线性无关的特征向量,则可以分解为:
A=VΛV−1\\mathbf{A} = \\mathbf{V\\Lambda V}^{-1}A=VΛV−1
其中 V\\mathbf{V}V 的列是特征向量,Λ\\mathbf{\\Lambda}Λ 是对角矩阵,对角线元素是对应的特征值。对于实对称矩阵,特征向量是正交的,分解简化为 A=QΛQT\\mathbf{A} = \\mathbf{Q\\Lambda Q}^TA=QΛQT。
特征值的物理意义
特征值和特征向量有着深刻的物理意义。特征向量代表了变换的不变方向——沿着特征向量方向的向量在变换后仍然保持同一方向,只是长度发生了变化,变化的倍数就是对应的特征值。在振动分析中,特征向量对应振动模态,特征值对应振动频率的平方;在量子力学中,特征向量是量子态,特征值是可观测量的测量值。其中矩阵的许多重要性质都可以通过特征值来表达。矩阵的迹(对角线元素之和)等于所有特征值之和:tr(A)=∑iλi\\text{tr}(\\mathbf{A}) = \\sum_i \\lambda_itr(A)=∑iλi;行列式等于所有特征值之积:det(A)=∏iλi\\det(\\mathbf{A}) = \\prod_i \\lambda_idet(A)=∏iλi;矩阵的秩等于非零特征值的个数。这些关系在理论分析和实际计算中都非常有用。
计算特征值的数值方法
理论上,特征值是特征多项式 det(A−λI)=0\\det(\\mathbf{A} – \\lambda\\mathbf{I}) = 0det(A−λI)=0 的根,但直接求解高次方程在数值上是不稳定的。实际计算中使用迭代方法,其中最重要的是 QR 算法。QR 算法的基本思想是通过相似变换将矩阵化为上三角形式(Schur 形式),对角线元素就是特征值。算法步骤是:将 A\\mathbf{A}A 进行 QR 分解得到 A=Q1R1\\mathbf{A} = \\mathbf{Q}_1\\mathbf{R}_1A=Q1R1,然后计算 A1=R1Q1\\mathbf{A}_1 = \\mathbf{R}_1\\mathbf{Q}_1A1=R1Q1,重复这个过程。在适当的条件下,序列 {Ak}\\{\\mathbf{A}_k\\}{Ak} 收敛到上三角矩阵。为了加速收敛,实际实现中会先将矩阵化为 Hessenberg 形式,并使用位移策略。对于大规模稀疏矩阵,Lanczos 算法和 Arnoldi 算法更加高效。这些方法基于 Krylov 子空间,只计算部分特征值和特征向量,特别适合只需要最大或最小几个特征值的情况。
LU 分解:求解线性方程组的主力
LU 分解将方阵分解为下三角矩阵 L\\mathbf{L}L 和上三角矩阵 U\\mathbf{U}U 的乘积:
PA=LU\\mathbf{PA} = \\mathbf{LU}PA=LU
其中 P\\mathbf{P}P 是置换矩阵,用于数值稳定性。LU 分解本质上是高斯消元法的矩阵形式,L\\mathbf{L}L 记录了消元过程中的乘数,U\\mathbf{U}U 是消元后的上三角矩阵。
LU 分解的计算过程
Doolittle 算法是计算 LU 分解的标准方法。算法逐列处理矩阵,对于第 kkk 列,首先选择主元(部分选主元策略选择该列绝对值最大的元素),然后计算 L\\mathbf{L}L 的第 kkk 列和 U\\mathbf{U}U 的第 kkk 行。具体计算公式为:
对于 U\\mathbf{U}U 的元素:
uij=aij−∑k=1i−1likukju_{ij} = a_{ij} – \\sum_{k=1}^{i-1} l_{ik}u_{kj}uij=aij−k=1∑i−1likukj
对于 L\\mathbf{L}L 的元素:
lij=aij−∑k=1j−1likukjujjl_{ij} = \\frac{a_{ij} – \\sum_{k=1}^{j-1} l_{ik}u_{kj}}{u_{jj}}lij=ujjaij−∑k=1j−1likukj
整个算法的时间复杂度为 O(2n3/3)O(2n^3/3)O(2n3/3),约为矩阵乘法的 2/32/32/3。
数值稳定性与选主元策略
不使用选主元的 LU 分解可能在数值上不稳定。考虑矩阵:
[ϵ111]\\begin{bmatrix} \\epsilon & 1 \\\\ 1 & 1 \\end{bmatrix}[ϵ111]
当 ϵ\\epsilonϵ 很小时,直接 LU 分解会产生很大的数值误差。部分选主元通过交换行来确保 ∣lij∣≤1|l_{ij}| \\leq 1∣lij∣≤1,大大提高了数值稳定性。理论上,增长因子(衡量数值稳定性的指标)最坏情况下可达 2n−12^{n-1}2n−1,但实际问题中很少出现如此极端的情况。
求解线性方程组
有了 LU 分解,求解 Ax=b\\mathbf{Ax} = \\mathbf{b}Ax=b 变成两步:首先求解 Ly=Pb\\mathbf{Ly} = \\mathbf{Pb}Ly=Pb(前向替换),然后求解 Ux=y\\mathbf{Ux} = \\mathbf{y}Ux=y(后向替换)。每步只需要 O(n2)O(n^2)O(n2) 的运算,远比直接求逆矩阵高效。当需要求解多个右端向量时,只需进行一次 LU 分解,然后对每个右端向量进行前向和后向替换,这在许多工程应用中非常有用。
QR 分解:数值稳定性的典范
QR 分解将矩阵分解为正交矩阵 Q\\mathbf{Q}Q 和上三角矩阵 R\\mathbf{R}R 的乘积:
A=QR\\mathbf{A} = \\mathbf{QR}A=QR
其中 QTQ=I\\mathbf{Q}^T\\mathbf{Q} = \\mathbf{I}QTQ=I,保证了良好的数值性质。QR 分解在最小二乘问题、特征值计算等领域有着重要应用。
Gram-Schmidt 正交化与数值稳定性
经典的 Gram-Schmidt 过程通过逐个正交化列向量来构造 Q\\mathbf{Q}Q:对于第 kkk 个列向量,减去它在前 k−1k-1k−1 个正交向量上的投影,然后归一化。然而,由于舍入误差的累积,经典 Gram-Schmidt 在数值上是不稳定的。改进的 Gram-Schmidt 算法通过改变计算顺序提高了稳定性,但最稳定的方法是 Householder 变换。Householder 变换使用反射矩阵 H=I−2vvT\\mathbf{H} = \\mathbf{I} – 2\\mathbf{vv}^TH=I−2vvT 来消去向量的特定分量。每次变换将一列的子对角元素化为零,n−1n-1n−1 次变换后得到上三角矩阵 R\\mathbf{R}R。
QR 分解在最小二乘问题中的应用
对于超定方程组 Ax≈b\\mathbf{Ax} \\approx \\mathbf{b}Ax≈b(m>nm > nm>n),最小二乘解满足正规方程 ATAx=ATb\\mathbf{A}^T\\mathbf{Ax} = \\mathbf{A}^T\\mathbf{b}ATAx=ATb。直接求解正规方程会使条件数平方,降低数值稳定性。使用 QR 分解,问题转化为:
∥Ax−b∥2=∥QRx−b∥2=∥Rx−QTb∥2\\|\\mathbf{Ax} – \\mathbf{b}\\|^2 = \\|\\mathbf{QRx} – \\mathbf{b}\\|^2 = \\|\\mathbf{Rx} – \\mathbf{Q}^T\\mathbf{b}\\|^2∥Ax−b∥2=∥QRx−b∥2=∥Rx−QTb∥2
由于 Q\\mathbf{Q}Q 是正交矩阵,不改变向量的范数。因此只需求解上三角方程组 Rx=QTb\\mathbf{Rx} = \\mathbf{Q}^T\\mathbf{b}Rx=QTb 的前 nnn 个方程即可。这种方法避免了形成 ATA\\mathbf{A}^T\\mathbf{A}ATA,保持了原问题的条件数,在数值上更加稳定。
QR 算法计算特征值
QR 算法是计算矩阵全部特征值的标准方法。基本思想是通过一系列相似变换将矩阵化为上三角形式。算法的每一步进行 QR 分解 Ak=QkRk\\mathbf{A}_k = \\mathbf{Q}_k\\mathbf{R}_kAk=QkRk,然后形成 Ak+1=RkQk\\mathbf{A}_{k+1} = \\mathbf{R}_k\\mathbf{Q}_kAk+1=RkQk。由于 Ak+1=QkTAkQk\\mathbf{A}_{k+1} = \\mathbf{Q}_k^T\\mathbf{A}_k\\mathbf{Q}_kAk+1=QkTAkQk,保持了特征值不变。在适当条件下,{Ak}\\{\\mathbf{A}_k\\}{Ak} 收敛到上三角矩阵(实 Schur 形式),对角线元素就是特征值。实际实现中,先将矩阵化为 Hessenberg 形式可以大大减少计算量,每步 QR 分解只需要 O(n2)O(n^2)O(n2) 而不是 O(n3)O(n^3)O(n3)。
Cholesky 分解:对称正定矩阵的专属方法
对于对称正定矩阵,Cholesky 分解提供了最高效的分解方法:
A=LLT\\mathbf{A} = \\mathbf{LL}^TA=LLT
其中 L\\mathbf{L}L 是下三角矩阵,对角线元素为正。Cholesky 分解可以看作对称正定矩阵的"平方根"。
计算 Cholesky 分解
Cholesky 分解的计算相对简单。对角线元素通过下式计算,确保了实数和正值:
lii=aii−∑k=1i−1lik2l_{ii} = \\sqrt{a_{ii} – \\sum_{k=1}^{i-1} l_{ik}^2}lii=aii−k=1∑i−1lik2
非对角线元素通过下式计算:
lij=aij−∑k=1j−1likljkljjl_{ij} = \\frac{a_{ij} – \\sum_{k=1}^{j-1} l_{ik}l_{jk}}{l_{jj}}lij=ljjaij−∑k=1j−1likljk
算法只需要处理下三角部分,时间复杂度为 O(n3/3)O(n^3/3)O(n3/3),约为 LU 分解的一半。空间上也只需要存储下三角部分,节省了一半的内存。
正定性的几何意义
对称正定矩阵定义了一个椭球体:xTAx=1\\mathbf{x}^T\\mathbf{Ax} = 1xTAx=1。Cholesky 分解 A=LLT\\mathbf{A} = \\mathbf{LL}^TA=LLT 将这个椭球体的描述分解为两步变换:首先通过 LT\\mathbf{L}^TLT 将标准球面变换到新的坐标系,然后通过 L\\mathbf{L}L 进行相同的变换。这保证了椭球体的所有主轴长度都是正的,对应于正定性的要求。在概率论中,多元正态分布的协方差矩阵总是对称正定的。Cholesky 分解在生成多元正态随机数时特别有用:如果 z\\mathbf{z}z 是标准正态随机向量,那么 x=Lz+μ\\mathbf{x} = \\mathbf{Lz} + \\boldsymbol{\\mu}x=Lz+μ 服从均值为 μ\\boldsymbol{\\mu}μ、协方差为 A=LLT\\mathbf{A} = \\mathbf{LL}^TA=LLT 的多元正态分布。
在优化算法中的应用
在数值优化中,许多算法需要求解形如 Hx=−g\\mathbf{Hx} = -\\mathbf{g}Hx=−g 的方程,其中 H\\mathbf{H}H 是 Hessian 矩阵。对于凸优化问题,Hessian 矩阵是对称正定的,使用 Cholesky 分解最为高效。牛顿法的每次迭代需要求解这样的线性方程组。通过 Cholesky 分解,不仅计算效率高,还能检测 Hessian 是否正定——如果分解过程中出现负的对角元素,说明当前点不是严格凸的,需要修正算法。
其他重要的矩阵分解
Schur 分解
Schur 分解是特征值分解的推广,对任意方阵都存在:
A=QTQH\\mathbf{A} = \\mathbf{QTQ}^HA=QTQH
其中 Q\\mathbf{Q}Q 是酉矩阵,T\\mathbf{T}T 是上三角矩阵,对角线元素是特征值。与 Jordan 标准形相比,Schur 分解在数值上更稳定,是许多特征值算法的基础。
实 Schur 分解特别重要,它保证了实矩阵的分解结果也是实的,其中 T\\mathbf{T}T 是准上三角矩阵(对角线上可能有 2×22 \\times 22×2 的块对应复共轭特征值对)。
极分解
极分解将矩阵分解为酉矩阵和半正定矩阵的乘积:
A=UP\\mathbf{A} = \\mathbf{UP}A=UP
其中 U\\mathbf{U}U 是酉矩阵(代表旋转),P\\mathbf{P}P 是半正定 Hermitian 矩阵(代表拉伸)。这种分解在计算机图形学中用于分离刚体变换和形变,在力学中用于分析应变张量。
极分解与 SVD 密切相关:如果 A=UΣVT\\mathbf{A} = \\mathbf{U\\Sigma V}^TA=UΣVT 是 SVD,那么极分解为 A=(UVT)(VΣVT)\\mathbf{A} = (\\mathbf{UV}^T)(\\mathbf{V\\Sigma V}^T)A=(UVT)(VΣVT)。
矩阵分解方法的选择策略
选择合适的矩阵分解方法需要考虑多个因素。首先是问题的数学性质:矩阵是否对称?是否正定?是否稀疏?条件数如何?其次是计算需求:需要全部特征值还是部分?是一次性求解还是多次求解?对精度和速度的要求如何?
对于求解线性方程组 Ax=b\\mathbf{Ax} = \\mathbf{b}Ax=b,如果 A\\mathbf{A}A 是对称正定的,Cholesky 分解是最佳选择,速度最快且数值稳定。对于一般的方阵,LU 分解配合部分选主元是标准方法。如果矩阵接近奇异或条件数很大,应该使用 QR 分解或 SVD 以获得更好的数值稳定性。
对于最小二乘问题 min∥Ax−b∥2\\min \\|\\mathbf{Ax} – \\mathbf{b}\\|_2min∥Ax−b∥2,QR 分解是首选方法,它在保持数值稳定性的同时有较好的计算效率。当矩阵严重病态或需要正则化时,SVD 提供了最稳定的解决方案,可以方便地实现 Tikhonov 正则化。
在特征值问题中,对于中小规模的密集矩阵,QR 算法计算全部特征值;对于大规模稀疏矩阵,Lanczos 或 Arnoldi 方法计算部分特征值更高效。对称矩阵的特征值计算通常比一般矩阵更快更稳定。
数值稳定性的深入理解
数值稳定性是选择和实现矩阵分解算法的关键考虑因素。条件数 κ(A)=∥A∥∥A−1∥\\kappa(\\mathbf{A}) = \\|\\mathbf{A}\\| \\|\\mathbf{A}^{-1}\\|κ(A)=∥A∥∥A−1∥ 衡量了矩阵对扰动的敏感程度。当 κ(A)≫1\\kappa(\\mathbf{A}) \\gg 1κ(A)≫1 时,矩阵是病态的,小的输入误差会导致大的输出误差。
SVD 直接提供了条件数的计算:κ(A)=σmax/σmin\\kappa(\\mathbf{A}) = \\sigma_{\\max}/\\sigma_{\\min}κ(A)=σmax/σmin。这也解释了为什么 SVD 在处理病态问题时特别有用——它能够识别并处理接近零的奇异值,避免数值问题。
向后稳定性是评价算法的重要标准。一个向后稳定的算法产生的结果等价于对略微扰动的输入进行精确计算。Householder QR 分解是向后稳定的典范,而经典 Gram-Schmidt 则不是。这解释了为什么实际应用中优先选择 Householder 方法。
在实现中,选主元策略对提高稳定性至关重要。部分选主元确保 LU 分解中的乘数不会过大,完全选主元虽然理论上更稳定但计算成本较高。对于对称矩阵,对角选主元可以保持对称性同时提高稳定性。
附录:核心定理的详细推导
A. 奇异值分解的存在性与构造
定理 A.1(SVD 存在性定理):对于任意 m×nm \\times nm×n 的复矩阵 A\\mathbf{A}A,存在 m×mm \\times mm×m 酉矩阵 U\\mathbf{U}U,n×nn \\times nn×n 酉矩阵 V\\mathbf{V}V,以及 m×nm \\times nm×n 对角矩阵 Σ\\mathbf{\\Sigma}Σ,使得:
A=UΣV∗\\mathbf{A} = \\mathbf{U\\Sigma V}^*A=UΣV∗
证明:
首先考虑 n×nn \\times nn×n Hermitian 半正定矩阵 A∗A\\mathbf{A}^*\\mathbf{A}A∗A。由谱定理,存在酉矩阵 V\\mathbf{V}V 和非负实对角矩阵 D\\mathbf{D}D,使得:
A∗A=VDV∗\\mathbf{A}^*\\mathbf{A} = \\mathbf{VDV}^*A∗A=VDV∗
设 D=diag(λ1,λ2,…,λn)\\mathbf{D} = \\text{diag}(\\lambda_1, \\lambda_2, \\ldots, \\lambda_n)D=diag(λ1,λ2,…,λn),其中 λ1≥λ2≥…≥λr>0=λr+1=…=λn\\lambda_1 \\geq \\lambda_2 \\geq \\ldots \\geq \\lambda_r > 0 = \\lambda_{r+1} = \\ldots = \\lambda_nλ1≥λ2≥…≥λr>0=λr+1=…=λn,r=rank(A)r = \\text{rank}(\\mathbf{A})r=rank(A)。
定义奇异值 σi=λi\\sigma_i = \\sqrt{\\lambda_i}σi=λi 对于 i=1,…,ri = 1, \\ldots, ri=1,…,r。构造 m×nm \\times nm×n 矩阵:
Σ=[diag(σ1,…,σr)000]\\mathbf{\\Sigma} = \\begin{bmatrix} \\text{diag}(\\sigma_1, \\ldots, \\sigma_r) & \\mathbf{0} \\\\ \\mathbf{0} & \\mathbf{0} \\end{bmatrix}Σ=[diag(σ1,…,σr)000]
令 v1,…,vn\\mathbf{v}_1, \\ldots, \\mathbf{v}_nv1,…,vn 为 V\\mathbf{V}V 的列向量(A∗A\\mathbf{A}^*\\mathbf{A}A∗A 的特征向量)。对于 i=1,…,ri = 1, \\ldots, ri=1,…,r,定义:
ui=1σiAvi\\mathbf{u}_i = \\frac{1}{\\sigma_i}\\mathbf{Av}_iui=σi1Avi
需要验证 {u1,…,ur}\\{\\mathbf{u}_1, \\ldots, \\mathbf{u}_r\\}{u1,…,ur} 是标准正交的。对于 i,j≤ri, j \\leq ri,j≤r:
ui∗uj=1σiσjvi∗A∗Avj=1σiσjvi∗(λjvj)=λjσiσjvi∗vj=σj2σiσjδij=δij\\mathbf{u}_i^*\\mathbf{u}_j = \\frac{1}{\\sigma_i\\sigma_j}\\mathbf{v}_i^*\\mathbf{A}^*\\mathbf{Av}_j = \\frac{1}{\\sigma_i\\sigma_j}\\mathbf{v}_i^*(\\lambda_j\\mathbf{v}_j) = \\frac{\\lambda_j}{\\sigma_i\\sigma_j}\\mathbf{v}_i^*\\mathbf{v}_j = \\frac{\\sigma_j^2}{\\sigma_i\\sigma_j}\\delta_{ij} = \\delta_{ij}ui∗uj=σiσj1vi∗A∗Avj=σiσj1vi∗(λjvj)=σiσjλjvi∗vj=σiσjσj2δij=δij
若 r<mr < mr<m,通过 Gram-Schmidt 过程扩展 {u1,…,ur}\\{\\mathbf{u}_1, \\ldots, \\mathbf{u}_r\\}{u1,…,ur} 到 Cm\\mathbb{C}^mCm 的完整标准正交基 {u1,…,um}\\{\\mathbf{u}_1, \\ldots, \\mathbf{u}_m\\}{u1,…,um}。
构造 U=[u1∣…∣um]\\mathbf{U} = [\\mathbf{u}_1 | \\ldots | \\mathbf{u}_m]U=[u1∣…∣um]。现在验证 A=UΣV∗\\mathbf{A} = \\mathbf{U\\Sigma V}^*A=UΣV∗:
对于 i≤ri \\leq ri≤r:
Avi=σiui=(UΣ)i\\mathbf{Av}_i = \\sigma_i\\mathbf{u}_i = (\\mathbf{U\\Sigma})_iAvi=σiui=(UΣ)i
对于 i>ri > ri>r:
Avi=0=(UΣ)i\\mathbf{Av}_i = \\mathbf{0} = (\\mathbf{U\\Sigma})_iAvi=0=(UΣ)i
因此 AV=UΣ\\mathbf{AV} = \\mathbf{U\\Sigma}AV=UΣ,即 A=UΣV∗\\mathbf{A} = \\mathbf{U\\Sigma V}^*A=UΣV∗。
B. Eckart-Young-Mirsky 定理:最优低秩近似
定理 B.1:设 A=UΣVT\\mathbf{A} = \\mathbf{U\\Sigma V}^TA=UΣVT 是 m×nm \\times nm×n 矩阵的 SVD,其中奇异值为 σ1≥σ2≥…≥σmin(m,n)\\sigma_1 \\geq \\sigma_2 \\geq \\ldots \\geq \\sigma_{\\min(m,n)}σ1≥σ2≥…≥σmin(m,n)。对于 k<rank(A)k < \\text{rank}(\\mathbf{A})k<rank(A),定义:
Ak=∑i=1kσiuiviT\\mathbf{A}_k = \\sum_{i=1}^k \\sigma_i\\mathbf{u}_i\\mathbf{v}_i^TAk=i=1∑kσiuiviT
则对于任意秩不超过 kkk 的矩阵 B\\mathbf{B}B:
∥A−Ak∥F≤∥A−B∥F\\|\\mathbf{A} – \\mathbf{A}_k\\|_F \\leq \\|\\mathbf{A} – \\mathbf{B}\\|_F∥A−Ak∥F≤∥A−B∥F
其中 ∥⋅∥F\\|\\cdot\\|_F∥⋅∥F 是 Frobenius 范数。
证明:
首先注意到:
∥A−Ak∥F2=∥∑i=k+1rσiuiviT∥F2=∑i=k+1rσi2\\|\\mathbf{A} – \\mathbf{A}_k\\|_F^2 = \\left\\|\\sum_{i=k+1}^r \\sigma_i\\mathbf{u}_i\\mathbf{v}_i^T\\right\\|_F^2 = \\sum_{i=k+1}^r \\sigma_i^2∥A−Ak∥F2=i=k+1∑rσiuiviTF2=i=k+1∑rσi2
这是因为 {uiviT}\\{\\mathbf{u}_i\\mathbf{v}_i^T\\}{uiviT} 构成正交基。
设 B\\mathbf{B}B 是任意秩不超过 kkk 的矩阵。存在维数至少为 n−kn-kn−k 的子空间 V⊆Rn\\mathcal{V} \\subseteq \\mathbb{R}^nV⊆Rn 使得 Bx=0\\mathbf{Bx} = \\mathbf{0}Bx=0 对所有 x∈V\\mathbf{x} \\in \\mathcal{V}x∈V。
考虑由 {v1,…,vk+1}\\{\\mathbf{v}_1, \\ldots, \\mathbf{v}_{k+1}\\}{v1,…,vk+1} 张成的 (k+1)(k+1)(k+1) 维子空间 W\\mathcal{W}W。由于 dim(V)+dim(W)=(n−k)+(k+1)=n+1>n\\dim(\\mathcal{V}) + \\dim(\\mathcal{W}) = (n-k) + (k+1) = n+1 > ndim(V)+dim(W)=(n−k)+(k+1)=n+1>n,必存在非零向量 x∈V∩W\\mathbf{x} \\in \\mathcal{V} \\cap \\mathcal{W}x∈V∩W。
不失一般性,设 ∥x∥=1\\|\\mathbf{x}\\| = 1∥x∥=1。由于 x∈W\\mathbf{x} \\in \\mathcal{W}x∈W,可以写成:
x=∑i=1k+1αivi,∑i=1k+1αi2=1\\mathbf{x} = \\sum_{i=1}^{k+1} \\alpha_i\\mathbf{v}_i, \\quad \\sum_{i=1}^{k+1} \\alpha_i^2 = 1x=i=1∑k+1αivi,i=1∑k+1αi2=1
因此:
Ax=∑i=1k+1αiσiui\\mathbf{Ax} = \\sum_{i=1}^{k+1} \\alpha_i\\sigma_i\\mathbf{u}_iAx=i=1∑k+1αiσiui
由于 x∈V\\mathbf{x} \\in \\mathcal{V}x∈V,有 Bx=0\\mathbf{Bx} = \\mathbf{0}Bx=0,所以:
∥(A−B)x∥2=∥Ax∥2=∑i=1k+1αi2σi2≥σk+12∑i=1k+1αi2=σk+12\\|(\\mathbf{A} – \\mathbf{B})\\mathbf{x}\\|^2 = \\|\\mathbf{Ax}\\|^2 = \\sum_{i=1}^{k+1} \\alpha_i^2\\sigma_i^2 \\geq \\sigma_{k+1}^2\\sum_{i=1}^{k+1} \\alpha_i^2 = \\sigma_{k+1}^2∥(A−B)x∥2=∥Ax∥2=i=1∑k+1αi2σi2≥σk+12i=1∑k+1αi2=σk+12
由 Frobenius 范数的变分特征:
∥A−B∥F2≥σk+12+σk+22+…+σr2=∥A−Ak∥F2\\|\\mathbf{A} – \\mathbf{B}\\|_F^2 \\geq \\sigma_{k+1}^2 + \\sigma_{k+2}^2 + \\ldots + \\sigma_r^2 = \\|\\mathbf{A} – \\mathbf{A}_k\\|_F^2∥A−B∥F2≥σk+12+σk+22+…+σr2=∥A−Ak∥F2
这完成了证明。
C. QR 分解的 Householder 构造
定理 C.1:对于任意 m×nm \\times nm×n 矩阵 A\\mathbf{A}A(m≥nm \\geq nm≥n),存在正交矩阵 Q\\mathbf{Q}Q 和上三角矩阵 R\\mathbf{R}R 使得 A=QR\\mathbf{A} = \\mathbf{QR}A=QR。
构造性证明:
Householder 反射器定义为:
H=I−2vvTvTv\\mathbf{H} = \\mathbf{I} – 2\\frac{\\mathbf{vv}^T}{\\mathbf{v}^T\\mathbf{v}}H=I−2vTvvvT
其中 v≠0\\mathbf{v} \\neq \\mathbf{0}v=0 是反射向量。H\\mathbf{H}H 是对称正交矩阵,满足 H2=I\\mathbf{H}^2 = \\mathbf{I}H2=I。
给定向量 x∈Rm\\mathbf{x} \\in \\mathbb{R}^mx∈Rm,要找到 H\\mathbf{H}H 使得 Hx=αe1\\mathbf{Hx} = \\alpha\\mathbf{e}_1Hx=αe1,其中 e1\\mathbf{e}_1e1 是第一个标准基向量,α=±∥x∥\\alpha = \\pm\\|\\mathbf{x}\\|α=±∥x∥。
设 v=x−αe1\\mathbf{v} = \\mathbf{x} – \\alpha\\mathbf{e}_1v=x−αe1。则:
Hx=x−2vTxvTvv\\mathbf{Hx} = \\mathbf{x} – 2\\frac{\\mathbf{v}^T\\mathbf{x}}{\\mathbf{v}^T\\mathbf{v}}\\mathbf{v}Hx=x−2vTvvTxv
计算:
vTx=(x−αe1)Tx=∥x∥2−αx1\\mathbf{v}^T\\mathbf{x} = (\\mathbf{x} – \\alpha\\mathbf{e}_1)^T\\mathbf{x} = \\|\\mathbf{x}\\|^2 – \\alpha x_1vTx=(x−αe1)Tx=∥x∥2−αx1
vTv=∥x∥2−2αx1+α2=2(α2−αx1)\\mathbf{v}^T\\mathbf{v} = \\|\\mathbf{x}\\|^2 – 2\\alpha x_1 + \\alpha^2 = 2(\\alpha^2 – \\alpha x_1)vTv=∥x∥2−2αx1+α2=2(α2−αx1)
因此:
vTxvTv=α2−αx12(α2−αx1)=12\\frac{\\mathbf{v}^T\\mathbf{x}}{\\mathbf{v}^T\\mathbf{v}} = \\frac{\\alpha^2 – \\alpha x_1}{2(\\alpha^2 – \\alpha x_1)} = \\frac{1}{2}vTvvTx=2(α2−αx1)α2−αx1=21
所以:
Hx=x−v=αe1\\mathbf{Hx} = \\mathbf{x} – \\mathbf{v} = \\alpha\\mathbf{e}_1Hx=x−v=αe1
为了数值稳定性,选择 α=−sign(x1)∥x∥\\alpha = -\\text{sign}(x_1)\\|\\mathbf{x}\\|α=−sign(x1)∥x∥ 以避免消去。
QR 分解算法:
对矩阵 A(0)=A\\mathbf{A}^{(0)} = \\mathbf{A}A(0)=A 进行迭代。在第 kkk 步,设:
A(k−1)=[R11(k−1)R12(k−1)0A22(k−1)]\\mathbf{A}^{(k-1)} = \\begin{bmatrix} \\mathbf{R}_{11}^{(k-1)} & \\mathbf{R}_{12}^{(k-1)} \\\\ \\mathbf{0} & \\mathbf{A}_{22}^{(k-1)} \\end{bmatrix}A(k−1)=[R11(k−1)0R12(k−1)A22(k−1)]
其中 R11(k−1)\\mathbf{R}_{11}^{(k-1)}R11(k−1) 是 (k−1)×(k−1)(k-1) \\times (k-1)(k−1)×(k−1) 上三角矩阵。
构造 Householder 矩阵 Hk\\mathbf{H}_kHk 将 A22(k−1)\\mathbf{A}_{22}^{(k-1)}A22(k−1) 的第一列化为 αe1\\alpha\\mathbf{e}_1αe1:
Qk=[Ik−100Hk]\\mathbf{Q}_k = \\begin{bmatrix} \\mathbf{I}_{k-1} & \\mathbf{0} \\\\ \\mathbf{0} & \\mathbf{H}_k \\end{bmatrix}Qk=[Ik−100Hk]
令 A(k)=QkA(k−1)\\mathbf{A}^{(k)} = \\mathbf{Q}_k\\mathbf{A}^{(k-1)}A(k)=QkA(k−1)。
经过 nnn 步后,A(n)=R\\mathbf{A}^{(n)} = \\mathbf{R}A(n)=R 是上三角矩阵,且:
R=QnQn−1⋯Q1A\\mathbf{R} = \\mathbf{Q}_n\\mathbf{Q}_{n-1}\\cdots\\mathbf{Q}_1\\mathbf{A}R=QnQn−1⋯Q1A
因此:
A=Q1TQ2T⋯QnTR=QR\\mathbf{A} = \\mathbf{Q}_1^T\\mathbf{Q}_2^T\\cdots\\mathbf{Q}_n^T\\mathbf{R} = \\mathbf{QR}A=Q1TQ2T⋯QnTR=QR
其中 Q=Q1TQ2T⋯QnT\\mathbf{Q} = \\mathbf{Q}_1^T\\mathbf{Q}_2^T\\cdots\\mathbf{Q}_n^TQ=Q1TQ2T⋯QnT 是正交矩阵。
D. Cholesky 分解的唯一性与稳定性
定理 D.1:若 A\\mathbf{A}A 是 n×nn \\times nn×n 对称正定矩阵,则存在唯一的下三角矩阵 L\\mathbf{L}L(对角元素为正)使得 A=LLT\\mathbf{A} = \\mathbf{LL}^TA=LLT。
证明:
存在性:使用归纳法。
对于 n=1n = 1n=1,A=[a]\\mathbf{A} = [a]A=[a] 其中 a>0a > 0a>0,取 L=[a]\\mathbf{L} = [\\sqrt{a}]L=[a]。
假设定理对 (n−1)×(n−1)(n-1) \\times (n-1)(n−1)×(n−1) 矩阵成立。将 A\\mathbf{A}A 分块为:
A=[a11aTaA22]\\mathbf{A} = \\begin{bmatrix} a_{11} & \\mathbf{a}^T \\\\ \\mathbf{a} & \\mathbf{A}_{22} \\end{bmatrix}A=[a11aaTA22]
其中 a11>0a_{11} > 0a11>0(因为 A\\mathbf{A}A 正定),a∈Rn−1\\mathbf{a} \\in \\mathbb{R}^{n-1}a∈Rn−1,A22\\mathbf{A}_{22}A22 是 (n−1)×(n−1)(n-1) \\times (n-1)(n−1)×(n−1) 矩阵。
设:
L=[l110TlL22]\\mathbf{L} = \\begin{bmatrix} l_{11} & \\mathbf{0}^T \\\\ \\mathbf{l} & \\mathbf{L}_{22} \\end{bmatrix}L=[l11l0TL22]
从 A=LLT\\mathbf{A} = \\mathbf{LL}^TA=LLT 得:
a11=l112⇒l11=a11a_{11} = l_{11}^2 \\Rightarrow l_{11} = \\sqrt{a_{11}}a11=l112⇒l11=a11
a=l11l⇒l=1l11a\\mathbf{a} = l_{11}\\mathbf{l} \\Rightarrow \\mathbf{l} = \\frac{1}{l_{11}}\\mathbf{a}a=l11l⇒l=l111a
A22=llT+L22L22T\\mathbf{A}_{22} = \\mathbf{ll}^T + \\mathbf{L}_{22}\\mathbf{L}_{22}^TA22=llT+L22L22T
因此:
L22L22T=A22−llT=A22−1a11aaT\\mathbf{L}_{22}\\mathbf{L}_{22}^T = \\mathbf{A}_{22} – \\mathbf{ll}^T = \\mathbf{A}_{22} – \\frac{1}{a_{11}}\\mathbf{aa}^TL22L22T=A22−llT=A22−a111aaT
需要证明 S=A22−1a11aaT\\mathbf{S} = \\mathbf{A}_{22} – \\frac{1}{a_{11}}\\mathbf{aa}^TS=A22−a111aaT 是正定的。对于任意 x≠0\\mathbf{x} \\neq \\mathbf{0}x=0:
xTSx=xTA22x−1a11(aTx)2\\mathbf{x}^T\\mathbf{Sx} = \\mathbf{x}^T\\mathbf{A}_{22}\\mathbf{x} – \\frac{1}{a_{11}}(\\mathbf{a}^T\\mathbf{x})^2xTSx=xTA22x−a111(aTx)2
考虑向量 y=[−aTxa11x]\\mathbf{y} = \\begin{bmatrix} -\\frac{\\mathbf{a}^T\\mathbf{x}}{a_{11}} \\\\ \\mathbf{x} \\end{bmatrix}y=[−a11aTxx]。则:
yTAy=a11(−aTxa11)2−2aTxa11aTx+xTA22x\\mathbf{y}^T\\mathbf{Ay} = a_{11}\\left(-\\frac{\\mathbf{a}^T\\mathbf{x}}{a_{11}}\\right)^2 – 2\\frac{\\mathbf{a}^T\\mathbf{x}}{a_{11}}\\mathbf{a}^T\\mathbf{x} + \\mathbf{x}^T\\mathbf{A}_{22}\\mathbf{x}yTAy=a11(−a11aTx)2−2a11aTxaTx+xTA22x
=(aTx)2a11−2(aTx)2a11+xTA22x=xTSx= \\frac{(\\mathbf{a}^T\\mathbf{x})^2}{a_{11}} – 2\\frac{(\\mathbf{a}^T\\mathbf{x})^2}{a_{11}} + \\mathbf{x}^T\\mathbf{A}_{22}\\mathbf{x} = \\mathbf{x}^T\\mathbf{Sx}=a11(aTx)2−2a11(aTx)2+xTA22x=xTSx
由于 A\\mathbf{A}A 正定且 y≠0\\mathbf{y} \\neq \\mathbf{0}y=0,故 xTSx=yTAy>0\\mathbf{x}^T\\mathbf{Sx} = \\mathbf{y}^T\\mathbf{Ay} > 0xTSx=yTAy>0。
因此 S\\mathbf{S}S 是正定的,由归纳假设,存在唯一的 L22\\mathbf{L}_{22}L22 使得 S=L22L22T\\mathbf{S} = \\mathbf{L}_{22}\\mathbf{L}_{22}^TS=L22L22T。
唯一性:假设 A=L1L1T=L2L2T\\mathbf{A} = \\mathbf{L}_1\\mathbf{L}_1^T = \\mathbf{L}_2\\mathbf{L}_2^TA=L1L1T=L2L2T,其中 L1,L2\\mathbf{L}_1, \\mathbf{L}_2L1,L2 都是对角元素为正的下三角矩阵。
令 M=L1L2−1\\mathbf{M} = \\mathbf{L}_1\\mathbf{L}_2^{-1}M=L1L2−1。则:
MMT=L1L2−1(L2−1)TL1T=L1L1T(L2T)−1L2−1=AA−1=I\\mathbf{MM}^T = \\mathbf{L}_1\\mathbf{L}_2^{-1}(\\mathbf{L}_2^{-1})^T\\mathbf{L}_1^T = \\mathbf{L}_1\\mathbf{L}_1^T(\\mathbf{L}_2^T)^{-1}\\mathbf{L}_2^{-1} = \\mathbf{A}\\mathbf{A}^{-1} = \\mathbf{I}MMT=L1L2−1(L2−1)TL1T=L1L1T(L2T)−1L2−1=AA−1=I
所以 M\\mathbf{M}M 是正交矩阵。但 M\\mathbf{M}M 同时是下三角矩阵(两个下三角矩阵之积),且对角元素为正(mii=l1,ii/l2,ii>0m_{ii} = l_{1,ii}/l_{2,ii} > 0mii=l1,ii/l2,ii>0)。
正交下三角矩阵必为对角矩阵,且对角元素为 ±1\\pm 1±1。由于对角元素为正,故 M=I\\mathbf{M} = \\mathbf{I}M=I,即 L1=L2\\mathbf{L}_1 = \\mathbf{L}_2L1=L2。
E. 条件数与扰动分析
定理 E.1(线性方程组的扰动界):设 Ax=b\\mathbf{Ax} = \\mathbf{b}Ax=b,A(x+δx)=b+δb\\mathbf{A}(\\mathbf{x} + \\delta\\mathbf{x}) = \\mathbf{b} + \\delta\\mathbf{b}A(x+δx)=b+δb。则:
∥δx∥∥x∥≤κ(A)∥δb∥∥b∥\\frac{\\|\\delta\\mathbf{x}\\|}{\\|\\mathbf{x}\\|} \\leq \\kappa(\\mathbf{A})\\frac{\\|\\delta\\mathbf{b}\\|}{\\|\\mathbf{b}\\|}∥x∥∥δx∥≤κ(A)∥b∥∥δb∥
其中 κ(A)=∥A∥∥A−1∥\\kappa(\\mathbf{A}) = \\|\\mathbf{A}\\|\\|\\mathbf{A}^{-1}\\|κ(A)=∥A∥∥A−1∥ 是条件数。
证明:
从 Aδx=δb\\mathbf{A}\\delta\\mathbf{x} = \\delta\\mathbf{b}Aδx=δb 得:
δx=A−1δb\\delta\\mathbf{x} = \\mathbf{A}^{-1}\\delta\\mathbf{b}δx=A−1δb
因此:
∥δx∥≤∥A−1∥∥δb∥\\|\\delta\\mathbf{x}\\| \\leq \\|\\mathbf{A}^{-1}\\|\\|\\delta\\mathbf{b}\\|∥δx∥≤∥A−1∥∥δb∥
从 Ax=b\\mathbf{Ax} = \\mathbf{b}Ax=b 得:
∥b∥≤∥A∥∥x∥\\|\\mathbf{b}\\| \\leq \\|\\mathbf{A}\\|\\|\\mathbf{x}\\|∥b∥≤∥A∥∥x∥
即:
1∥x∥≤∥A∥∥b∥\\frac{1}{\\|\\mathbf{x}\\|} \\leq \\frac{\\|\\mathbf{A}\\|}{\\|\\mathbf{b}\\|}∥x∥1≤∥b∥∥A∥
结合两个不等式:
∥δx∥∥x∥≤∥A−1∥∥δb∥⋅∥A∥∥b∥=κ(A)∥δb∥∥b∥\\frac{\\|\\delta\\mathbf{x}\\|}{\\|\\mathbf{x}\\|} \\leq \\|\\mathbf{A}^{-1}\\|\\|\\delta\\mathbf{b}\\| \\cdot \\frac{\\|\\mathbf{A}\\|}{\\|\\mathbf{b}\\|} = \\kappa(\\mathbf{A})\\frac{\\|\\delta\\mathbf{b}\\|}{\\|\\mathbf{b}\\|}∥x∥∥δx∥≤∥A−1∥∥δb∥⋅∥b∥∥A∥=κ(A)∥b∥∥δb∥
这个界是紧的:存在 b\\mathbf{b}b 和 δb\\delta\\mathbf{b}δb 使等号成立。
推论 E.1:若同时考虑 A\\mathbf{A}A 和 b\\mathbf{b}b 的扰动:
(A+δA)(x+δx)=b+δb(\\mathbf{A} + \\delta\\mathbf{A})(\\mathbf{x} + \\delta\\mathbf{x}) = \\mathbf{b} + \\delta\\mathbf{b}(A+δA)(x+δx)=b+δb
且 ∥δA∥<∥A−1∥−1\\|\\delta\\mathbf{A}\\| < \\|\\mathbf{A}^{-1}\\|^{-1}∥δA∥<∥A−1∥−1,则:
∥δx∥∥x∥≤κ(A)1−κ(A)∥δA∥∥A∥(∥δA∥∥A∥+∥δb∥∥b∥)\\frac{\\|\\delta\\mathbf{x}\\|}{\\|\\mathbf{x}\\|} \\leq \\frac{\\kappa(\\mathbf{A})}{1 – \\kappa(\\mathbf{A})\\frac{\\|\\delta\\mathbf{A}\\|}{\\|\\mathbf{A}\\|}}\\left(\\frac{\\|\\delta\\mathbf{A}\\|}{\\|\\mathbf{A}\\|} + \\frac{\\|\\delta\\mathbf{b}\\|}{\\|\\mathbf{b}\\|}\\right)∥x∥∥δx∥≤1−κ(A)∥A∥∥δA∥κ(A)(∥A∥∥δA∥+∥b∥∥δb∥)
这表明条件数大的矩阵对扰动极其敏感,这是数值计算中必须考虑的关键因素。
评论前必须登录!
注册