昆仑山:眼中无形心中有穴之穴人合一

夫君子之行,静以修身,俭以养德;非澹泊无以明志,非宁静无以致远。夫学须静也,才须学也;非学无以广才,非志无以成学。怠慢则不能励精,险躁则不能冶性。年与时驰,意与岁去,遂成枯落,多不接世。悲守穷庐,将复何及!

 

共轭梯度法(CG法)授课

共轭梯度法(CG法)6.4节知识点深度讲解

共轭梯度法的理论根基——线性方程组与变分问题的等价性。这部分内容是共轭梯度法的灵魂,很多同学学CG法只死记迭代步骤,却搞不懂公式的来源、为什么要这么构造,根源就是没吃透这一节的变分等价原理。我会以50多年的教学和科研经验,从「是什么、为什么、有什么用」三个维度,把每一个定义、性质、定理的底层逻辑讲透,帮你建立对CG法的本质认知。


一、开篇定调:共轭梯度法的核心定位

共轭梯度法(Conjugate Gradient, CG),也叫共轭斜量法,是求解大型稀疏对称正定线性方程组的里程碑式方法,也是目前工程界有限元分析、计算力学、电磁仿真、流体计算等领域的工业级标准求解算法。

它和我们之前学的雅可比、高斯-塞德尔、SOR迭代法有本质区别:

  • 之前的定常迭代法,核心是矩阵分裂,迭代矩阵固定不变,收敛速度高度依赖矩阵谱性质,还需要手动调参;
  • 共轭梯度法属于变分方法,核心是把线性方程组求解转化为「二次函数的全局极小值求解」,迭代过程中动态构造搜索方向,无自由参数、天然适配稀疏矩阵、收敛速度远快于定常迭代法,理论上还具备有限步收敛性。

而这一切的理论根基,就是我们今天要讲的线性方程组与二次函数极值的等价性


二、核心前提:对称正定矩阵的约束

首先明确:本节所有结论的前提,是系数矩阵\(A\in\mathbb{R}^{n\times n}\)为对称正定矩阵。这个前提不是可有可无的,而是整个等价性成立的基石,后面我们会反复用到它的两个核心性质:

  1. 对称性:\(A^T=A\),保证二次型的梯度可以和线性方程组的残差完美对应;
  2. 正定性:对任意非零向量\(x\in\mathbb{R}^n\),都有内积\((Ax,x)=x^T A x > 0\),保证二次函数是严格凸函数,存在唯一的全局极小值点。

我们的目标是求解线性方程组:

\[Ax = b \tag{6.35} \]

其中\(b=(b_1,b_2,\dots,b_n)^T\)是右端项向量。


三、核心构造:等价的二次函数

为了把线性方程组转化为优化问题,我们构造一个从\(n\)维欧氏空间到实数域的二次函数:

\[\varphi(x) = \frac{1}{2}(Ax,x) - (b,x) \tag{6.36} \]

这里的\((\cdot,\cdot)\)是欧氏空间的标准内积,即\((x,y)=x^T y\),展开成求和形式就是教材里的:

\[\varphi(x) = \frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n a_{ij}x_i x_j - \sum_{j=1}^n b_j x_j \]

为什么要构造这个函数?

我先给大家一个核心结论:这个二次函数的全局极小值点,恰好就是线性方程组\(Ax=b\)的唯一解。接下来我们通过三个核心性质,一步步验证这个结论,把每一步的逻辑闭环讲清楚。


四、二次函数的三大核心性质(逐点拆解)

性质1:二次函数的梯度 = 线性方程组的残差

对任意\(x\in\mathbb{R}^n\)\(\varphi(x)\)的梯度为:

\[\nabla\varphi(x) = Ax - b \tag{6.37} \]

1. 公式推导(为什么梯度是这个结果?)

我们用多元函数求导的基本规则推导,结合\(A\)的对称性:

  • 第一项\(\frac{1}{2}(Ax,x) = \frac{1}{2}x^T A x\),对列向量\(x\)求导,根据对称矩阵二次型的求导法则,导数为\(Ax\)(若\(A\)不对称,导数应为\(\frac{A+A^T}{2}x\),这里对称性保证了简化);
  • 第二项\(-(b,x) = -b^T x\),对\(x\)求导,结果为\(-b\)
  • 两项相加,就得到梯度\(\nabla\varphi(x) = Ax - b\)

2. 核心意义(这个性质有什么用?)

这是整个等价性的第一个关键桥梁:

  • 线性方程组\(Ax=b\),等价于\(\nabla\varphi(x) = 0\),也就是二次函数\(\varphi(x)\)驻点条件
  • 我们定义残差\(r(x) = b - Ax\),它恰好是二次函数的负梯度方向\(r(x) = -\nabla\varphi(x)\)。残差为0的点,就是梯度为0的驻点,也就是我们要找的解。

这就把「解线性方程组」和「找二次函数的驻点」完全绑定了。但驻点不一定是极小值点,接下来我们需要证明:这个驻点就是全局极小值点。


性质2:二次函数的一维展开式

对任意\(x,y\in\mathbb{R}^n\)和任意实数\(\alpha\),有:

\[\varphi(x+\alpha y) = \varphi(x) + \alpha(Ax - b,y) + \frac{\alpha^2}{2}(Ay,y) \tag{6.38} \]

1. 公式推导

我们直接代入\(\varphi\)的定义,利用内积的线性性和\(A\)的对称性展开:

\[\begin{align*} \varphi(x+\alpha y) &= \frac{1}{2}(A(x+\alpha y), x+\alpha y) - (b, x+\alpha y) \\ &= \frac{1}{2}(Ax,x) + \frac{\alpha}{2}(Ax,y) + \frac{\alpha}{2}(Ay,x) + \frac{\alpha^2}{2}(Ay,y) - (b,x) - \alpha(b,y) \\ \end{align*} \]

因为\(A\)对称,内积满足\((Ax,y)=(x,Ay)=(Ay,x)\),所以两个交叉项可以合并为\(\alpha(Ax,y)\),整理后:

\[\begin{align*} \varphi(x+\alpha y) &= \left[ \frac{1}{2}(Ax,x) - (b,x) \right] + \alpha\left[ (Ax,y) - (b,y) \right] + \frac{\alpha^2}{2}(Ay,y) \\ &= \varphi(x) + \alpha(Ax - b, y) + \frac{\alpha^2}{2}(Ay,y) \end{align*} \]

和教材的公式完全一致。

2. 核心意义

这个性质是共轭梯度法一维最优步长搜索的理论基础,也是整个迭代格式的核心来源:

  • 假设我们当前在点\(x^{(k)}\),选定了一个搜索方向\(y=d^{(k)}\),我们要找一个最优的步长\(\alpha_k\),让\(\varphi(x^{(k)} + \alpha_k d^{(k)})\)最小——也就是沿着这个方向,走到\(\varphi(x)\)下降最多的点;
  • 把展开式看作关于\(\alpha\)的一元二次函数,对\(\alpha\)求导并令导数为0,就能直接解出最优步长\(\alpha_k\),这就是后面CG法迭代步骤中步长公式的来源;
  • 同时,因为\(A\)正定,\((Ay,y)\geq0\),所以这个关于\(\alpha\)的函数是开口向上的抛物线,存在唯一的极小值点,保证了每一步的最优步长都是唯一存在的。

性质3:精确解处的函数值与误差关系

\(x^*=A^{-1}b\)是线性方程组\(Ax=b\)的唯一解,则:

  1. 精确解处的函数值:\(\varphi(x^*) = -\frac{1}{2}(b,A^{-1}b) = -\frac{1}{2}(Ax^*,x^*)\)
  2. 任意点与精确解的函数值差:

    \[\varphi(x) - \varphi(x^*) = \frac{1}{2}(A(x-x^*), x-x^*) \tag{6.39} \]

1. 公式推导

先看函数值差的推导,这是最核心的部分:
因为\(x^*\)是解,所以\(Ax^*=b\),代入\(\varphi(x)\)的定义展开:

\[\begin{align*} \varphi(x) - \varphi(x^*) &= \frac{1}{2}(Ax,x) - (b,x) - \left[ \frac{1}{2}(Ax^*,x^*) - (b,x^*) \right] \\ &= \frac{1}{2}(Ax,x) - (Ax^*,x) + \frac{1}{2}(Ax^*,x^*) \quad (\text{用}b=Ax^*替换) \\ &= \frac{1}{2}\left[ (Ax,x) - 2(Ax^*,x) + (Ax^*,x^*) \right] \\ &= \frac{1}{2}\left[ (A(x-x^*), x-x^*) \right] \end{align*} \]

最后一步用到了\(A\)的对称性,展开\((A(x-x^*),x-x^*)\)恰好等于中括号里的内容,推导完成。

2. 核心意义

这个性质直接锁定了「线性方程组的解」和「二次函数极小值点」的等价性,是整个定理的核心支撑:

  • 因为\(A\)是对称正定矩阵,对任意非零向量\(z\),都有\((Az,z) > 0\)
  • \(z=x-x^*\),则\(\varphi(x) - \varphi(x^*) = \frac{1}{2}(Az,z) \geq 0\),当且仅当\(z=0\)(也就是\(x=x^*\))时,等号成立;
  • 这就说明:对任意\(x\in\mathbb{R}^n\),都有\(\varphi(x) \geq \varphi(x^*)\)\(x^*\)\(\varphi(x)\)的唯一全局极小值点

五、核心定理:线性方程组与变分问题的等价性

定理6.15

\(A\)为对称正定矩阵,则\(x^*\)是线性方程组\(Ax=b\)的解,充分必要条件\(x^*\)满足:

\[\varphi(x^*) = \min_{x\in\mathbb{R}^n} \varphi(x) \]

1. 证明逻辑拆解

我们分必要性和充分性两部分,用最直白的逻辑讲透:

必要性(解→极小值点)

\(x^*=A^{-1}b\)是方程组的解,由性质3的结论,对任意\(x\in\mathbb{R}^n\),都有\(\varphi(x) \geq \varphi(x^*)\),因此\(x^*\)\(\varphi(x)\)的全局极小值点。

充分性(极小值点→解)

\(\bar{x}\)\(\varphi(x)\)的极小值点,那么它一定满足驻点条件:梯度\(\nabla\varphi(\bar{x}) = 0\)
由性质1,\(\nabla\varphi(\bar{x}) = A\bar{x} - b = 0\),也就是\(A\bar{x}=b\),因此\(\bar{x}\)就是线性方程组的解。
同时由性质3,极小值点唯一,和方程组的唯一解完全对应。

2. 定理的里程碑意义

这个定理完成了两个问题的完全等价转化:

  • 原问题:求解n阶对称正定线性方程组\(Ax=b\)
  • 等价问题:求解n元二次凸函数\(\varphi(x)\)的全局极小值点。

这个转化就是共轭梯度法的「根」:

  • 我们不需要再用矩阵分裂构造定常迭代,而是可以用优化领域的「方向搜索+步长优化」的思路,构造迭代序列\(\{x^{(k)}\}\),让\(\varphi(x^{(k)})\)一步步逼近最小值\(\varphi(x^*)\),也就是让\(x^{(k)}\)一步步逼近解\(x^*\)
  • 后续的共轭梯度法迭代格式,本质就是在这个优化框架下,构造了一组最优的搜索方向(共轭方向),保证每一步都让\(\varphi(x)\)严格下降,且最多n步就能找到精确解。

六、本节内容的延伸与后续衔接

1. 对残差的全新认知

之前我们学迭代法时,残差\(r^{(k)}=b-Ax^{(k)}\)只是一个判断收敛的指标,现在我们知道了:

  • 残差\(r^{(k)}\)是二次函数在\(x^{(k)}\)处的负梯度方向,也就是\(\varphi(x)\)在该点下降最快的方向(最速下降方向);
  • 迭代收敛的过程,就是残差不断趋于0的过程,也就是梯度不断趋于0、逐步到达极小值点的过程。

2. 为什么最速下降法不是最优选择?

既然负梯度是下降最快的方向,为什么我们不用最速下降法,反而要构造共轭方向?

  • 最速下降法只考虑了当前点的局部最优,每一步都沿着负梯度走,会出现「锯齿现象」,尤其是当矩阵\(A\)的条件数很大时,收敛速度会急剧变慢;
  • 而共轭梯度法构造的共轭方向,不仅保证每一步\(\varphi(x)\)严格下降,还保证所有搜索方向两两关于\(A\)共轭,避免了重复搜索,理论上n步内必收敛,收敛速度远快于最速下降法。

3. 对称正定的前提再强调

再次提醒大家:整个等价性的核心是\(A\)对称正定。如果\(A\)不正定,二次函数\(\varphi(x)\)没有全局极小值,只有鞍点,等价性不成立;如果\(A\)不对称,二次型的梯度无法和\(Ax-b\)对应,整个框架就崩塌了。这也是经典共轭梯度法仅适用于对称正定矩阵的根本原因。


七、本节核心总结

  1. 核心等价关系:对称正定线性方程组\(Ax=b\)的解,等价于二次函数\(\varphi(x)=\frac{1}{2}(Ax,x)-(b,x)\)的全局极小值点;
  2. 三大核心性质:梯度对应残差、一维展开式支撑最优步长搜索、函数值差锁定极小值的唯一性,三者共同支撑了等价性定理;
  3. 方法本质:共轭梯度法是一种变分方法,把线性代数求解问题转化为了无约束凸优化问题,这是它和定常迭代法的本质区别;
  4. 后续核心:下一节的共轭梯度法迭代格式,就是在这个变分框架下,通过构造共轭方向、求解一维最优步长,一步步逼近极小值点(也就是方程组的解)。

最速下降法 知识点深度讲解

各位同学,今天我们讲解的最速下降法,是连接「线性方程组变分等价性」和「共轭梯度法」的关键桥梁。它是求解无约束凸优化问题最基础的下降算法,也是理解共轭梯度法核心思想的必经之路。我会从核心思想、公式推导、迭代流程、核心性质、收敛性分析、优缺点与工程定位六个维度,把这个方法的本质讲透,同时讲清楚它的局限,为后续共轭梯度法的学习做好铺垫。


一、最速下降法的核心思想

上一节我们已经证明了:对称正定线性方程组\(Ax=b\)的解,等价于二次凸函数\(\varphi(x)=\frac{1}{2}(Ax,x)-(b,x)\)的全局极小值点

最速下降法的核心逻辑,就是用最直观的思路求解这个极小值问题:

从任意初始点\(x^{(0)}\)出发,每一步都沿着当前点处\(\varphi(x)\)下降最快的方向前进,走到这个方向上\(\varphi(x)\)的最低点(一维极小值点);再以这个新点为起点,重复上述过程,直到逼近全局极小值点\(x^*\)

这个思路可以拆解为两个核心问题:

  1. 什么方向是\(\varphi(x)\)在当前点下降最快的方向?
  2. 沿着这个方向,走多远(步长多大),才能到达这个方向上的最低点?

我们接下来就通过数学推导,逐一解决这两个问题。


二、通用下降算法框架与最优步长推导

首先我们先建立通用的下降算法框架,再针对最速下降法做特化。

1. 通用下降迭代格式

对于任意一个下降方向\(p^{(k)}\),我们可以构造迭代格式:

\[x^{(k+1)} = x^{(k)} + \alpha_k p^{(k)} \tag{6.40} \]

其中\(\alpha_k>0\)是迭代步长,我们的目标是找到最优的\(\alpha_k\),使得沿着\(p^{(k)}\)方向,\(\varphi(x)\)的函数值下降最多,也就是:

\[\varphi(x^{(k+1)}) = \min_{\alpha\in\mathbb{R}} \varphi(x^{(k)} + \alpha p^{(k)}) \]

2. 最优步长的解析解

这个问题本质是一个一元函数的极小值求解问题,我们可以用上一节推导的二次函数一维展开式直接求解。

根据上一节的性质2,对任意\(x,p\in\mathbb{R}^n\)\(\alpha\in\mathbb{R}\),有:

\[\varphi(x^{(k)} + \alpha p^{(k)}) = \varphi(x^{(k)}) + \alpha(Ax^{(k)} - b, p^{(k)}) + \frac{\alpha^2}{2}(Ap^{(k)}, p^{(k)}) \]

这是一个关于\(\alpha\)的一元二次函数,且因为\(A\)对称正定,\((Ap^{(k)},p^{(k)})>0\),所以这个函数开口向上,存在唯一的极小值点。

我们对\(\alpha\)求导,并令导数为0,即可解出最优步长:

\[\frac{d\varphi(x^{(k)} + \alpha p^{(k)})}{d\alpha} = (Ax^{(k)} - b, p^{(k)}) + \alpha(Ap^{(k)}, p^{(k)}) = 0 \]

整理后得到最优步长的通用公式:

\[\alpha_k = -\frac{(Ax^{(k)} - b, p^{(k)})}{(Ap^{(k)}, p^{(k)})} \tag{6.41} \]

这个公式是所有基于变分的下降算法的核心,无论是最速下降法还是共轭梯度法,最优步长都来自这个推导。它的物理意义是:沿着方向\(p^{(k)}\),让\(\varphi(x)\)达到极小值的唯一步长。


三、最速下降法的迭代格式

现在我们解决第一个核心问题:什么方向是下降最快的方向?

1. 最速下降方向:负梯度方向

多元函数在某点的梯度方向,是函数值上升最快的方向;反之,负梯度方向就是函数值下降最快的方向。

根据上一节的性质1,\(\varphi(x)\)的梯度为:

\[\nabla\varphi(x) = Ax - b \]

我们定义残差向量\(r^{(k)} = b - Ax^{(k)}\),它恰好是\(\varphi(x)\)\(x^{(k)}\)处的负梯度:

\[r^{(k)} = -\nabla\varphi(x^{(k)}) \]

因此,最速下降法的搜索方向,就取当前点的残差方向:

\[p^{(k)} = r^{(k)} \]

2. 最速下降法的最终迭代公式

将搜索方向\(p^{(k)}=r^{(k)}\)代入通用最优步长公式(6.41),注意到\(Ax^{(k)}-b = -r^{(k)}\),因此分子变为:

\[(Ax^{(k)}-b, p^{(k)}) = (-r^{(k)}, r^{(k)}) = -(r^{(k)}, r^{(k)}) \]

代入后负负得正,化简得到最速下降法的最优步长:

\[\alpha_k = \frac{(r^{(k)}, r^{(k)})}{(Ar^{(k)}, r^{(k)})} \tag{6.42} \]

结合迭代格式,最终得到最速下降法的完整迭代公式:

\[x^{(k+1)} = x^{(k)} + \alpha_k r^{(k)}, \quad k=0,1,2,\dots \tag{6.43} \]

其中\(r^{(k)}=b-Ax^{(k)}\)是第k步的残差向量。

3. 最速下降法的完整迭代步骤

  1. 初始化:选取初始迭代向量\(x^{(0)}\),计算初始残差\(r^{(0)}=b-Ax^{(0)}\),设置迭代步数\(k=0\)
  2. 计算最优步长\(\alpha_k = \frac{(r^{(k)}, r^{(k)})}{(Ar^{(k)}, r^{(k)})}\)
  3. 更新迭代解\(x^{(k+1)} = x^{(k)} + \alpha_k r^{(k)}\)
  4. 更新残差\(r^{(k+1)} = b - Ax^{(k+1)}\)
  5. 收敛判断:若\(\|r^{(k+1)}\|_2 < \varepsilon\)\(\varepsilon\)为预设精度,如\(10^{-6}\)),停止迭代,输出\(x^{(k+1)}\);否则令\(k=k+1\),返回步骤2。

四、最速下降法的核心性质

1. 相邻搜索方向的正交性

最速下降法有一个非常关键的性质:相邻两步的搜索方向(残差向量)相互正交,即:

\[(r^{(k+1)}, r^{(k)}) = 0 \]

证明过程

我们直接代入残差的定义展开:

\[\begin{align*} (r^{(k+1)}, r^{(k)}) &= (b - Ax^{(k+1)}, r^{(k)}) \\ &= (b - A(x^{(k)} + \alpha_k r^{(k)}), r^{(k)}) \\ &= (b - Ax^{(k)} - \alpha_k A r^{(k)}, r^{(k)}) \\ &= (r^{(k)}, r^{(k)}) - \alpha_k (A r^{(k)}, r^{(k)}) \end{align*} \]

根据最优步长公式(6.42),\(\alpha_k (A r^{(k)}, r^{(k)}) = (r^{(k)}, r^{(k)})\),因此上式结果为0,正交性得证。

几何意义与核心局限

这个性质的几何意义非常直观:

  • 二次函数\(\varphi(x)\)的等值线是一族以\(x^*\)为中心的超椭球面,二维情况下就是椭圆曲线;
  • 负梯度方向和等值线正交,因此每一步的搜索方向都和当前点的等值线垂直;
  • 相邻两步的搜索方向正交,意味着迭代路径是锯齿形的折线,在二维情况下就是走直角转弯的路线。

这正是最速下降法的核心局限:它只保证了局部下降最快,却没有考虑全局的最优路径。尤其是当等值线是非常扁的椭圆(对应矩阵\(A\)的条件数很大,病态矩阵)时,锯齿形路径会来回震荡,收敛速度会变得极其缓慢。

2. 函数值的单调下降性

由最优步长的定义,每一步迭代都满足:

\[\varphi(x^{(k+1)}) \leq \varphi(x^{(k)}), \quad \forall k\geq0 \]

且当且仅当\(x^{(k)}=x^*\)(残差\(r^{(k)}=0\))时等号成立。

同时,因为\(A\)对称正定,\(\varphi(x)\)有下界\(\varphi(x^*)\),因此\(\{\varphi(x^{(k)})\}\)单调下降且有下界的序列,必然存在极限,且极限就是\(\varphi(x^*)\),对应的迭代序列\(\{x^{(k)}\}\)必然收敛到方程组的解\(x^*\)

这说明:只要\(A\)是对称正定矩阵,最速下降法是无条件收敛的,无论初始点怎么选,最终都会收敛到精确解。


五、收敛性分析:为什么最速下降法工程上很少用?

最速下降法虽然逻辑简单、无条件收敛,但在工程实际中几乎不会被使用,核心原因是它的收敛速度对矩阵的条件数极度敏感,病态矩阵下收敛速度会急剧下降。

1. 收敛速度的误差估计式

对于对称正定矩阵\(A\),设其最大特征值为\(\lambda_1\),最小特征值为\(\lambda_n\),则最速下降法的迭代误差满足:

\[\|x^{(k)} - x^*\|_A \leq \left( \frac{\lambda_1 - \lambda_n}{\lambda_1 + \lambda_n} \right)^k \|x^{(0)} - x^*\|_A \]

其中\(\|u\|_A = \sqrt{(Au,u)}\)是向量的\(A\)-范数(能量范数)。

2. 条件数对收敛速度的影响

我们定义矩阵\(A\)的2-范数条件数:\(\text{cond}(A)_2 = \frac{\lambda_1}{\lambda_n}\),它衡量了矩阵的病态程度:条件数越大,矩阵越病态。

我们通过几个实例直观感受条件数对收敛速度的影响:

条件数\(\text{cond}(A)\) 收敛因子\(\frac{\lambda_1-\lambda_n}{\lambda_1+\lambda_n}\) 每步误差缩小比例 误差缩小到初始的\(10^{-6}\)需要的迭代步数
2(良态) \(\frac{2-1}{2+1}=\frac{1}{3}\approx0.333\) 66.7% 约13步
10(轻度病态) \(\frac{10-1}{10+1}\approx0.818\) 18.2% 约60步
1000(重度病态) \(\frac{1000-1}{1000+1}\approx0.998\) 0.2% 约6900步

可以清晰看到:

  • 当矩阵条件数很大时(工程中PDE离散得到的矩阵,条件数经常达到\(10^4\)甚至更高),收敛因子会无限接近1,每一步误差几乎没有缩小,需要成千上万步迭代才能达到精度要求;
  • 迭代后期,残差\(\|r^{(k)}\|\)会变得非常小,此时舍入误差会主导计算,导致数值不稳定,甚至无法收敛到目标精度。

这就是最速下降法在工程中几乎不用的核心原因:它只在良态矩阵下有不错的收敛速度,而工程中绝大多数问题对应的矩阵都是病态的,此时它的收敛效率极低。


六、最速下降法的总结与后续衔接

1. 优缺点汇总

优点 缺点
逻辑简单,原理直观,编程实现极易 仅局部最优,全局收敛速度慢,病态矩阵下收敛效率极低
对称正定矩阵下无条件收敛,稳定性好 相邻搜索方向正交,迭代路径呈锯齿形,存在大量重复搜索
单步迭代计算量小,仅需一次矩阵-向量乘法和少量内积运算 迭代后期残差过小,舍入误差会导致数值不稳定
存储需求低,仅需存储2个向量(当前解和残差) 工程实用价值极低,仅作为理论铺垫使用

2. 向共轭梯度法的过渡

最速下降法的核心问题,在于它的搜索方向只考虑了局部的下降最快,却没有避免重复搜索,导致收敛速度慢。

我们自然会思考:能不能构造一组搜索方向,既保证每一步\(\varphi(x)\)都严格下降,又能避免重复搜索,让迭代路径更高效地逼近极小值点?

答案是肯定的——这就是我们下一节要讲的共轭梯度法。共轭梯度法用关于\(A\)共轭的方向,替代了最速下降法中正交的负梯度方向,既保留了最速下降法的所有优点,又彻底解决了收敛慢的问题,成为了求解大型稀疏对称正定线性方程组的工业级标准算法。


七、核心知识点终极总结

  1. 核心等价:最速下降法的本质是通过求解二次函数的极小值,间接求解对称正定线性方程组,是变分原理的直接应用;
  2. 核心逻辑:每一步沿着负梯度方向(残差方向)前进,通过一维极小值求解得到最优步长,保证函数值单调下降;
  3. 核心性质:相邻两步的搜索方向正交,迭代路径呈锯齿形,这是收敛慢的根源;
  4. 收敛特性:对称正定矩阵下无条件收敛,但收敛速度由矩阵条件数决定,病态矩阵下收敛速度急剧下降;
  5. 工程定位:最速下降法不是实用的工程算法,而是理解共轭梯度法、非线性优化下降算法的理论基础。

最速下降法 知识点深度讲解

各位同学,今天我们讲解的最速下降法,是连接「线性方程组变分等价性」和「共轭梯度法」的关键桥梁。它是求解无约束凸优化问题最基础的下降算法,也是理解共轭梯度法核心思想的必经之路。我会从核心思想、公式推导、迭代流程、核心性质、收敛性分析、优缺点与工程定位六个维度,把这个方法的本质讲透,同时讲清楚它的局限,为后续共轭梯度法的学习做好铺垫。


一、最速下降法的核心思想

上一节我们已经证明了:对称正定线性方程组\(Ax=b\)的解,等价于二次凸函数\(\varphi(x)=\frac{1}{2}(Ax,x)-(b,x)\)的全局极小值点

最速下降法的核心逻辑,就是用最直观的思路求解这个极小值问题:

从任意初始点\(x^{(0)}\)出发,每一步都沿着当前点处\(\varphi(x)\)下降最快的方向前进,走到这个方向上\(\varphi(x)\)的最低点(一维极小值点);再以这个新点为起点,重复上述过程,直到逼近全局极小值点\(x^*\)

这个思路可以拆解为两个核心问题:

  1. 什么方向是\(\varphi(x)\)在当前点下降最快的方向?
  2. 沿着这个方向,走多远(步长多大),才能到达这个方向上的最低点?

我们接下来就通过数学推导,逐一解决这两个问题。


二、通用下降算法框架与最优步长推导

首先我们先建立通用的下降算法框架,再针对最速下降法做特化。

1. 通用下降迭代格式

对于任意一个下降方向\(p^{(k)}\),我们可以构造迭代格式:

\[x^{(k+1)} = x^{(k)} + \alpha_k p^{(k)} \tag{6.40} \]

其中\(\alpha_k>0\)是迭代步长,我们的目标是找到最优的\(\alpha_k\),使得沿着\(p^{(k)}\)方向,\(\varphi(x)\)的函数值下降最多,也就是:

\[\varphi(x^{(k+1)}) = \min_{\alpha\in\mathbb{R}} \varphi(x^{(k)} + \alpha p^{(k)}) \]

2. 最优步长的解析解

这个问题本质是一个一元函数的极小值求解问题,我们可以用上一节推导的二次函数一维展开式直接求解。

根据上一节的性质2,对任意\(x,p\in\mathbb{R}^n\)\(\alpha\in\mathbb{R}\),有:

\[\varphi(x^{(k)} + \alpha p^{(k)}) = \varphi(x^{(k)}) + \alpha(Ax^{(k)} - b, p^{(k)}) + \frac{\alpha^2}{2}(Ap^{(k)}, p^{(k)}) \]

这是一个关于\(\alpha\)的一元二次函数,且因为\(A\)对称正定,\((Ap^{(k)},p^{(k)})>0\),所以这个函数开口向上,存在唯一的极小值点。

我们对\(\alpha\)求导,并令导数为0,即可解出最优步长:

\[\frac{d\varphi(x^{(k)} + \alpha p^{(k)})}{d\alpha} = (Ax^{(k)} - b, p^{(k)}) + \alpha(Ap^{(k)}, p^{(k)}) = 0 \]

整理后得到最优步长的通用公式:

\[\alpha_k = -\frac{(Ax^{(k)} - b, p^{(k)})}{(Ap^{(k)}, p^{(k)})} \tag{6.41} \]

这个公式是所有基于变分的下降算法的核心,无论是最速下降法还是共轭梯度法,最优步长都来自这个推导。它的物理意义是:沿着方向\(p^{(k)}\),让\(\varphi(x)\)达到极小值的唯一步长。


三、最速下降法的迭代格式

现在我们解决第一个核心问题:什么方向是下降最快的方向?

1. 最速下降方向:负梯度方向

多元函数在某点的梯度方向,是函数值上升最快的方向;反之,负梯度方向就是函数值下降最快的方向。

根据上一节的性质1,\(\varphi(x)\)的梯度为:

\[\nabla\varphi(x) = Ax - b \]

我们定义残差向量\(r^{(k)} = b - Ax^{(k)}\),它恰好是\(\varphi(x)\)\(x^{(k)}\)处的负梯度:

\[r^{(k)} = -\nabla\varphi(x^{(k)}) \]

因此,最速下降法的搜索方向,就取当前点的残差方向:

\[p^{(k)} = r^{(k)} \]

2. 最速下降法的最终迭代公式

将搜索方向\(p^{(k)}=r^{(k)}\)代入通用最优步长公式(6.41),注意到\(Ax^{(k)}-b = -r^{(k)}\),因此分子变为:

\[(Ax^{(k)}-b, p^{(k)}) = (-r^{(k)}, r^{(k)}) = -(r^{(k)}, r^{(k)}) \]

代入后负负得正,化简得到最速下降法的最优步长:

\[\alpha_k = \frac{(r^{(k)}, r^{(k)})}{(Ar^{(k)}, r^{(k)})} \tag{6.42} \]

结合迭代格式,最终得到最速下降法的完整迭代公式:

\[x^{(k+1)} = x^{(k)} + \alpha_k r^{(k)}, \quad k=0,1,2,\dots \tag{6.43} \]

其中\(r^{(k)}=b-Ax^{(k)}\)是第k步的残差向量。

3. 最速下降法的完整迭代步骤

  1. 初始化:选取初始迭代向量\(x^{(0)}\),计算初始残差\(r^{(0)}=b-Ax^{(0)}\),设置迭代步数\(k=0\)
  2. 计算最优步长\(\alpha_k = \frac{(r^{(k)}, r^{(k)})}{(Ar^{(k)}, r^{(k)})}\)
  3. 更新迭代解\(x^{(k+1)} = x^{(k)} + \alpha_k r^{(k)}\)
  4. 更新残差\(r^{(k+1)} = b - Ax^{(k+1)}\)
  5. 收敛判断:若\(\|r^{(k+1)}\|_2 < \varepsilon\)\(\varepsilon\)为预设精度,如\(10^{-6}\)),停止迭代,输出\(x^{(k+1)}\);否则令\(k=k+1\),返回步骤2。

四、最速下降法的核心性质

1. 相邻搜索方向的正交性

最速下降法有一个非常关键的性质:相邻两步的搜索方向(残差向量)相互正交,即:

\[(r^{(k+1)}, r^{(k)}) = 0 \]

证明过程

我们直接代入残差的定义展开:

\[\begin{align*} (r^{(k+1)}, r^{(k)}) &= (b - Ax^{(k+1)}, r^{(k)}) \\ &= (b - A(x^{(k)} + \alpha_k r^{(k)}), r^{(k)}) \\ &= (b - Ax^{(k)} - \alpha_k A r^{(k)}, r^{(k)}) \\ &= (r^{(k)}, r^{(k)}) - \alpha_k (A r^{(k)}, r^{(k)}) \end{align*} \]

根据最优步长公式(6.42),\(\alpha_k (A r^{(k)}, r^{(k)}) = (r^{(k)}, r^{(k)})\),因此上式结果为0,正交性得证。

几何意义与核心局限

这个性质的几何意义非常直观:

  • 二次函数\(\varphi(x)\)的等值线是一族以\(x^*\)为中心的超椭球面,二维情况下就是椭圆曲线;
  • 负梯度方向和等值线正交,因此每一步的搜索方向都和当前点的等值线垂直;
  • 相邻两步的搜索方向正交,意味着迭代路径是锯齿形的折线,在二维情况下就是走直角转弯的路线。

这正是最速下降法的核心局限:它只保证了局部下降最快,却没有考虑全局的最优路径。尤其是当等值线是非常扁的椭圆(对应矩阵\(A\)的条件数很大,病态矩阵)时,锯齿形路径会来回震荡,收敛速度会变得极其缓慢。

2. 函数值的单调下降性

由最优步长的定义,每一步迭代都满足:

\[\varphi(x^{(k+1)}) \leq \varphi(x^{(k)}), \quad \forall k\geq0 \]

且当且仅当\(x^{(k)}=x^*\)(残差\(r^{(k)}=0\))时等号成立。

同时,因为\(A\)对称正定,\(\varphi(x)\)有下界\(\varphi(x^*)\),因此\(\{\varphi(x^{(k)})\}\)单调下降且有下界的序列,必然存在极限,且极限就是\(\varphi(x^*)\),对应的迭代序列\(\{x^{(k)}\}\)必然收敛到方程组的解\(x^*\)

这说明:只要\(A\)是对称正定矩阵,最速下降法是无条件收敛的,无论初始点怎么选,最终都会收敛到精确解。


五、收敛性分析:为什么最速下降法工程上很少用?

最速下降法虽然逻辑简单、无条件收敛,但在工程实际中几乎不会被使用,核心原因是它的收敛速度对矩阵的条件数极度敏感,病态矩阵下收敛速度会急剧下降。

1. 收敛速度的误差估计式

对于对称正定矩阵\(A\),设其最大特征值为\(\lambda_1\),最小特征值为\(\lambda_n\),则最速下降法的迭代误差满足:

\[\|x^{(k)} - x^*\|_A \leq \left( \frac{\lambda_1 - \lambda_n}{\lambda_1 + \lambda_n} \right)^k \|x^{(0)} - x^*\|_A \]

其中\(\|u\|_A = \sqrt{(Au,u)}\)是向量的\(A\)-范数(能量范数)。

2. 条件数对收敛速度的影响

我们定义矩阵\(A\)的2-范数条件数:\(\text{cond}(A)_2 = \frac{\lambda_1}{\lambda_n}\),它衡量了矩阵的病态程度:条件数越大,矩阵越病态。

我们通过几个实例直观感受条件数对收敛速度的影响:

条件数\(\text{cond}(A)\) 收敛因子\(\frac{\lambda_1-\lambda_n}{\lambda_1+\lambda_n}\) 每步误差缩小比例 误差缩小到初始的\(10^{-6}\)需要的迭代步数
2(良态) \(\frac{2-1}{2+1}=\frac{1}{3}\approx0.333\) 66.7% 约13步
10(轻度病态) \(\frac{10-1}{10+1}\approx0.818\) 18.2% 约60步
1000(重度病态) \(\frac{1000-1}{1000+1}\approx0.998\) 0.2% 约6900步

可以清晰看到:

  • 当矩阵条件数很大时(工程中PDE离散得到的矩阵,条件数经常达到\(10^4\)甚至更高),收敛因子会无限接近1,每一步误差几乎没有缩小,需要成千上万步迭代才能达到精度要求;
  • 迭代后期,残差\(\|r^{(k)}\|\)会变得非常小,此时舍入误差会主导计算,导致数值不稳定,甚至无法收敛到目标精度。

这就是最速下降法在工程中几乎不用的核心原因:它只在良态矩阵下有不错的收敛速度,而工程中绝大多数问题对应的矩阵都是病态的,此时它的收敛效率极低。


六、最速下降法的总结与后续衔接

1. 优缺点汇总

优点 缺点
逻辑简单,原理直观,编程实现极易 仅局部最优,全局收敛速度慢,病态矩阵下收敛效率极低
对称正定矩阵下无条件收敛,稳定性好 相邻搜索方向正交,迭代路径呈锯齿形,存在大量重复搜索
单步迭代计算量小,仅需一次矩阵-向量乘法和少量内积运算 迭代后期残差过小,舍入误差会导致数值不稳定
存储需求低,仅需存储2个向量(当前解和残差) 工程实用价值极低,仅作为理论铺垫使用

2. 向共轭梯度法的过渡

最速下降法的核心问题,在于它的搜索方向只考虑了局部的下降最快,却没有避免重复搜索,导致收敛速度慢。

我们自然会思考:能不能构造一组搜索方向,既保证每一步\(\varphi(x)\)都严格下降,又能避免重复搜索,让迭代路径更高效地逼近极小值点?

答案是肯定的——这就是我们下一节要讲的共轭梯度法。共轭梯度法用关于\(A\)共轭的方向,替代了最速下降法中正交的负梯度方向,既保留了最速下降法的所有优点,又彻底解决了收敛慢的问题,成为了求解大型稀疏对称正定线性方程组的工业级标准算法。


七、核心知识点终极总结

  1. 核心等价:最速下降法的本质是通过求解二次函数的极小值,间接求解对称正定线性方程组,是变分原理的直接应用;
  2. 核心逻辑:每一步沿着负梯度方向(残差方向)前进,通过一维极小值求解得到最优步长,保证函数值单调下降;
  3. 核心性质:相邻两步的搜索方向正交,迭代路径呈锯齿形,这是收敛慢的根源;
  4. 收敛特性:对称正定矩阵下无条件收敛,但收敛速度由矩阵条件数决定,病态矩阵下收敛速度急剧下降;
  5. 工程定位:最速下降法不是实用的工程算法,而是理解共轭梯度法、非线性优化下降算法的理论基础。

共轭梯度法(CG法)完整知识点深度讲解

各位同学,今天我们讲解的共轭梯度法(Conjugate Gradient, CG),是求解大型稀疏对称正定线性方程组的工业级标准算法,也是我们这一章的核心内容。它完美解决了最速下降法收敛慢的核心缺陷,兼具理论上的有限步收敛性和工程上的高效迭代特性,是有限元分析、计算力学、电磁仿真等领域的求解器核心。

我会从算法流程拆解、核心数学性质、实例演算、几何意义、收敛性分析、工程定位六个维度,把CG法的维度,把CG法的本质讲透,让你不仅会算,更懂为什么这么算。


一、共轭梯度法的核心定位:对最速下降法的本质改进

最速下降法,它的核心缺陷是:相邻搜索方向正交,迭代路径呈锯齿形,只保证局部下降最快,全局收敛速度极慢,尤其是病态矩阵下几乎无法使用

共轭梯度法的核心改进,就是用关于A共轭的搜索方向,替代了最速下降法中正交的负梯度方向:

  • 共轭方向:若两个非零向量\(p^{(i)},p^{(j)}\)满足\((p^{(i)}, A p^{(j)})=0\)\(i≠j\)),则称它们关于对称正定矩阵A共轭(A-正交);
  • 核心优势:共轭方向组线性无关,n维空间中最多有n个共轭方向,沿着这组方向依次做一维极小值搜索,最多n步就能找到二次函数的全局极小值点,彻底避免了最速下降法的重复搜索和锯齿震荡。

同时,CG法保留了最速下降法的所有优点:无自由参数、单步计算量小、存储需求低、对称正定矩阵下无条件收敛。


二、共轭梯度法的标准算法流程与公式拆解

CG法的迭代流程完全由残差自动构造,无需手动调参,每一步仅包含向量内积、矩阵-向量乘法,完美适配稀疏矩阵。

完整算法步骤

(1)初始化

任取初始迭代向量\(x^{(0)} \in \mathbb{R}^n\),计算初始残差:

\[r^{(0)} = b - A x^{(0)} \]

取初始搜索方向为初始残差方向:

\[p^{(0)} = r^{(0)} \]

(2)迭代循环(对\(k=0,1,2,\dots\)

计算最优步长\(\alpha_k\)

\[\alpha_k = \frac{(r^{(k)}, r^{(k)})}{(p^{(k)}, A p^{(k)})} \]

更新迭代解

\[x^{(k+1)} = x^{(k)} + \alpha_k p^{(k)} \]

更新残差向量

\[r^{(k+1)} = r^{(k)} - \alpha_k A p^{(k)} \]

计算方向修正系数\(\beta_k\)(Fletcher-Reeves公式)

\[\beta_k = \frac{(r^{(k+1)}, r^{(k+1)})}{(r^{(k)}, r^{(k)})} \]

更新共轭搜索方向

\[p^{(k+1)} = r^{(k+1)} + \beta_k p^{(k)} \]

(3)停机准则

\(r^{(k)}=0\)(残差为0,得到精确解),或\((p^{(k)}, A p^{(k)})=0\)(搜索方向为零向量),则停止计算,此时\(x^{(k)}\)就是方程组的解。
工程中常用的停机条件为:\(\|r^{(k+1)}\|_2 / \|b\|_2 < \varepsilon\)\(\varepsilon\)为预设精度,通常取\(10^{-6}\sim10^{-8}\))。


核心公式的本质解读

  1. 最优步长\(\alpha_k\):和最速下降法的步长公式逻辑一致,都是沿着当前搜索方向\(p^{(k)}\),让二次函数\(\varphi(x)\)达到极小值的唯一步长。区别仅在于搜索方向从残差\(r^{(k)}\)换成了共轭方向\(p^{(k)}\)
  2. 残差更新公式:无需重新计算\(r^{(k+1)}=b-Ax^{(k+1)}\),用递推公式可减少一次矩阵-向量乘法,大幅降低计算量,这是CG法工程高效的关键。
  3. 修正系数\(\beta_k\):这是CG法的核心构造,它的作用是保证新的搜索方向\(p^{(k+1)}\)与之前所有的搜索方向都关于A共轭,彻底避免重复搜索,保证迭代的最优性。
  4. 搜索方向更新:新的搜索方向由当前步的残差(负梯度方向)和上一步的搜索方向加权得到,既保留了局部下降最快的特性,又保证了全局的共轭性。

三、共轭梯度法的核心数学性质

CG法的所有优势,都来自于它迭代过程中自动满足的三大核心性质,这也是它能有限步收敛的理论根基。

1. 残差的全局正交性

迭代过程中产生的所有残差向量两两正交,即:

\[(r^{(i)}, r^{(j)}) = 0, \quad \forall i≠j \]

n维欧氏空间中,最多有n个两两正交的非零向量,因此在\(r^{(0)},r^{(1)},\dots,r^{(n)}\)中,至少有一个是零向量。这意味着理论上最多n步迭代,残差就会变为0,得到方程组的精确解

2. 搜索方向的全局A-共轭性

迭代过程中产生的所有搜索方向两两关于A共轭,即:

\[(p^{(i)}, A p^{(j)}) = 0, \quad \forall i≠j \]

这组共轭方向是n维空间的一组基,沿着这组基依次做一维极小值搜索,就能遍历整个空间,最终找到全局极小值点,这是CG法有限步收敛的核心原因。

3. 算法的双重属性

  • 直接法属性:在精确计算的前提下,n阶方程组最多n步就能得到精确解,和高斯消元法等直接法等价;
  • 迭代法属性:实际计算中存在舍入误差,残差的正交性会逐渐损失,无法保证n步精确收敛;同时对于n≥1e4的超大型方程组,无需迭代到n步,远少于n步就能达到工程精度,因此它也是一种迭代法。

四、实例演算:CG法求解二阶线性方程组

我们通过教材例6.10,完整走一遍CG法的迭代流程,直观验证它的有限步收敛性。

求解方程组

\[\begin{cases}3x_1 + x_2 = 5 \\ x_1 + 2x_2 = 5\end{cases} \]

系数矩阵\(A=\begin{pmatrix}3 & 1 \\ 1 & 2\end{pmatrix}\),显然对称正定,精确解为\(x^*=(1,2)^T\)


迭代计算过程

步骤1:初始化

取初始向量\(x^{(0)}=(0,0)^T\),计算初始残差:

\[r^{(0)} = b - A x^{(0)} = \begin{pmatrix}5 \\ 5\end{pmatrix} - \begin{pmatrix}3 & 1 \\ 1 & 2\end{pmatrix}\begin{pmatrix}0 \\ 0\end{pmatrix} = \begin{pmatrix}5 \\ 5\end{pmatrix} \]

初始搜索方向\(p^{(0)}=r^{(0)}=\begin{pmatrix}5 \\ 5\end{pmatrix}\)

步骤2:第一次迭代(k=0)

① 计算最优步长\(\alpha_0\)
分子:\((r^{(0)},r^{(0)}) = 5^2 + 5^2 = 50\)
先算\(A p^{(0)}\)\(\begin{pmatrix}3 & 1 \\ 1 & 2\end{pmatrix}\begin{pmatrix}5 \\ 5\end{pmatrix} = \begin{pmatrix}20 \\ 15\end{pmatrix}\)
分母:\((p^{(0)}, A p^{(0)}) = 5\times20 + 5\times15 = 175\)
因此\(\alpha_0 = \frac{50}{175} = \frac{2}{7}\)

② 更新迭代解:

\[x^{(1)} = x^{(0)} + \alpha_0 p^{(0)} = \begin{pmatrix}0 \\ 0\end{pmatrix} + \frac{2}{7}\begin{pmatrix}5 \\ 5\end{pmatrix} = \begin{pmatrix}\frac{10}{7} \\ \frac{10}{7}\end{pmatrix} \]

③ 更新残差:

\[r^{(1)} = r^{(0)} - \alpha_0 A p^{(0)} = \begin{pmatrix}5 \\ 5\end{pmatrix} - \frac{2}{7}\begin{pmatrix}20 \\ 15\end{pmatrix} = \begin{pmatrix}-\frac{5}{7} \\ \frac{5}{7}\end{pmatrix} \]

④ 计算修正系数\(\beta_0\)
分子:\((r^{(1)},r^{(1)}) = (-\frac{5}{7})^2 + (\frac{5}{7})^2 = \frac{50}{49}\)
分母:\((r^{(0)},r^{(0)})=50\)
因此\(\beta_0 = \frac{\frac{50}{49}}{50} = \frac{1}{49}\)

⑤ 更新搜索方向:

\[p^{(1)} = r^{(1)} + \beta_0 p^{(0)} = \begin{pmatrix}-\frac{5}{7} \\ \frac{5}{7}\end{pmatrix} + \frac{1}{49}\begin{pmatrix}5 \\ 5\end{pmatrix} = \begin{pmatrix}-\frac{30}{49} \\ \frac{40}{49}\end{pmatrix} \]

步骤3:第二次迭代(k=1)

① 计算最优步长\(\alpha_1\)
分子:\((r^{(1)},r^{(1)}) = \frac{50}{49}\)
先算\(A p^{(1)}\)\(\begin{pmatrix}3 & 1 \\ 1 & 2\end{pmatrix}\begin{pmatrix}-\frac{30}{49} \\ \frac{40}{49}\end{pmatrix} = \begin{pmatrix}-\frac{50}{49} \\ \frac{50}{49}\end{pmatrix}\)
分母:\((p^{(1)}, A p^{(1)}) = (-\frac{30}{49})\times(-\frac{50}{49}) + \frac{40}{49}\times\frac{50}{49} = \frac{3500}{2401}\)
因此\(\alpha_1 = \frac{\frac{50}{49}}{\frac{3500}{2401}} = \frac{7}{10}\)

② 更新迭代解:

\[x^{(2)} = x^{(1)} + \alpha_1 p^{(1)} = \begin{pmatrix}\frac{10}{7} \\ \frac{10}{7}\end{pmatrix} + \frac{7}{10}\begin{pmatrix}-\frac{30}{49} \\ \frac{40}{49}\end{pmatrix} = \begin{pmatrix}1 \\ 2\end{pmatrix} \]

③ 验证残差:\(r^{(2)}=b-Ax^{(2)}=\begin{pmatrix}5 \\5\end{pmatrix}-\begin{pmatrix}3&1\\1&2\end{pmatrix}\begin{pmatrix}1\\2\end{pmatrix}=\begin{pmatrix}0\\0\end{pmatrix}\),残差为0,得到精确解。


实例核心结论

对于2阶方程组,CG法仅用2步迭代就得到了精确解,完美验证了有限步收敛性。而如果用最速下降法求解这个方程组,需要迭代数十步才能达到相同精度,差距极其明显。


五、几何意义:CG法与最速下降法的直观对比

我们通过教材图6-4,直观理解两种方法的迭代路径差异:

  1. 第一步迭代完全一致:CG法和最速下降法的初始搜索方向都是初始残差(负梯度方向),因此第一步的迭代点完全相同;
  2. 第二步迭代天差地别
    • CG法的第二步搜索方向是共轭方向,直接指向二次函数等值线(椭圆)的中心(精确解),一步到位,2步收敛;
    • 最速下降法的第二步搜索方向是新的负梯度方向,和第一步方向正交,开始走锯齿形路径,在解附近反复震荡,收敛速度极慢。

这张图完美诠释了CG法的核心优势:它的搜索方向是全局最优的,避免了最速下降法的局部最优陷阱,收敛效率实现了质的飞跃。


六、收敛性分析与工程优化

1. 收敛速度的误差估计式

对于对称正定矩阵A,CG法的迭代误差满足:

\[\|x^{(k)} - x^*\|_A \leq 2\left( \frac{\sqrt{K} - 1}{\sqrt{K} + 1} \right)^k \|x^{(0)} - x^*\|_A \]

其中:

  • \(\|u\|_A = \sqrt{(Au,u)}\)是向量的A-范数(能量范数);
  • \(K=\text{cond}(A)_2 = \frac{\lambda_{\text{max}}(A)}{\lambda_{\text{min}}(A)}\)是矩阵A的2-范数条件数。

2. 与最速下降法的收敛速度对比

方法 收敛因子 条件数K=100时的收敛因子 误差缩小到\(10^{-6}\)所需迭代步数
最速下降法 \(\frac{K-1}{K+1}\) \(\frac{99}{101}\approx0.98\) 约690步
共轭梯度法 \(\frac{\sqrt{K}-1}{\sqrt{K}+1}\) \(\frac{9}{11}\approx0.818\) 约60步

可以清晰看到:

  • CG法的收敛因子远小于最速下降法,收敛速度快了一个数量级;
  • 条件数K越小,矩阵越良态,CG法收敛速度越快;
  • 当K>>1(病态矩阵)时,CG法的收敛速度也会变慢,需要通过预条件技术优化。

3. 工程优化:预条件共轭梯度法(PCG)

对于病态矩阵,工程中通用的优化方案是预条件共轭梯度法(Preconditioned Conjugate Gradient, PCG)

  • 核心思路:引入预条件矩阵M(近似A的逆,且容易求逆),将原方程组\(Ax=b\)转化为等价方程组\(M^{-1}Ax = M^{-1}b\),大幅降低系数矩阵的条件数;
  • 常用预条件子:对角预条件(雅可比预条件)、不完全Cholesky分解预条件(ICCG),其中ICCG是对称正定矩阵的工业级标准预条件子,能将收敛速度再提升1~2个数量级。

七、核心知识点终极总结

  1. 核心本质:共轭梯度法是一种变分方法,通过构造关于A共轭的搜索方向,求解二次函数的全局极小值点,间接求解对称正定线性方程组;
  2. 核心优势:无自由参数、单步计算量小、存储需求低,理论上n步收敛,实际工程中收敛速度远快于最速下降法、SOR迭代法;
  3. 核心性质:迭代过程自动满足残差全局正交、搜索方向全局A-共轭,这是有限步收敛的理论根基;
  4. 适用范围:仅适用于对称正定矩阵,非对称矩阵需使用BiCG、BiCGSTAB、GMRES等推广版本;
  5. 工程定位:是求解大型稀疏对称正定线性方程组的首选算法,搭配预条件子后,是有限元、计算力学、电磁仿真等领域的标准求解器核心。

posted on 2026-02-17 22:02  Indian_Mysore  阅读(1)  评论(0)    收藏  举报

导航