返回博客列表
工具效率··11 分钟阅读

矩阵分解与线性方程组求解学习卡片

梳理线性方程组求解中的直接法与迭代法,理解 Gauss、LU、Cholesky、QR、GMRES 和 CG。

1. 一句话总览

线性方程组求解的核心问题是:

给定:

Ax=bAx=b

求未知向量:

xx

主要方法分两类:

直接法:通过矩阵分解,一步步算出精确解,例如 Gauss、LU、Cholesky、QR。
迭代法:从一个初始解出发,不断逼近真实解,例如 Jacobi、Gauss-Seidel、GMRES、CG。

一句话记忆:

直接法:分解矩阵,直接求解。
迭代法:不断修正,逐步逼近。

2. 为什么要做矩阵分解?

直接解:

Ax=bAx=b

表面上可以写:

x=A1bx=A^{-1}b

但工程上很少真的去求逆矩阵。

原因:

1. 求逆计算量大
2. 数值误差大
3. 对多个右端项 b 不划算
4. 分解法更稳定、更高效

所以实际做法是:

把 A 分解成更容易求解的矩阵乘积。

例如:

LU:A = LU
Cholesky:A = LL^T
QR:A = QR

然后通过三角方程一步步求解。


3. Gauss 消去法

3.1 一句话功能

Gauss 消去法就是把矩阵 A 消成上三角矩阵,然后回代求解。

原方程:

Ax=bAx=b

通过消元变成:

Ux=cUx=c

其中 (U) 是上三角矩阵。


3.2 上三角矩阵为什么好解?

例如:

$$

\begin 2 & 1 & 3
0 & 4 & 5
0 & 0 & 6 \end \begin x_1
x_2
x_3 \end

\begin 7
9
12 \end

最后一行: 最后一行:

6x_3=12

所以: 所以:

x_3=2

再代入第二行求 (x_2),再代入第一行求 (x_1)。 这叫回代。 --- ## 3.3 Gauss 消去法主流程 ```text 1. 用第1行消掉第1列下面的元素 2. 用第2行消掉第2列下面的元素 3. 用第3行消掉第3列下面的元素 4. 最终得到上三角矩阵 5. 从最后一行开始回代求解 ``` --- ## 3.4 数字例子 求解:

\begin 2x+y=5
4x+5y=13 \end

矩阵形式: ## $$ \begin{bmatrix} 2 & 1 \ 4 & 5 \end{bmatrix} \begin{bmatrix} x \ y \end{bmatrix} \begin{bmatrix} 5 \ 13 \end{bmatrix}

用第一行消第二行。

第二行减去 2 倍第一行:

[4,5]2[2,1]=[0,3][4,5] - 2[2,1] = [0,3]

右端:

132×5=313 - 2 \times 5 = 3

得到:

3y=33y=3

所以:

y=1y=1

代回第一行:

2x+1=52x+1=5

所以:

x=2x=2

4. LU 分解

4.1 一句话功能

LU 分解就是把矩阵 A 拆成:

A=LUA=LU

其中:

L:下三角矩阵
U:上三角矩阵

如果 L 的对角线全是 1,则叫单位下三角矩阵。


4.2 为什么 LU 有用?

原方程:

Ax=bAx=b

如果:

A=LUA=LU

那么:

LUx=bLUx=b

令:

Ux=yUx=y

于是先解:

Ly=bLy=b

再解:

Ux=yUx=y

也就是两步:

第一步:前代,解 Ly=b
第二步:回代,解 Ux=y

4.3 LU 和 Gauss 的关系

Gauss 消去法的消元过程,本质上就藏着 LU 分解。

U:是消元后得到的上三角矩阵
L:记录每一步消元用到的倍数

例如你用第 1 行消第 2 行时,倍数是 2。 这个 2 就会进入 L 矩阵。


4.4 LU 的适用场景

LU 特别适合:

同一个 A,对应多个 b。

比如:

Ax=b1Ax=b_1 Ax=b2Ax=b_2 Ax=b3Ax=b_3

如果每次都重新 Gauss 消去,浪费。

更好的方式是:

先分解一次 A=LU
然后每个 b 都只做前代和回代

4.5 LU 的条件

你材料中写到:

如果 n 阶矩阵 A 的前 n-1 阶顺序主子矩阵非奇异,则存在唯一的单位下三角矩阵 L 和上三角矩阵 U,使得 A=LU。

先不用死背。你先记直觉:

不是所有矩阵都能在不换行的情况下直接 LU 分解。

如果遇到主元为 0 或太小,就要做行交换,也就是:

PA=LUPA=LU

其中 (P) 是置换矩阵。

工程里常用的是带主元选取的 LU。


5. Cholesky 分解

5.1 一句话功能

Cholesky 分解是对称正定矩阵专用的高效分解方法。

如果 (A) 是对称正定矩阵,则:

A=LLTA=LL^T

其中 (L) 是下三角矩阵。


5.2 什么是对称正定?

对称

A=ATA=A^T

也就是矩阵沿主对角线对称。

例如:

[42 23]\begin{bmatrix} 4 & 2 \ 2 & 3 \end{bmatrix}

就是对称矩阵。

正定

对任意非零向量 (x),都有:

xTAx>0x^T A x > 0

直觉理解:

正定矩阵对应一个“碗形”的二次型。

5.3 Cholesky 怎么解线性方程?

原方程:

Ax=bAx=b

如果:

A=LLTA=LL^T

那么:

LLTx=bLL^T x=b

令:

LTx=yL^T x=y

先解:

Ly=bLy=b

再解:

LTx=yL^T x=y

流程:

1. Cholesky 分解:A = LL^T
2. 前代求 y:Ly = b
3. 回代求 x:L^T x = y

5.4 Cholesky 的优势

相比 LU:

1. 计算量更小
2. 存储量更小
3. 数值稳定性好

但前提严格:

A 必须是对称正定矩阵。

5.5 典型应用

Cholesky 常见于:

最小二乘正规方程
协方差矩阵
MIMO检测
优化问题中的 Hessian 正定矩阵
高斯过程
卡尔曼滤波

6. QR 分解

6.1 一句话功能

QR 分解把矩阵 A 拆成:

A=QRA=QR

其中:

Q:标准正交矩阵
R:上三角矩阵

6.2 什么是标准正交矩阵?

如果矩阵 (Q) 的列向量两两正交,且每个列向量长度为 1,则:

QTQ=IQ^TQ=I

如果 (Q) 是方阵,还满足:

Q1=QTQ^{-1}=Q^T

这个性质非常重要。

因为求逆很麻烦,但 (Q) 的逆就是转置。


6.3 QR 怎么解线性方程?

原方程:

Ax=bAx=b

如果:

A=QRA=QR

则:

QRx=bQRx=b

两边左乘 (Q^T):

QTQRx=QTbQ^TQRx=Q^Tb

因为:

QTQ=IQ^TQ=I

所以:

Rx=QTbRx=Q^Tb

此时 (R) 是上三角矩阵,可以回代求 (x)。


6.4 QR 的典型用途

QR 特别适合:

最小二乘问题
过定方程组
数值稳定性要求高的场景

比如样本数多于未知数:

AxbAx \approx b

这时可能没有精确解,就找最小二乘解:

minxAxb2\min_x |Ax-b|^2

QR 是求这种问题的经典方法。


7. 投影与 QR 的关系

你材料里投影这块写得比较断。先用最简单的方式理解。

7.1 什么是投影?

二维空间中,向量 (b) 投影到向量 (a) 上,就是找 (a) 方向上最接近 (b) 的那一段。

投影公式:

proja(b)=aTbaTaa\text{proj}_a(b)=\frac{a^Tb}{a^Ta}a

如果 (a) 是单位向量,也就是:

aTa=1a^Ta=1

则:

proja(b)=aTba\text{proj}_a(b)=a^Tb \cdot a

7.2 QR 和投影

QR 分解的一种构造方法叫 Gram-Schmidt 正交化。

它的核心动作就是:

不断把一个向量中已经被前面方向解释掉的投影部分减掉,
留下新的正交方向。

所以 QR 的本质可以理解为:

把原来相互不正交的列向量,改造成一组正交基。

这对最小二乘非常重要,因为正交基下求解更稳定。


8. 直接法对比总结

方法分解形式适用条件优点缺点
Gauss消成上三角一般矩阵直观多个 b 时重复计算
LUA=LU一般方阵,最好可主元分解适合多个 b需要主元处理
CholeskyA=LL^T对称正定矩阵快、省、稳定条件严格
QRA=QR一般矩阵,尤其最小二乘稳定计算量比 LU 大

一句话:

一般方阵用 LU;
对称正定优先 Cholesky;
最小二乘优先 QR;
教学理解先从 Gauss 开始。

9. 迭代法求解线性方程组

9.1 一句话功能

迭代法不是一次算出精确解,而是从初值出发,一步步逼近。

形式:

x(0)x(1)x(2)x^{(0)} \rightarrow x^{(1)} \rightarrow x^{(2)} \rightarrow \cdots

直到残差足够小。

残差是:

r=bAxr=b-Ax

如果 (r) 越接近 0,说明 (x) 越接近真实解。


9.2 为什么需要迭代法?

直接法虽然可靠,但在大规模问题中可能太贵。

迭代法适合:

矩阵规模很大
矩阵稀疏
不需要特别精确
只需要近似解
存储资源有限

无线仿真、大规模优化、有限元、图计算中都常见。


10. 基本迭代方法

10.1 Jacobi 迭代

把矩阵分成:

A=D+L+UA=D+L+U

其中:

D:对角部分
L:下三角部分
U:上三角部分

Jacobi 迭代:

x(k+1)=D1(b(L+U)x(k))x^{(k+1)}=D^{-1}(b-(L+U)x^{(k)})

直觉:

每个变量用上一轮的其他变量值来更新。

10.2 Gauss-Seidel 迭代

和 Jacobi 类似,但更新更激进。

Jacobi:所有变量都用上一轮的值。
Gauss-Seidel:新算出来的值立刻拿来用。

所以 Gauss-Seidel 通常比 Jacobi 收敛更快。


10.3 基本迭代法的问题

收敛速度可能慢
不一定收敛
对矩阵性质敏感

所以大规模工程问题中,会用更强的方法,比如 GMRES 和 CG。


11. GMRES

11.1 一句话功能

GMRES 是一种适合一般非对称线性系统的迭代求解方法。

全称:

Generalized Minimal Residual Method
广义最小残差法

目标是:

在 Krylov 子空间中寻找让残差最小的近似解。

你先不用被 Krylov 吓到,先抓本质:

GMRES 每一步都在尝试让残差 ||b-Ax|| 变小。

11.2 适用场景

GMRES 适合:

大型稀疏矩阵
非对称矩阵
直接法太贵
需要逐步逼近的系统

缺点:

存储量会随着迭代次数增加
通常需要重启机制 restarted GMRES

12. CG 共轭梯度法

12.1 一句话功能

CG 是专门求解对称正定线性系统的高效迭代法。

适用问题:

Ax=bAx=b

其中:

A 必须是对称正定矩阵

12.2 CG 的优化视角

求解:

Ax=bAx=b

等价于最小化二次函数:

f(x)=12xTAxbTxf(x)=\frac{1}{2}x^TAx-b^Tx

因为对 (f(x)) 求梯度:

f(x)=Axb\nabla f(x)=Ax-b

令梯度为 0:

Axb=0Ax-b=0

也就是:

Ax=bAx=b

所以 CG 本质是在最小化一个二次碗形函数。


12.3 为什么叫共轭梯度?

普通梯度下降每次沿负梯度方向走,可能会“之”字形震荡。

CG 选择一组更聪明的方向,这些方向满足 A-共轭关系:

piTApj=0p_i^T A p_j=0

直觉:

每次走的方向都尽量不破坏之前已经优化好的方向。

所以 CG 比普通梯度下降快很多。


12.4 CG 适用场景

适合:

大规模稀疏
对称正定矩阵
要求高效率
不想显式分解矩阵

典型应用:

最小二乘
优化二次子问题
信号处理
MIMO检测
图优化
有限元

13. 直接法 vs 迭代法

对比项直接法迭代法
思路分解矩阵,直接求解从初值逐步逼近
精度通常高可控,取决于迭代停止条件
计算成本中小规模较好大规模稀疏更好
存储需求可能较大通常较小
代表方法Gauss、LU、Cholesky、QRJacobi、GS、GMRES、CG
适用场景中小规模、稠密矩阵大规模、稀疏矩阵

一句话:

小而密,直接法;
大而稀,迭代法。

14. 学习路线建议

你不要一上来啃 GMRES。顺序应该是:

1. 先会 Gauss 消去法
2. 再理解 LU = 记录 Gauss 消元过程
3. 再学 Cholesky = 对称正定矩阵的高效 LU
4. 再学 QR = 正交化和最小二乘
5. 再学残差概念
6. 再学 Jacobi / Gauss-Seidel
7. 最后学 CG / GMRES

如果基础弱,先把前三个拿下。


15. 和无线通信的关系

这些方法不是纯数学,和你的工作关系很大。

15.1 MIMO 检测

例如:

y=Hx+ny=Hx+n

检测 (x) 时,经常涉及:

最小二乘
矩阵求逆
QR分解
Cholesky分解
迭代检测

15.2 波束赋形

求解预编码矩阵、MMSE 权重时,经常有:

(HHH+σ2I)1(H^HH+\sigma^2I)^{-1}

这里的矩阵通常是 Hermitian 正定,可以用 Cholesky。

15.3 最小二乘拟合

比如仿真参数拟合、信道估计、KPI拟合,经常是:

minxAxb2\min_x |Ax-b|^2

QR、Cholesky、迭代法都能用。

15.4 大规模系统仿真

大规模稀疏系统不适合直接求逆,迭代法更重要。


16. 自测问题

Q1:为什么不推荐直接算 (A^b)?

因为求逆计算量大、数值误差大,矩阵分解更稳定高效。

Q2:LU 分解适合什么场景?

适合一般方阵,尤其适合同一个 A 对多个 b 求解。

Q3:Cholesky 分解的适用条件是什么?

A 必须是对称正定矩阵。

Q4:QR 分解为什么适合最小二乘?

因为 Q 是正交矩阵,数值稳定,并能把问题化成上三角方程。

Q5:残差是什么?

r=bAxr=b-Ax

残差越小,说明当前解越接近真实解。

Q6:CG 的适用条件是什么?

A 必须是对称正定矩阵。

Q7:GMRES 适合什么矩阵?

适合一般大型稀疏非对称矩阵。


17. 一句话总结

矩阵分解和线性方程组求解的核心不是“背分解公式”,而是知道不同矩阵该用什么工具。

一般方阵:LU
对称正定:Cholesky
最小二乘:QR
大规模稀疏对称正定:CG
大规模稀疏非对称:GMRES

最重要的一条主线是:

Ax=b 很难直接解;
把 A 分解成简单结构,或者通过迭代逼近;
最终目的都是更稳定、更高效地得到 x。

Connect

持续跟踪通信仿真、AI 辅助研发与技术管理

如果你也关注系统仿真、AI for RAN、研发效能和团队管理,欢迎通过邮件交流具体问题和实践经验。

也欢迎围绕仿真平台、AI Coding 落地、技术团队管理等主题交流具体问题和实践经验。

Next Reading

优先推荐标签或分类相关的文章;没有足够相关内容时,补充最新文章。

向福星

无线通信算法工程师,关注系统仿真、AI for RAN、研发效能和技术团队管理。

了解作者