前置知识,矩阵 A T ∗ A A^T * A AT∗A的性质:
-
实对称性:如果 A A A是实矩阵,那么 A T ∗ A A^T * A AT∗A是实对称矩阵。这意味着 ( A T ∗ A ) T = A T ∗ ( A T ) T = A T ∗ A (A^T * A)^T = A^T * (A^T)^T = A^T * A (AT∗A)T=AT∗(AT)T=AT∗A,并且它的所有特征值都是实数。
-
半正定性: A T ∗ A A^T * A AT∗A是半正定矩阵。这意味着对于所有非零向量 x x x,都有 x T ∗ ( A T ∗ A ) ∗ x ≥ 0 x^T * (A^T * A) * x \geq 0 xT∗(AT∗A)∗x≥0。这表明其特征值是非负实数。
-
秩的等价性: A T ∗ A A^T * A AT∗A和 A A A有相同的秩。即 r a n k ( A ) = r a n k ( A T ∗ A ) rank(A) = rank(A^T * A) rank(A)=rank(AT∗A)。这是因为 A T ∗ A A^T * A AT∗A可视作 A A A 在其自身所张成的空间中的正交投影,不会增加或减少原始矩阵的秩。
-
特征值与奇异值的关系: A T ∗ A A^T * A AT∗A的特征值实际上是矩阵 A A A的奇异值的平方。这是因为奇异值分解中, A = U ∗ Σ ∗ V T A = U * \Sigma * V^T A=U∗Σ∗VT,其中 Σ \Sigma Σ是对角矩阵,其对角元素是 A A A的奇异值。因此, A T ∗ A = V ∗ Σ T ∗ Σ ∗ V T A^T * A = V * \Sigma^T * \Sigma * V^T AT∗A=V∗ΣT∗Σ∗VT,而 Σ T ∗ Σ \Sigma^T * \Sigma ΣT∗Σ即是奇异值的平方构成的对角矩阵。
-
迹的性质:由于 A T ∗ A A^T * A AT∗A是对称的,其迹(即对角元素之和)等于 A A A的奇异值的平方和,这也意味着迹是一个非负数,并且在某种意义上可以视为矩阵能量的度量。
使用LDLT分解来求解 A x = b Ax=b Ax=b。LDLT分解是一种分解对称或Hermitian矩阵的算法,特别适合于那些不完全正定但可进行三角分解的矩阵。它将矩阵分解为一个单位下三角矩阵 L L L(对角线元素为1)和一个对角矩阵 D D D的乘积,即 A T A = L D L T A^TA = LDL^T ATA=LDLT。以下是使用LDLT算法解线性方程组 A x = b Ax = b Ax=b或其最小二乘形式 A T A x = A T b A^TAx = A^Tb ATAx=ATb的步骤:
-
构造并分解 A T A A^TA ATA:
- 首先计算 A T A A^TA ATA,这是一个对称矩阵,适合进行LDLT分解。
- 应用LDLT分解算法得到 A T A = L D L T A^TA = LDL^T ATA=LDLT,其中 L L L是单位下三角矩阵(对角线上的元素全部为1;对角线右上方的所有元素均为0), D D D是对角矩阵。
-
解两个三角系统:
- 使用前向替换解 L y = A T b Ly = A^Tb Ly=ATb,其中 L L L是从 A T A A^TA ATA的LDLT分解中获得的单位下三角矩阵,得到中间向量 y y y。
- 接着解 D z = y Dz = y Dz=y,这是一个简单的对角线系统,可以直接计算每个分量 z i = y i D i i z_i = \frac{y_i}{D_{ii}} zi=Diiyi。
- 最后,使用后向替换解 L T x = z L^Tx = z LTx=z,得到最终的解向量 x x x。