6.4共轭梯度法(CG法)
共轭梯度法(CG法)之变分等价问题 详细讲解与推导
各位同学,今天我们用多年数值线性代数的教研积累,把共轭梯度法最核心的理论根基——线性方程组与二次函数变分问题的等价性,从定义、性质推导到核心定理,一步不落、逻辑闭环地讲透,让大家不仅知其然,更知其所以然。
一、开篇:为什么要做这个等价转化?
共轭梯度法(CG法)是求解对称正定线性方程组的经典迭代方法,它的核心思想不是直接对矩阵做消元分解,而是把线性方程组的求解问题,转化为一个二次函数的极小化问题(变分问题)。
这个转化的价值在于:我们可以用优化的思路,通过构造迭代序列\(\{x^{(k)}\}\),让对应的二次函数值不断下降,最终收敛到函数的极小值点——也就是线性方程组的精确解。这是CG法区别于高斯消元等直接法的核心逻辑,也是我们今天要讲的全部内容的出发点。
二、核心前提与基本定义
1. 前提约束(必须严格满足)
我们讨论的线性方程组为:
其中:
- \(A=(a_{ij}) \in \mathbb{R}^{n \times n}\):n阶实对称正定矩阵(这是整个理论的核心前提,后续几乎所有推导都依赖这个条件);
- \(b=(b_1,b_2,\dots,b_n)^T \in \mathbb{R}^n\):给定的n维实列向量;
- \(x=(x_1,x_2,\dots,x_n)^T \in \mathbb{R}^n\):待求解的未知向量。
先明确两个基础概念:
- 欧氏内积:我们用\((\cdot,\cdot)\)表示n维实空间的标准内积,即对任意\(x,y\in\mathbb{R}^n\),\((x,y)=x^T y = \sum_{i=1}^n x_i y_i\),内积满足双线性、对称性、正定性;
- 对称正定矩阵的定义:对任意非零向量\(z\in\mathbb{R}^n\),恒有\((Az,z) = z^T A z > 0\),且\(A^T=A\)(对称性)。
2. 二次目标函数的定义
我们构造如下从n维实空间到实数的二次函数\(\varphi: \mathbb{R}^n \to \mathbb{R}\):
展开为求和形式就是:
定义的合理性推导(展开验证)
我们把内积形式展开,证明和求和形式完全等价:
- 首先,\(Ax\)的第\(i\)个分量为\((Ax)_i = \sum_{j=1}^n a_{ij}x_j\);
- 因此\((Ax,x) = \sum_{i=1}^n (Ax)_i x_i = \sum_{i=1}^n \left( \sum_{j=1}^n a_{ij}x_j \right)x_i = \sum_{i=1}^n \sum_{j=1}^n a_{ij}x_i x_j\);
- 同时\((b,x) = \sum_{j=1}^n b_j x_j\);
- 代入原式,就得到了求和形式的\(\varphi(x)\),定义成立。
三、二次函数\(\varphi(x)\)的三大核心性质 详细推导
这三个性质是整个等价性定理的基石,我们逐个做无跳步的推导证明。
性质1:\(\varphi(x)\)的梯度公式
结论:对一切\(x\in\mathbb{R}^n\),\(\varphi(x)\)的梯度为
详细推导证明
多元函数的梯度定义:对\(n\)元函数\(\varphi(x)=\varphi(x_1,x_2,\dots,x_n)\),梯度是一个\(n\)维列向量,其第\(k\)个分量为\(\varphi\)对\(x_k\)的偏导数,即:
我们只需计算第\(k\)个偏导数\(\frac{\partial \varphi}{\partial x_k}\),再整理为向量形式即可:
- 把\(\varphi(x)\)拆为两项分别求偏导:
- 计算第二项的偏导:
\(\sum_{j=1}^n b_j x_j\)中,仅当\(j=k\)时项含\(x_k\),其余项对\(x_k\)的偏导为0,因此:
- 计算第一项的二重和偏导(核心步骤):
根据乘积求导法则,\(\frac{\partial}{\partial x_k}(x_i x_j) = x_i \cdot \frac{\partial x_j}{\partial x_k} + x_j \cdot \frac{\partial x_i}{\partial x_k}\),引入克罗内克函数\(\delta_{m,n}\)(\(m=n\)时\(\delta=1\),否则\(\delta=0\)),则\(\frac{\partial x_m}{\partial x_k}=\delta_{m,k}\),因此:
- 利用\(A\)的对称性化简:
因为\(A\)是对称矩阵,即\(a_{ik}=a_{ki}\),因此\(\sum_{i} a_{i,k} x_i = \sum_{i} a_{k,i} x_i\),而\(\sum_{j} a_{k,j} x_j\)就是\(Ax\)的第\(k\)个分量\((Ax)_k\),因此:
- 合并得到偏导数:
- 整理为梯度向量:
所有分量组合起来,就得到\(\nabla \varphi(x) = Ax - b\),性质1得证。
性质2:单参数增量展开式
结论:对一切\(x,y\in\mathbb{R}^n\)及任意实数\(\alpha\in\mathbb{R}\),有
详细推导证明
这个性质是后续CG法中线搜索求最优步长的核心,我们直接将\(z=x+\alpha y\)代入\(\varphi(z)\)的定义式展开:
- 代入定义式:
- 展开内积的线性项:
根据矩阵乘法和内积的双线性性质,先展开\(A(x+\alpha y)=Ax + \alpha Ay\),因此:
- 利用\(A\)的对称性化简交叉项:
因为\(A\)对称,所以\((Ay,x) = y^T A x = (y^T A x)^T = x^T A^T y = x^T A y = (Ax,y)\),因此两个交叉项合并为:
代入后得到:
-
展开常数项的内积:
根据内积线性,\(-(b, x+\alpha y) = -(b,x) - \alpha(b,y)\) -
合并所有项并整理:
最终得到\(\varphi(x+\alpha y) = \varphi(x) + \alpha(Ax - b,y) + \frac{\alpha^2}{2}(Ay,y)\),性质2得证。
性质3:解的函数值与误差估计
结论:设\(x^*=A^{-1}b\)是线性方程组\(Ax=b\)的解,则:
- 解对应的函数值:\(\varphi(x^*) = -\frac{1}{2}(b,A^{-1}b) = -\frac{1}{2}(Ax^*,x^*)\)
- 任意点与解的函数值差:对一切\(x\in\mathbb{R}^n\),有
详细推导证明
第一部分:解的函数值推导
因为\(x^*\)是\(Ax=b\)的解,因此满足\(Ax^*=b\),直接代入\(\varphi(x)\)的定义:
再将\(x^*=A^{-1}b\)代入,\((Ax^*,x^*)=(b, A^{-1}b)\),因此\(\varphi(x^*) = -\frac{1}{2}(b,A^{-1}b)\),第一部分得证。
第二部分:函数值差的推导
我们直接展开\(\varphi(x)-\varphi(x^*)\),并利用\(b=Ax^*\)做替换:
- 写出差值的原始形式:
- 代入\(b=Ax^*\),替换所有\(b\):
- 展开目标式\(\frac{1}{2}\left(A(x-x^*), x-x^*\right)\),验证等价性:
再次利用\(A\)的对称性,\((Ax,x^*)=(Ax^*,x)\),因此:
两边乘以\(\frac{1}{2}\),得到:
和我们之前得到的\(\varphi(x)-\varphi(x^*)\)完全一致,因此式(6.39)得证。
四、核心等价定理 详细证明
定理6.15
设\(A\)为\(n\)阶实对称正定矩阵,则\(x^*\)为线性方程组\(Ax=b\)的解,充分必要条件是\(x^*\)满足:
详细证明(分必要性、充分性两部分)
必要性:若\(x^*\)是\(Ax=b\)的解,则\(x^*\)是\(\varphi(x)\)的全局极小值点
证明:
根据性质3,对任意\(x\in\mathbb{R}^n\),有:
令\(z = x - x^*\),因为\(A\)是正定矩阵,根据正定的定义:
- 若\(x \neq x^*\),则\(z \neq 0\),因此\((Az,z) > 0\),即\(\varphi(x) - \varphi(x^*) > 0\),\(\varphi(x) > \varphi(x^*)\);
- 若\(x = x^*\),则\(z = 0\),因此\((Az,z) = 0\),即\(\varphi(x) = \varphi(x^*)\)。
因此对所有\(x\in\mathbb{R}^n\),都有\(\varphi(x) \geq \varphi(x^*)\),当且仅当\(x=x^*\)时取等号,即\(x^*\)是\(\varphi(x)\)的全局唯一极小值点,必要性得证。
充分性:若\(x^*\)是\(\varphi(x)\)的全局极小值点,则\(x^*\)是\(Ax=b\)的解
证明:
因为\(\varphi(x)\)是定义在\(\mathbb{R}^n\)上的无限可微函数,根据多元函数极值的必要条件,函数在极小值点处的梯度必为零向量,即:
再根据性质1,\(\nabla \varphi(x^*) = Ax^* - b\),因此:
即\(x^*\)是线性方程组\(Ax=b\)的解,充分性得证。
也可通过正定矩阵的性质证明:
因为\(x^*\)是极小值点,所以\(\varphi(x^*) \leq \varphi(x)\)对所有\(x\)成立,而我们已经证明方程组的解\(\tilde{x}\)是极小值点,因此\(\varphi(x^*) = \varphi(\tilde{x})\),即:
由\(A\)的正定性,仅当\(x^*-\tilde{x}=0\)时上式成立,因此\(x^*=\tilde{x}\),即\(x^*\)是方程组的解。
五、核心知识点归纳总结表
| 模块 | 核心内容 | 公式/表达式 | 关键说明与约束条件 |
|---|---|---|---|
| 核心前提 | 线性方程组与矩阵约束 | \(Ax=b\),\(A\in\mathbb{R}^{n\times n}\)为实对称正定矩阵 | 对称性保证梯度公式、内积展开成立;正定性保证二次函数有唯一全局极小值,是整个理论的核心前提 |
| 目标函数 | 二次变分函数定义 | \(\varphi(x) = \frac{1}{2}(Ax,x) - (b,x)\) | 将线性方程组求解转化为该函数的极小化问题,是CG法的核心载体 |
| 性质1 | 梯度计算公式 | \(\nabla \varphi(x) = Ax - b\) | 多元函数极值的必要条件(梯度为0)直接对应方程组\(Ax=b\),建立了极值点与方程组解的直接联系 |
| 性质2 | 单参数增量展开 | \(\varphi(x+\alpha y) = \varphi(x) + \alpha(Ax - b,y) + \frac{\alpha^2}{2}(Ay,y)\) | 是CG法迭代中线搜索求最优步长的核心公式,可通过求导直接得到使函数值最小的\(\alpha\) |
| 性质3 | 解的函数值与误差估计 | \(\varphi(x) - \varphi(x^*) = \frac{1}{2}\left(A(x-x^*), x-x^*\right)\) | 建立了函数值误差与解的向量误差的直接关系,是证明收敛性、等价性的核心 |
| 核心定理 | 方程组与变分问题的等价性 | \(Ax^*=b \iff \varphi(x^*) = \min_{x\in\mathbb{R}^n} \varphi(x)\) | 对称正定线性方程组的求解,完全等价于对应二次函数的全局极小化问题,是CG法的理论根基 |
| 核心意义 | 问题转化的价值 | 线性代数求解问题 → 无约束优化极小化问题 | 避开了矩阵直接分解的高复杂度,可通过迭代构造下降序列求解,适合大规模稀疏线性方程组的求解 |
六、收尾:对CG法的意义延伸
今天讲的这部分,是共轭梯度法的“根”。后续的共轭方向构造、迭代公式、收敛性分析,全都是基于这个等价性展开的:我们要做的,就是构造一组关于\(A\)共轭的搜索方向,沿着每个方向做一次线搜索找到最优步长,让函数值一步步下降,最终在最多\(n\)步内收敛到精确解(无舍入误差的理想情况)。
大家一定要把这个等价性吃透,尤其是对称正定这个条件的作用,每一步推导哪里用到了,都要了然于心,这样后续学CG法的迭代流程,就不会只记公式,而是明白每一步的意义。
最速下降法(Steepest Descent Method) 详细讲解与完整推导
各位同学,上一节我们完成了核心的等价性证明:对称正定线性方程组\(Ax=b\)的求解,完全等价于二次函数\(\varphi(x)=\frac{1}{2}(Ax,x)-(b,x)\)的全局极小化问题。今天我们要讲解的最速下降法,就是求解这个极小化问题最直观、最基础的迭代方法,它是理解后续共轭梯度法的核心铺垫,我们将从迭代框架、公式推导、核心性质、收敛性与缺陷,全链路无跳步讲透。
一、通用下降法的迭代框架与精确线搜索
要解决\(\min_{x\in\mathbb{R}^n} \varphi(x)\)的问题,我们无法一步得到全局极小值点\(x^*\),因此采用迭代下降的思路:
- 选取一个初始迭代点\(x^{(0)} \in \mathbb{R}^n\);
- 每一步构造一个下降方向\(p^{(k)}\),使得\(\varphi(x)\)沿\(p^{(k)}\)是下降的;
- 沿\(p^{(k)}\)做一维搜索,找到最优步长\(\alpha_k\),使得\(\varphi(x)\)在该方向上达到最小;
- 更新迭代点\(x^{(k+1)} = x^{(k)} + \alpha_k p^{(k)}\),重复上述步骤直到收敛。
1.1 迭代格式的数学表达
通用迭代格式为:
其中最优步长\(\alpha_k\)满足:
这种求解\(\alpha_k\)的方式,称为精确线搜索。
1.2 最优步长公式的完整推导
我们直接利用上一节证明的二次函数增量展开性质,将\(\varphi(x^{(k)} + \alpha p^{(k)})\)展开为关于\(\alpha\)的一元函数:
推导的核心依据
因为\(A\)是对称正定矩阵,对任意非零向量\(p^{(k)}\),有\((Ap^{(k)}, p^{(k)}) > 0\),因此上式是开口向上的一元二次函数,存在唯一的全局极小值点,且极小值点在一阶导数为0的位置。
对\(\alpha\)求一阶导数:
令一阶导数为0,解关于\(\alpha_k\)的一元一次方程:
移项后得到通用最优步长公式:
关键说明
分母\((Ap^{(k)}, p^{(k)}) > 0\)(\(A\)正定、\(p^{(k)}\neq0\)),因此\(\alpha_k\)始终有定义,不会出现除以0的情况。
二、最速下降法的核心:搜索方向的选择
通用下降法中,\(p^{(k)}\)可以是任意下降方向,而最速下降法的核心,是选择当前点函数值下降最快的方向。
2.1 最速下降方向的理论依据
根据多元函数微分学的基本结论:
- 函数\(\varphi(x)\)在点\(x^{(k)}\)处的梯度方向\(\nabla\varphi(x^{(k)})\),是函数值增长最快的方向;
- 反之,负梯度方向\(-\nabla\varphi(x^{(k)})\),是函数值下降最快的方向,即最速下降方向。
结合上一节证明的梯度公式\(\nabla\varphi(x) = Ax - b\),我们定义残差向量(剩余向量):
残差的物理意义:若\(x^{(k)}\)是方程组的精确解\(x^*\),则\(r^{(k)}=0\),因此残差的大小直接衡量了当前迭代点的误差。
由此,最速下降法的搜索方向为:
即:最速下降法的每一步搜索方向,就是当前点的残差向量。
2.2 最速下降法的专属步长公式
将\(p^{(k)}=r^{(k)}\)代入通用最优步长公式(6.41),推导专属步长:
- 分子部分:\((Ax^{(k)} - b, p^{(k)}) = (Ax^{(k)} - b, r^{(k)}) = (-r^{(k)}, r^{(k)}) = -(r^{(k)}, r^{(k)})\)
- 分母部分:\((Ap^{(k)}, p^{(k)}) = (Ar^{(k)}, r^{(k)})\)
代入(6.41)后,负负得正,得到:
关键说明
分子\((r^{(k)}, r^{(k)}) = \|r^{(k)}\|^2 \geq 0\),分母\((Ar^{(k)}, r^{(k)}) > 0\)(\(A\)正定、\(r^{(k)}\neq0\)),因此\(\alpha_k > 0\),保证了迭代始终沿负梯度方向前进,函数值严格下降。
2.3 最速下降法的完整迭代格式
结合步长与方向,我们得到最速下降法的最终迭代公式:
三、最速下降法的核心性质 严格证明
性质1:相邻两步的搜索方向(残差)相互正交
结论:对任意迭代步\(k\),有\((r^{(k+1)}, r^{(k)}) = 0\)。
详细证明
首先推导残差的更新公式:
计算两个相邻残差的内积:
根据步长公式(6.42),\(\alpha_k (A r^{(k)}, r^{(k)}) = (r^{(k)}, r^{(k)})\),代入上式得:
性质1得证。
几何意义
在二维空间中,迭代路径呈现锯齿形(之字形),每一步的前进方向与上一步垂直。这也是最速下降法收敛慢的直观原因:迭代路径反复震荡,无法直接指向极小值点。
性质2:函数值序列单调下降且有下界,迭代序列收敛到精确解
结论:
- 序列\(\{\varphi(x^{(k)})\}\)严格单调下降,且有下界\(\varphi(x^*)\),因此必有极限\(\lim_{k\to\infty} \varphi(x^{(k)}) = \varphi(x^*)\);
- 迭代序列\(\{x^{(k)}\}\)收敛到方程组的精确解,即\(\lim_{k\to\infty} x^{(k)} = x^* = A^{-1}b\)。
证明
- 单调性:因为\(\alpha_k\)是精确线搜索得到的最优步长,因此\(\varphi(x^{(k+1)}) = \min_{\alpha\in\mathbb{R}} \varphi(x^{(k)}+\alpha r^{(k)}) \leq \varphi(x^{(k)} + 0\cdot r^{(k)}) = \varphi(x^{(k)})\)。当且仅当\(r^{(k)}=0\)(即\(x^{(k)}=x^*\))时取等号,因此未收敛时函数值严格下降。
- 有界性:根据上一节的性质3,对任意\(x\in\mathbb{R}^n\),\(\varphi(x) \geq \varphi(x^*)\),因此序列\(\{\varphi(x^{(k)})\}\)单调下降有下界,根据单调有界定理,必有极限,且极限为全局极小值\(\varphi(x^*)\)。
- 收敛性:结合\(A\)的正定性与\(\varphi(x)-\varphi(x^*) = \frac{1}{2}(A(x-x^*),x-x^*)\),函数值收敛到\(\varphi(x^*)\)等价于\(x^{(k)}\)收敛到\(x^*\)。
四、最速下降法的收敛性分析与核心缺陷
4.1 收敛速度的定量估计
最速下降法的收敛速度由矩阵\(A\)的特征值决定,其收敛性的定量估计为:
其中:
- \(\lambda_1\)、\(\lambda_n\)分别为对称正定矩阵\(A\)的最大、最小特征值;
- \(\| u \|_A = \sqrt{(Au,u)}\),称为向量的A-范数(能量范数),是衡量迭代误差的常用范数。
4.2 条件数对收敛速度的影响
我们定义对称正定矩阵\(A\)的谱条件数:
将收敛因子改写为:
由此可以得到核心结论:
- 当\(\kappa_2(A)=1\)时(\(A\)为单位矩阵的倍数),收敛因子为0,迭代一步即可收敛到精确解,是理想情况;
- 当\(\kappa_2(A)\)很大时(矩阵病态,\(\lambda_1 \gg \lambda_n\)),收敛因子\(\frac{\kappa-1}{\kappa+1} \approx 1\),此时\((\text{收敛因子})^k\)下降极慢,需要成千上万次迭代才能收敛,效率极低。
4.3 其他缺陷
当迭代接近收敛时,残差\(\|r^{(k)}\|\)非常小,此时步长\(\alpha_k\)的计算会受到计算机舍入误差的严重影响,导致迭代不稳定,甚至无法收敛到机器精度的解。
综上,最速下降法虽然直观易懂,但在实际工程中,尤其是大规模、病态的线性方程组求解场景,极少直接使用,这也是我们后续学习共轭梯度法的核心原因——共轭梯度法通过构造共轭方向,彻底解决了最速下降法锯齿震荡、收敛慢的问题。
五、最速下降法的完整算法步骤
| 步骤 | 操作内容 |
|---|---|
| 1 初始化 | 给定对称正定矩阵\(A\)、右端项\(b\)、初始迭代点\(x^{(0)}\)、收敛精度\(\varepsilon\); 计算初始残差\(r^{(0)} = b - Ax^{(0)}\),令迭代次数\(k=0\) |
| 2 收敛判断 | 若\(|r^{(k)}| < \varepsilon\),迭代终止,输出\(x^{(k)}\)作为近似解 |
| 3 计算步长 | 计算\(\alpha_k = \frac{(r^{(k)}, r^{(k)})}{(Ar^{(k)}, r^{(k)})}\) |
| 4 更新迭代点 | 计算\(x^{(k+1)} = x^{(k)} + \alpha_k r^{(k)}\) |
| 5 更新残差 | 计算\(r^{(k+1)} = r^{(k)} - \alpha_k A r^{(k)}\)(或直接用\(r^{(k+1)}=b-Ax^{(k+1)}\)) |
| 6 迭代推进 | 令\(k=k+1\),返回步骤2 |
六、核心知识点归纳总结表
| 模块 | 核心内容 | 关键公式 | 核心说明与约束 |
|---|---|---|---|
| 核心前提 | 问题等价性 | \(Ax=b \iff \min_{x\in\mathbb{R}^n} \varphi(x),\ \varphi(x)=\frac{1}{2}(Ax,x)-(b,x)\) | 仅当\(A\)为实对称正定矩阵时成立,是整个方法的理论基础 |
| 迭代框架 | 通用下降法格式 | \(x^{(k+1)} = x^{(k)} + \alpha_k p^{(k)}\) | 核心是选择下降方向\(p^{(k)}\)与最优步长\(\alpha_k\) |
| 线搜索 | 通用最优步长 | \(\alpha_k = -\frac{(Ax^{(k)} - b, p^{(k)})}{(Ap^{(k)}, p^{(k)})}\) | 由一元二次函数求导取极值得到,保证沿\(p^{(k)}\)方向函数值最小 |
| 最速下降方向 | 负梯度方向(残差) | \(p^{(k)} = -\nabla\varphi(x^{(k)}) = r^{(k)} = b - Ax^{(k)}\) | 负梯度是当前点函数值下降最快的方向,残差为0时迭代收敛 |
| 专属步长 | 最速下降法步长公式 | \(\alpha_k = \frac{(r^{(k)}, r^{(k)})}{(Ar^{(k)}, r^{(k)})}\) | 由搜索方向代入通用步长公式推导得到,步长恒为正 |
| 核心性质 | 相邻残差正交 | \((r^{(k+1)}, r^{(k)}) = 0\) | 导致迭代路径呈锯齿形,是收敛慢的直观原因 |
| 收敛性 | 收敛速度估计 | \(| x^{(k)} - x^* |_A \leq \left( \frac{\kappa-1}{\kappa+1} \right)^k | x^{(0)} - x^* |_A\) | 收敛速度由矩阵条件数\(\kappa\)决定,\(\kappa\)越大,收敛越慢 |
| 算法缺陷 | 实际应用局限 | - | 对病态矩阵收敛极慢,接近收敛时受舍入误差影响大,实际工程中极少直接使用 |
共轭梯度法(CG法) 完整讲解与全链路推导
共轭梯度法是求解大规模稀疏对称正定线性方程组的经典高效算法,它继承了最速下降法的迭代框架,通过构造A-共轭方向彻底解决了最速下降法迭代震荡、收敛慢的核心缺陷,是数值线性代数中应用最广泛的迭代方法之一。
一、CG法的核心出发点:解决最速下降法的本质缺陷
最速下降法每一步仅选择当前点的负梯度方向,虽然单步下降最快,但相邻方向正交,导致迭代路径呈锯齿形震荡,仅能保证单方向的极小值,无法在迭代子空间内达到全局极小,对病态矩阵收敛极慢。
CG法的核心目标是:构造一组搜索方向,使得经过\(k\)步迭代后,迭代点\(x^{(k)}\)在子空间\(\text{span}\{p^{(0)},p^{(1)},\dots,p^{(k-1)}\}\)内,让二次函数\(\varphi(x)\)达到全局极小,即:
从而避免迭代走回头路,实现快速收敛。
二、核心概念:A-共轭(A-正交)向量组
2.1 定义6.5 详细解读
设\(A\)为\(n\)阶实对称正定矩阵,若\(\mathbb{R}^n\)中的向量组\(\{p^{(0)},p^{(1)},\dots,p^{(m)}\}\)满足:
则称该向量组为A-共轭向量组(A-正交向量组)。
2.2 关键性质
- 正交的推广:当\(A=I\)(单位矩阵)时,A-共轭退化为普通欧氏正交,A-共轭是正交概念在矩阵内积下的推广;
- 线性无关性:不含零向量的A-共轭向量组必线性无关,因此\(n\)维空间中最多存在\(n\)个线性无关的A-共轭向量,这是CG法有限步收敛的核心基础;
- 子空间分解性:A-共轭方向能将高维子空间的极小化问题,分解为多个独立的一维极小化问题,是CG法的核心逻辑支撑。
三、A-共轭方向的核心意义:子空间极小化的可分解性
子空间内的任意向量可表示为:
将其代入二次函数\(\varphi(x)\)的增量展开式,得:
要让子空间的全局极小化可分解为对\(y\)和\(\alpha\)的独立极小化,必须消除交叉项的影响,即要求\(\alpha(Ay, p^{(k)})=0\)对所有\(y \in \text{span}\{p^{(0)},\dots,p^{(k-1)}\}\)成立。
由于\(y\)是前\(k\)个方向的任意线性组合,因此必须满足:
即\(p^{(k)}\)与之前所有方向A-共轭。
此时极小化问题可完全分解:
- 对\(y\)的极小化:解为上一步迭代点\(x^{(k)}\)(已在子空间\(\text{span}\{p^{(0)},\dots,p^{(k-1)}\}\)内达到极小);
- 对\(\alpha\)的极小化:退化为一维精确线搜索,与通用下降法一致。
四、CG法核心公式的完整推导
4.1 最优步长\(\alpha_k\)的推导与简化
一维精确线搜索的通用步长公式为:
引入残差向量\(r^{(k)} = b - Ax^{(k)}\)(残差为0时,\(x^{(k)}\)即为精确解),则\(Ax^{(k)}-b = -r^{(k)}\),代入得:
公式简化
首先推导残差的递推公式:
可直接证明\((r^{(k+1)}, p^{(k)})=0\):
代入\(\alpha_k\)的公式(6.47),两项抵消,结果为0,即当前步残差与上一步搜索方向正交。
CG法的搜索方向构造为\(p^{(k)} = r^{(k)} + \beta_{k-1} p^{(k-1)}\),因此:
由上述正交结论,\((r^{(k)}, p^{(k-1)})=0\),因此\((r^{(k)}, p^{(k)}) = (r^{(k)}, r^{(k)})\)。
代入(6.47),得到简化后的步长公式:
该公式仅需计算残差的内积,大幅简化计算;且当\(r^{(k)} \neq 0\)时,分子\(\|r^{(k)}\|^2>0\),分母因\(A\)正定恒正,因此\(\alpha_k>0\),保证函数值严格下降。
4.2 共轭方向与系数\(\beta_k\)的推导与简化
4.2.1 \(\beta\)的初始公式
我们构造第\(k\)步的搜索方向为当前残差与上一步方向的线性组合:
根据A-共轭的核心要求\((p^{(k)}, Ap^{(k-1)})=0\),代入上式展开:
解得:
4.2.2 \(\beta\)的简化公式(Fletcher-Reeves公式)
从残差递推公式(6.50)可变形得到:\(Ap^{(k)} = \frac{r^{(k)} - r^{(k+1)}}{\alpha_k}\),将其代入\(\beta_k\)的表达式(对应\(p^{(k+1)}\)的系数):
分子化简:
由后续证明的残差正交性,\((r^{(k+1)}, r^{(k)})=0\),因此分子化简为:
分母化简:
由步长公式(6.51),\(\alpha_k (p^{(k)}, Ap^{(k)}) = (r^{(k)}, r^{(k)})\),代入后最终得到:
该公式是CG法的核心简化成果,仅需计算相邻两步残差的内积,无需额外的矩阵-向量乘积,计算量极低;且当\(r^{(k+1)} \neq 0\)时,\(\beta_k>0\),保证方向构造的合理性。
五、核心定理6.16 完整证明
定理内容
由CG算法得到的序列\(\{r^{(k)}\}\)和\(\{p^{(k)}\}\)满足:
- 残差正交性:\((r^{(i)}, r^{(j)})=0\ (i \neq j)\),即\(\{r^{(k)}\}\)是\(\mathbb{R}^n\)中的正交向量组;
- 方向A-共轭性:\((Ap^{(i)}, p^{(j)})=0\ (i \neq j)\),即\(\{p^{(k)}\}\)是A-共轭向量组。
证明(数学归纳法)
1. 初始步验证(\(k=0\))
初始值:\(r^{(0)}=b-Ax^{(0)}\),\(p^{(0)}=r^{(0)}\),\(\alpha_0 = \frac{(r^{(0)},r^{(0)})}{(r^{(0)},Ar^{(0)})}\)。
- 残差正交性:\(r^{(1)} = r^{(0)} - \alpha_0 Ar^{(0)}\),因此\((r^{(0)}, r^{(1)}) = (r^{(0)},r^{(0)}) - \alpha_0 (r^{(0)},Ar^{(0)}) = 0\),成立;
- 方向A-共轭性:\(p^{(1)} = r^{(1)} + \beta_0 p^{(0)}\),代入\(\beta_0\)的公式可直接验证\((p^{(1)}, Ap^{(0)})=0\),成立。
2. 归纳假设
假设\(r^{(0)},r^{(1)},\dots,r^{(k)}\)两两正交,\(p^{(0)},p^{(1)},\dots,p^{(k)}\)两两A-共轭,现证明\(k+1\)步时性质仍成立。
3. 残差正交性证明
对任意\(j \leq k\),由残差递推公式:
- 当\(j=k\)时,\((r^{(k)},r^{(k)}) = \alpha_k (Ap^{(k)},p^{(k)}) = \alpha_k (Ap^{(k)},r^{(k)})\),因此两项抵消,结果为0;
- 当\(j<k\)时,由归纳假设\((r^{(k)}, r^{(j)})=0\),且\(r^{(j)} = p^{(j)} - \beta_{j-1}p^{(j-1)}\),结合A-共轭性,\((Ap^{(k)}, r^{(j)})=0\),因此结果为0。
综上,\(r^{(k+1)}\)与所有\(r^{(j)}\ (j \leq k)\)正交,残差正交性得证。
4. 方向A-共轭性证明
对任意\(j \leq k\),由方向构造公式:
- 当\(j=k\)时,\(\beta_k\)的定义就是保证该项为0,成立;
- 当\(j<k\)时,由归纳假设\((Ap^{(k)}, p^{(j)})=0\),且\(Ap^{(j)} = \frac{r^{(j)} - r^{(j+1)}}{\alpha_j}\),结合残差正交性,\((Ar^{(k+1)}, p^{(j)})=(r^{(k+1)}, Ap^{(j)})=0\),因此结果为0。
综上,\(p^{(k+1)}\)与所有\(p^{(j)}\ (j \leq k)\)A-共轭,方向A-共轭性得证。
六、完整共轭梯度法(CG算法)流程
| 步骤 | 操作内容 |
|---|---|
| 1 初始化 | 任取初始迭代点\(x^{(0)} \in \mathbb{R}^n\); 计算初始残差\(r^{(0)} = b - Ax^{(0)}\); 取初始搜索方向\(p^{(0)} = r^{(0)}\); 设定收敛精度\(\varepsilon\),令\(k=0\) |
| 2 收敛判断 | 若\(|r^{(k)}| < \varepsilon\),迭代终止,输出\(x^{(k)}\)作为近似解 |
| 3 计算步长 | \(\alpha_k = \frac{(r^{(k)}, r^{(k)})}{(p^{(k)}, Ap^{(k)})}\) |
| 4 更新迭代点 | \(x^{(k+1)} = x^{(k)} + \alpha_k p^{(k)}\) |
| 5 更新残差 | \(r^{(k+1)} = r^{(k)} - \alpha_k Ap^{(k)}\) |
| 6 计算方向系数 | \(\beta_k = \frac{(r^{(k+1)}, r^{(k+1)})}{(r^{(k)}, r^{(k)})}\) |
| 7 更新搜索方向 | \(p^{(k+1)} = r^{(k+1)} + \beta_k p^{(k)}\) |
| 8 迭代推进 | 令\(k=k+1\),返回步骤2 |
七、CG法的核心性质与收敛性
7.1 有限步收敛性
\(n\)维空间中最多存在\(n\)个两两正交的非零向量,因此残差序列\(\{r^{(k)}\}\)最多迭代\(n\)步必出现\(r^{(n)}=0\),即无舍入误差的理想情况下,CG法最多\(n\)步即可得到方程组的精确解。
从该角度看,CG法是一种直接法;但实际计算中,舍入误差会破坏残差的正交性,且大规模问题中仅需迭代远小于\(n\)的步数即可达到精度要求,因此工程中CG法被当作高效迭代法使用。
7.2 收敛速度估计
CG法的收敛速度由矩阵\(A\)的谱条件数\(K=\text{cond}(A)_2=\frac{\lambda_{\text{max}}(A)}{\lambda_{\text{min}}(A)}\)决定,误差的能量范数估计为:
其中\(\|u\|_A = \sqrt{(Au,u)}\)为向量的能量范数。
与最速下降法的核心对比
最速下降法的收敛因子为\(\frac{K-1}{K+1}\),而CG法的收敛因子为\(\frac{\sqrt{K}-1}{\sqrt{K}+1}\),收敛速度提升一个数量级。例如当\(K=100\)时,最速下降法收敛因子约为0.98,CG法仅为0.818,误差下降速度差距显著。
八、核心知识点归纳总结表
| 模块 | 核心内容 | 关键公式 | 核心说明与约束 |
|---|---|---|---|
| 理论根基 | 问题等价性 | \(Ax=b \iff \min_{x\in\mathbb{R}^n} \varphi(x),\ \varphi(x)=\frac{1}{2}(Ax,x)-(b,x)\) | 仅适用于实对称正定矩阵\(A\),是算法的理论基础 |
| 核心概念 | A-共轭向量组 | \((Ap^{(i)}, p^{(j)})=0,\ i\neq j\) | 普通正交的推广,保证子空间极小化可分解,避免迭代震荡 |
| 迭代框架 | 通用下降格式 | \(x^{(k+1)} = x^{(k)} + \alpha_k p^{(k)}\) | 与最速下降法框架一致,核心差异为搜索方向的构造 |
| 最优步长 | CG法步长公式 | \(\alpha_k = \frac{(r^{(k)}, r^{(k)})}{(p^{(k)}, Ap^{(k)})}\) | 精确线搜索推导,利用残差正交性简化,保证函数值严格下降 |
| 搜索方向 | 共轭方向构造 | \(p^{(k+1)} = r^{(k+1)} + \beta_k p^{(k)}\) | 当前残差与上一步方向的线性组合,保证A-共轭性 |
| 方向系数 | FR简化公式 | \(\beta_k = \frac{(r^{(k+1)}, r^{(k+1)})}{(r^{(k)}, r^{(k)})}\) | 仅需残差内积,计算量极小,是算法高效的核心 |
| 残差更新 | 递推公式 | \(r^{(k+1)} = r^{(k)} - \alpha_k Ap^{(k)}\) | 避免重复计算\(Ax^{(k+1)}\),减少矩阵-向量乘积次数 |
| 核心性质 | 残差正交性 | \((r^{(i)}, r^{(j)})=0,\ i\neq j\) | 有限步收敛的核心,也是公式简化的基础 |
| 核心性质 | 方向A-共轭性 | \((Ap^{(i)}, p^{(j)})=0,\ i\neq j\) | 保证子空间全局极小,无迭代回头路 |
| 收敛性 | 有限步收敛 | 理想情况下最多\(n\)步收敛到精确解 | 区别于最速下降法的核心优势 |
| 收敛速度 | 误差估计 | \(|x^{(k)}-x^*|_A \leq 2\left(\frac{\sqrt{K}-1}{\sqrt{K}+1}\right)^k |x^{(0)}-x^*|_A\) | 收敛速度由条件数的平方根决定,远快于最速下降法 |
| 应用场景 | 大规模稀疏对称正定方程组 | 有限元分析、计算流体力学、凸优化等 | 该类问题的首选求解算法,计算效率高,存储需求低 |
共轭梯度法算例 全步骤详解与结果分析
本例题是共轭梯度法(CG法)的经典二维验证算例,完整展示了CG法的迭代流程、有限步收敛特性,同时对比了最速下降法的核心缺陷,以下为全链路无跳步详解。
一、算例基础信息
待求解线性方程组:
对应的矩阵形式为 \(Ax=b\),其中:
- 系数矩阵 \(A=\begin{pmatrix} 3 & 1 \\ 1 & 2 \end{pmatrix}\),右端项 \(b=\begin{pmatrix} 5 \\ 5 \end{pmatrix}\);
- 前提验证:\(A\) 满足对称正定(对称性:\(A^T=A\);正定性:一阶顺序主子式\(3>0\),二阶顺序主子式\(3\times2-1\times1=5>0\)),符合CG法的使用条件。
二、共轭梯度法 全步骤详细计算
取初始迭代点 \(x^{(0)}=(0,0)^T\),严格按照CG算法流程迭代计算:
第1步:初始化(\(k=0\))
- 计算初始残差:\[r^{(0)} = b - Ax^{(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步:计算最优步长 \(\alpha_0\)
CG法步长公式:\(\alpha_k = \frac{(r^{(k)}, r^{(k)})}{(Ap^{(k)}, p^{(k)})}\)
- 分子(残差内积):\((r^{(0)}, r^{(0)}) = 5\times5 + 5\times5 = 50\)
- 分母(矩阵内积):先计算 \(Ap^{(0)} = \begin{pmatrix}3&1\\1&2\end{pmatrix}\begin{pmatrix}5\\5\end{pmatrix} = \begin{pmatrix}20\\15\end{pmatrix}\),因此 \((Ap^{(0)}, p^{(0)}) = 20\times5 + 15\times5 = 175\)
- 步长结果:\(\alpha_0 = \frac{50}{175} = \frac{2}{7}\)
第3步:更新迭代点 \(x^{(1)}\)
迭代公式:\(x^{(k+1)} = x^{(k)} + \alpha_k p^{(k)}\)
第4步:更新残差 \(r^{(1)}\)
残差递推公式:\(r^{(k+1)} = r^{(k)} - \alpha_k Ap^{(k)}\)
第5步:计算方向系数 \(\beta_0\)
CG法系数公式:\(\beta_k = \frac{(r^{(k+1)}, r^{(k+1)})}{(r^{(k)}, r^{(k)})}\)
- 分子:\((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}\)
第6步:更新搜索方向 \(p^{(1)}\)
方向递推公式:\(p^{(k+1)} = r^{(k+1)} + \beta_k p^{(k)}\)
第7步:计算第二步步长 \(\alpha_1\)
- 分子:\((r^{(1)}, r^{(1)})=\frac{50}{49}\)
- 分母:先计算 \(Ap^{(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}\),因此 \((Ap^{(1)}, p^{(1)}) = (-\frac{50}{49})(-\frac{30}{49}) + (\frac{50}{49})(\frac{40}{49}) = \frac{3500}{2401}\)
- 步长结果:\(\alpha_1 = \frac{\frac{50}{49}}{\frac{3500}{2401}} = \frac{7}{10}\)
第8步:更新迭代点 \(x^{(2)}\)(得到精确解)
收敛验证
计算残差 \(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}\),迭代终止,\(x^{(2)}=(1,2)^T\) 为方程组的精确解。
三、迭代过程可视化分析(图6-4)
二次函数 \(\varphi(x)=\frac{1}{2}(Ax,x)-(b,x)\) 的几何意义是以方程组解为中心的超椭球面(二维下为椭圆),极小值点对应椭圆中心,也就是方程组的解。
| 图像 | 方法 | 核心特征 |
|---|---|---|
| (a)(b) | 共轭梯度法 | 迭代路径仅2步:第一步从初始点沿初始残差方向走到\(x^{(1)}\),第二步沿A-共轭方向直接指向椭圆中心(精确解),无震荡,完美验证了n维问题最多n步收敛的特性 |
| (c)(d) | 最速下降法 | 第一步与CG法完全一致(初始搜索方向均为负梯度),但后续迭代沿正交的负梯度方向走锯齿形路径,在解的附近反复震荡,收敛速度极慢,放大图可看到其在解附近需要大量迭代才能收敛 |
四、核心结论与拓展
- CG法的核心优势:本算例直观验证了CG法的有限步收敛性——无舍入误差的理想情况下,n维线性方程组最多n步即可得到精确解,彻底解决了最速下降法迭代震荡、收敛慢的缺陷。
- 收敛性的限制:当系数矩阵\(A\)的谱条件数\(K\gg1\)(病态矩阵)时,CG法的收敛速度会显著变慢,收敛因子为\(\frac{\sqrt{K}-1}{\sqrt{K}+1}\),\(K\)越大,收敛越慢。
- 工程优化方案:为改善病态矩阵下的收敛性,工程中普遍采用预处理共轭梯度法(PCG),通过预处理矩阵降低原矩阵的条件数,大幅提升CG法的收敛效率,是大规模稀疏对称正定方程组的首选求解算法。
posted on 2026-03-01 17:45 Indian_Mysore 阅读(0) 评论(0) 收藏 举报
浙公网安备 33010602011771号