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

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

 

7.7非线性方程组的数值解法

非线性方程组的数值解法 深度讲解与推导证明

各位同学,今天我们进入数值分析中更具工程价值、也更复杂的内容——非线性方程组的数值解法。我们之前学习的单个非线性方程求根,是n=1的特殊情况;而工程中的绝大多数问题,比如结构力学、流体仿真、电路设计、机器学习优化等,最终都归结为求解多变量的非线性方程组。

非线性方程组的求解,无论是理论上的解的存在性、唯一性,还是数值解法的收敛性、稳定性,都远比线性方程组和单个非线性方程复杂。今天我们先从基础定义、解的特性,以及核心工具——雅可比矩阵,进行完整的讲解与推导。


一、非线性方程组的基本定义与向量表示

1.1 标量形式的非线性方程组

我们考虑含有n个未知数、n个方程的方程组:

\[\begin{cases} f_1(x_1, x_2, \dots, x_n) = 0, \\ f_2(x_1, x_2, \dots, x_n) = 0, \\ \quad\quad\quad\vdots \\ f_n(x_1, x_2, \dots, x_n) = 0, \end{cases} \tag{7.31} \]

其中,\(f_1,f_2,\dots,f_n\) 都是定义在n维空间区域上的多元函数。

非线性方程组的定义:当 \(n\geq2\),且 \(f_1,f_2,\dots,f_n\)至少有一个是关于自变量 \(x_1,x_2,\dots,x_n\) 的非线性函数时,称(7.31)为非线性方程组。

  • 线性函数:仅包含自变量的一次项,形如 \(a_1x_1+a_2x_2+\dots+a_nx_n+b\)
  • 非线性函数:包含自变量的高次项(如 \(x_1^2, x_1x_2\))、超越项(如 \(\sin x_1, e^{x_2}\))等无法表示为一次线性组合的项。

1.2 向量形式的统一表示

为了将单个非线性方程的求根方法推广到方程组,我们引入向量记号,将标量方程组改写为紧凑的向量形式:

  1. 定义n维自变量列向量:\(\boldsymbol{x} = (x_1, x_2, \dots, x_n)^T \in \mathbb{R}^n\)
  2. 定义n维向量值函数:\(\boldsymbol{F}(\boldsymbol{x}) = \left(f_1(\boldsymbol{x}), f_2(\boldsymbol{x}), \dots, f_n(\boldsymbol{x})\right)^T\)

此时,非线性方程组(7.31)可以完全等价地写为:

\[\boldsymbol{F}(\boldsymbol{x}) = \boldsymbol{0} \tag{7.32} \]

这个形式上的统一是核心突破:单个非线性方程是 \(f(x)=0\)(标量函数=0),非线性方程组是 \(\boldsymbol{F}(\boldsymbol{x})=\boldsymbol{0}\)(向量值函数=0),二者形式完全一致。我们只需要把标量的导数,替换为向量值函数的导数(雅可比矩阵),就可以将牛顿法、不动点迭代等成熟方法,直接推广到非线性方程组的求解。


二、非线性方程组与线性方程组的核心差异

线性方程组是我们已经熟悉的内容,而非线性方程组的求解难度,本质来源于二者在解的特性上的根本区别,我们用表格清晰对比:

特性 线性方程组 \(\boldsymbol{Ax}=\boldsymbol{b}\) 非线性方程组 \(\boldsymbol{F}(\boldsymbol{x})=\boldsymbol{0}\)
解的存在性 有通用充要条件:系数矩阵的秩 = 增广矩阵的秩 无通用的充要判定条件,只能针对具体问题分析
解的个数 仅3种可能:无解、唯一解、无穷多解 可能性无限:无解、1个解、2个解、有限个解、无穷多解
求解方法 有直接法(高斯消元、LU分解),可得到精确解(无舍入误差时) 无直接解法,只能用迭代法,仅能得到近似解
收敛性 迭代法的收敛性仅由系数矩阵决定,与初值无关 迭代法的收敛性高度依赖初值的选择,仅局部收敛

例7.13就是对非线性方程组解的多样性的最直观展示,我们接下来进行完整的推导与分析。


三、经典例题解析(例7.13):含参数二元非线性方程组的解的完整推导

3.1 问题描述

求xOy平面上两条抛物线 \(y = x^2 + \alpha\)\(x = y^2 + \alpha\) 的交点,等价于求解二元非线性方程组:

\[\begin{cases} f_1(x,y) = y - x^2 - \alpha = 0 \\ f_2(x,y) = x - y^2 - \alpha = 0 \end{cases} \]

我们将完整推导不同参数 \(\alpha\) 下,方程组解的个数与具体形式。

3.2 方程组的化简与分解

两个方程相减,消去参数 \(\alpha\),得到:

\[(y - x^2) - (x - y^2) = 0 \]

整理等式左边:

\[y - x + y^2 - x^2 = (y - x) + (y - x)(y + x) = 0 \]

提取公因子 \((y-x)\),得到核心分解式:

\[\boldsymbol{(y - x)(1 + x + y) = 0} \]

因此,方程组的解必然满足以下两种情况之一,我们分别求解:

情况1:\(y = x\)(两条抛物线关于直线 \(y=x\) 对称,交点必然在对称轴上)

\(y=x\) 代入第一个方程,得到一元二次方程:

\[x = x^2 + \alpha \implies x^2 - x + \alpha = 0 \]

其判别式为 \(\Delta_1 = 1^2 - 4 \cdot 1 \cdot \alpha = 1 - 4\alpha\),根据判别式的符号分析解的情况:

  • \(\Delta_1 < 0\)(即 \(\alpha > \frac{1}{4}\)):无实根,该情况无实解;
  • \(\Delta_1 = 0\)(即 \(\alpha = \frac{1}{4}\)):有唯一实根 \(x = \frac{1}{2}\),对应解为 \(x=y=\frac{1}{2}\)
  • \(\Delta_1 > 0\)(即 \(\alpha < \frac{1}{4}\)):有两个实根 \(x = \frac{1 \pm \sqrt{1-4\alpha}}{2}\),对应解为 \(x=y=\frac{1 \pm \sqrt{1-4\alpha}}{2}\)

情况2:\(1 + x + y = 0\),即 \(y = -x -1\)(两条抛物线的非对称交点)

\(y=-x-1\) 代入第一个方程,得到一元二次方程:

\[-x -1 = x^2 + \alpha \implies x^2 + x + (\alpha + 1) = 0 \]

其判别式为 \(\Delta_2 = 1^2 - 4 \cdot 1 \cdot (\alpha + 1) = -3 - 4\alpha\),根据判别式的符号分析解的情况:

  • \(\Delta_2 < 0\)(即 \(\alpha > -\frac{3}{4}\)):无实根,该情况无实解;
  • \(\Delta_2 = 0\)(即 \(\alpha = -\frac{3}{4}\)):有唯一实根 \(x = -\frac{1}{2}\),对应解为 \(x=y=-\frac{1}{2}\),该解同时满足情况1的 \(y=x\),属于重根;
  • \(\Delta_2 > 0\)(即 \(\alpha < -\frac{3}{4}\)):有两个实根 \(x = \frac{-1 \pm \sqrt{-3-4\alpha}}{2}\),对应解为 \(y=-x-1\)

3.3 不同参数下的解的汇总分析

我们将两种情况的解合并,得到不同 \(\alpha\) 下的解的完整结果:

  1. \(\alpha = \frac{1}{2}\)\(\Delta_1=-1<0\)\(\Delta_2=-5<0\),无实解,两条抛物线无交点;
  2. \(\alpha = \frac{1}{4}\)\(\Delta_1=0\),有唯一解 \(x=y=\frac{1}{2}\)\(\Delta_2=-4<0\),无额外解,总共有1个解,两条抛物线相切;
  3. \(\alpha = 0\)\(\Delta_1=1>0\),有两个解 \(x=y=0\)\(x=y=1\)\(\Delta_2=-3<0\),无额外解,总共有2个解;
  4. \(\alpha = -1\)\(\Delta_1=5>0\),有两个解 \(x=y=\frac{1\pm\sqrt{5}}{2}\)\(\Delta_2=1>0\),有两个解 \((0,-1)\)\((-1,0)\),总共有4个解。

这个例子完美验证了非线性方程组解的多样性:仅通过调整一个参数,解的个数就可以从0到1到2到4,这是线性方程组永远不可能出现的特性。


四、向量值函数的导数:雅可比矩阵的推导与核心意义

要将单变量的牛顿法推广到非线性方程组,核心是解决「向量值函数的导数是什么」的问题,答案就是雅可比矩阵,它是非线性方程组数值解法的核心工具。

4.1 从单变量导数到多元向量函数的导数

我们先回顾单变量可微函数的导数与一阶泰勒展开:
对于标量函数 \(f(x)\),在点 \(x_k\) 处的一阶泰勒展开为:

\[f(x_k + \Delta x) \approx f(x_k) + f'(x_k) \cdot \Delta x \]

其中导数 \(f'(x_k)\) 描述了函数值随自变量的变化率,实现了非线性函数的局部线性化。

对于n维向量值函数 \(\boldsymbol{F}(\boldsymbol{x})\),我们同样希望实现局部线性化:在点 \(\boldsymbol{x}_k\) 处,用线性变换近似非线性的向量函数。对每个分量函数 \(f_i(\boldsymbol{x})\),做多元函数的一阶泰勒展开(忽略高阶无穷小):

\[f_i(\boldsymbol{x}_k + \Delta \boldsymbol{x}) \approx f_i(\boldsymbol{x}_k) + \frac{\partial f_i(\boldsymbol{x}_k)}{\partial x_1}\Delta x_1 + \frac{\partial f_i(\boldsymbol{x}_k)}{\partial x_2}\Delta x_2 + \dots + \frac{\partial f_i(\boldsymbol{x}_k)}{\partial x_n}\Delta x_n \]

将n个分量的展开式写成矩阵乘法的形式:

\[\boldsymbol{F}(\boldsymbol{x}_k + \Delta \boldsymbol{x}) \approx \boldsymbol{F}(\boldsymbol{x}_k) + \boldsymbol{J}(\boldsymbol{x}_k) \cdot \Delta \boldsymbol{x} \]

其中的n×n矩阵 \(\boldsymbol{J}(\boldsymbol{x}_k)\),就是向量值函数 \(\boldsymbol{F}(\boldsymbol{x})\) 在点 \(\boldsymbol{x}_k\) 处的雅可比矩阵,也记作 \(\boldsymbol{F}'(\boldsymbol{x})\),即向量值函数的导数。

4.2 雅可比矩阵的严格定义

对于向量值函数 \(\boldsymbol{F}(\boldsymbol{x})=(f_1(\boldsymbol{x}),f_2(\boldsymbol{x}),\dots,f_n(\boldsymbol{x}))^T\),其雅可比矩阵定义为:

\[\boldsymbol{F}'(\boldsymbol{x}) = \boldsymbol{J}(\boldsymbol{x}) = \begin{pmatrix} \frac{\partial f_1(\boldsymbol{x})}{\partial x_1} & \frac{\partial f_1(\boldsymbol{x})}{\partial x_2} & \dots & \frac{\partial f_1(\boldsymbol{x})}{\partial x_n} \\ \frac{\partial f_2(\boldsymbol{x})}{\partial x_1} & \frac{\partial f_2(\boldsymbol{x})}{\partial x_2} & \dots & \frac{\partial f_2(\boldsymbol{x})}{\partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial f_n(\boldsymbol{x})}{\partial x_1} & \frac{\partial f_n(\boldsymbol{x})}{\partial x_2} & \dots & \frac{\partial f_n(\boldsymbol{x})}{\partial x_n} \end{pmatrix} \tag{7.33} \]

4.3 雅可比矩阵的核心特性与意义

  1. 结构特性:雅可比矩阵的第i行,是第i个分量函数 \(f_i(\boldsymbol{x})\) 的梯度向量 \(\nabla f_i(\boldsymbol{x})\) 的转置;第j列,是所有分量函数对第j个自变量 \(x_j\) 的偏导数。
  2. 核心作用:实现了非线性向量函数的局部线性化,和单变量导数的作用完全等价:
    • 单变量:\(f(x) \approx f(x_k) + f'(x_k)(x-x_k)\)
    • 多变量:\(\boldsymbol{F}(\boldsymbol{x}) \approx \boldsymbol{F}(\boldsymbol{x}_k) + \boldsymbol{J}(\boldsymbol{x}_k)(\boldsymbol{x}-\boldsymbol{x}_k)\)
  3. 收敛性的核心条件:单变量牛顿法要求 \(f'(x^*) \neq 0\)(导数非零),对应非线性方程组牛顿法,要求雅可比矩阵 \(\boldsymbol{J}(\boldsymbol{x}^*)\) 在解 \(\boldsymbol{x}^*\)非奇异(可逆),这是迭代法局部收敛的核心条件。
  4. 几何意义:雅可比矩阵描述了向量函数 \(\boldsymbol{F}\) 在点 \(\boldsymbol{x}\) 处的局部线性变换,将自变量空间的微小向量 \(\Delta \boldsymbol{x}\),映射到函数值空间的微小向量 \(\Delta \boldsymbol{F}\),是多元函数在该点的切空间的线性变换矩阵。

五、核心知识点归纳总结表

核心概念 定义与公式 核心意义 关键特性
非线性方程组(标量形式) \(\begin{cases}f_1(x_1,\dots,x_n)=0\\\vdots\\f_n(x_1,\dots,x_n)=0\end{cases}\),至少一个\(f_i\)为非线性函数 描述n个变量之间的非线性约束关系,是工程问题的核心数学模型 解的个数无固定规律,无通用直接解法
非线性方程组(向量形式) \(\boldsymbol{F}(\boldsymbol{x}) = \boldsymbol{0}\)\(\boldsymbol{F}=(f_1,\dots,f_n)^T\)\(\boldsymbol{x}=(x_1,\dots,x_n)^T\) 将标量方程组统一为向量形式,实现单变量求根方法到多变量的推广 与单变量非线性方程\(f(x)=0\)形式完全一致,便于方法迁移
雅可比矩阵 \(\boldsymbol{J}(\boldsymbol{x}) = \left(\frac{\partial f_i}{\partial x_j}\right)_{n\times n}\) 向量值函数的导数,非线性方程组局部线性化的核心工具 第i行为\(f_i\)的梯度转置,可逆性决定了牛顿法的收敛性
线性与非线性方程组的核心区别 线性:\(\boldsymbol{Ax}=\boldsymbol{b}\);非线性:\(\boldsymbol{F}(\boldsymbol{x})=\boldsymbol{0}\) 明确二者求解难度的本质差异 线性方程组解的个数仅3种可能,有直接解法;非线性方程组解的个数无限制,仅能迭代求解
例7.13解的特性 方程组\(\begin{cases}y=x^2+\alpha\\x=y^2+\alpha\end{cases}\) 直观展示非线性方程组解的多样性 随参数\(\alpha\)变化,解的个数可从0到1到2到4,线性方程组无此特性

非线性方程组的不动点迭代法 深度讲解与推导证明

各位同学,今天我们系统讲解非线性方程组求解的基础方法——不动点迭代法。它是单变量不动点迭代法在多变量场景的直接推广,也是理解后续牛顿法等更高效算法的基础。我们将从核心原理、收敛性定理、例题实操三个维度,完整拆解这个方法。


一、不动点迭代法的基本原理

1.1 方程组的等价改写与不动点定义

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

\[\boldsymbol{F}(\boldsymbol{x}) = \boldsymbol{0} \tag{7.32} \]

和单变量非线性方程求根的思路一致,我们将方程组等价改写为便于迭代的不动点形式:

\[\boldsymbol{x} = \boldsymbol{\Phi}(\boldsymbol{x}) \tag{7.34} \]

其中 \(\boldsymbol{\Phi}: D \subset \mathbb{R}^n \to \mathbb{R}^n\) 是定义在区域 \(D\) 上的n维向量值函数,称为迭代函数

不动点的定义

若存在向量 \(\boldsymbol{x}^* \in D\),满足 \(\boldsymbol{x}^* = \boldsymbol{\Phi}(\boldsymbol{x}^*)\),则称 \(\boldsymbol{x}^*\) 是迭代函数 \(\boldsymbol{\Phi}\)不动点
显然,不动点 \(\boldsymbol{x}^*\) 就是原非线性方程组 \(\boldsymbol{F}(\boldsymbol{x})=\boldsymbol{0}\) 的解,二者完全等价。

1.2 不动点迭代的迭代格式

基于不动点形式(7.34),我们构造迭代公式:

\[\boldsymbol{x}^{(k+1)} = \boldsymbol{\Phi}(\boldsymbol{x}^{(k)}), \quad k=0,1,2,\dots \tag{7.35} \]

这个迭代过程的逻辑是:

  1. 选取初始迭代向量 \(\boldsymbol{x}^{(0)} \in D\)
  2. 代入迭代函数 \(\boldsymbol{\Phi}\),得到第1步迭代值 \(\boldsymbol{x}^{(1)}=\boldsymbol{\Phi}(\boldsymbol{x}^{(0)})\)
  3. 反复代入迭代,生成向量序列 \(\{\boldsymbol{x}^{(k)}\}\)
  4. 若序列收敛,即 \(\lim_{k \to \infty} \boldsymbol{x}^{(k)} = \boldsymbol{x}^*\),对迭代式两边取极限,由 \(\boldsymbol{\Phi}\) 的连续性可得:

    \[\boldsymbol{x}^* = \lim_{k \to \infty} \boldsymbol{x}^{(k+1)} = \lim_{k \to \infty} \boldsymbol{\Phi}(\boldsymbol{x}^{(k)}) = \boldsymbol{\Phi}(\lim_{k \to \infty} \boldsymbol{x}^{(k)}) = \boldsymbol{\Phi}(\boldsymbol{x}^*) \]

    即极限 \(\boldsymbol{x}^*\) 就是不动点,也就是原方程组的解。

二、不动点迭代的收敛性定理

不动点迭代的核心问题是:迭代序列在什么条件下收敛?收敛速度由什么决定? 我们分别从全局收敛局部收敛两个维度,给出严格的定理与推导。

2.1 全局收敛定理:压缩映射原理(定理7.7)

压缩映射原理是不动点迭代的核心理论基础,它给出了迭代全局收敛的充要条件,也是泛函分析中最基础的定理之一。

定理7.7 完整表述

设迭代函数 \(\boldsymbol{\Phi}\) 定义在区域 \(D \subset \mathbb{R}^n\) 上,满足以下两个条件:

  1. 压缩条件:存在闭集 \(D_0 \subset D\) 及常数 \(L \in (0,1)\),使得对任意 \(\boldsymbol{x},\boldsymbol{y} \in D_0\),有

    \[\|\boldsymbol{\Phi}(\boldsymbol{x}) - \boldsymbol{\Phi}(\boldsymbol{y})\| \leq L \|\boldsymbol{x} - \boldsymbol{y}\| \tag{7.36} \]

    \(\|\cdot\|\) 为任意相容的向量范数,如1范数、∞范数、2范数)
  2. 自映射条件:对任意 \(\boldsymbol{x} \in D_0\),有 \(\boldsymbol{\Phi}(\boldsymbol{x}) \in D_0\)(即 \(\boldsymbol{\Phi}\)\(D_0\) 映射到自身)。

则有以下结论:

  1. 存在唯一性\(\boldsymbol{\Phi}\)\(D_0\) 内有唯一的不动点 \(\boldsymbol{x}^*\)
  2. 全局收敛性:对任意初始值 \(\boldsymbol{x}^{(0)} \in D_0\),由迭代式(7.35)生成的序列 \(\{\boldsymbol{x}^{(k)}\}\) 都收敛到不动点 \(\boldsymbol{x}^*\)
  3. 误差估计:有先验误差估计式

    \[\|\boldsymbol{x}^* - \boldsymbol{x}^{(k)}\| \leq \frac{L^k}{1-L} \|\boldsymbol{x}^{(1)} - \boldsymbol{x}^{(0)}\| \]

定理的核心解读与推导

  1. 压缩映射的意义:压缩条件本质是「映射后两点的距离严格小于映射前的距离」,迭代过程中,序列的相邻两项的距离会以指数级缩小,最终收敛到唯一的不动点。常数 \(L\) 称为压缩系数\(L\) 越小,收敛速度越快。
  2. 存在性证明
    对任意初始值 \(\boldsymbol{x}^{(0)} \in D_0\),由自映射条件,序列 \(\{\boldsymbol{x}^{(k)}\}\) 全部落在 \(D_0\) 内。
    由压缩条件,对任意正整数 \(m\),有:

    \[\|\boldsymbol{x}^{(k+m)} - \boldsymbol{x}^{(k)}\| \leq \sum_{i=k}^{k+m-1} \|\boldsymbol{x}^{(i+1)} - \boldsymbol{x}^{(i)}\| \leq \sum_{i=k}^{k+m-1} L^i \|\boldsymbol{x}^{(1)} - \boldsymbol{x}^{(0)}\| \]

    这是等比数列求和,公比 \(L<1\),因此当 \(k \to \infty\) 时,右边趋近于0,说明 \(\{\boldsymbol{x}^{(k)}\}\) 是柯西序列。
    又因为 \(D_0\) 是闭集,柯西序列的极限 \(\boldsymbol{x}^*\) 一定在 \(D_0\) 内,对迭代式取极限可得 \(\boldsymbol{x}^* = \boldsymbol{\Phi}(\boldsymbol{x}^*)\),即不动点存在。
  3. 唯一性证明
    假设 \(D_0\) 内有两个不动点 \(\boldsymbol{x}^*\)\(\boldsymbol{y}^*\),则:

    \[\|\boldsymbol{x}^* - \boldsymbol{y}^*\| = \|\boldsymbol{\Phi}(\boldsymbol{x}^*) - \boldsymbol{\Phi}(\boldsymbol{y}^*)\| \leq L \|\boldsymbol{x}^* - \boldsymbol{y}^*\| \]

    移项得 \((1-L)\|\boldsymbol{x}^* - \boldsymbol{y}^*\| \leq 0\),因为 \(L<1\),所以只能 \(\|\boldsymbol{x}^* - \boldsymbol{y}^*\|=0\),即 \(\boldsymbol{x}^*=\boldsymbol{y}^*\),不动点唯一。
  4. 误差估计式推导
    \(\|\boldsymbol{x}^{(k+1)} - \boldsymbol{x}^{(k)}\| \leq L \|\boldsymbol{x}^{(k)} - \boldsymbol{x}^{(k-1)}\|\),递推可得 \(\|\boldsymbol{x}^{(k+1)} - \boldsymbol{x}^{(k)}\| \leq L^k \|\boldsymbol{x}^{(1)} - \boldsymbol{x}^{(0)}\|\)
    对任意正整数 \(m\),有:

    \[\|\boldsymbol{x}^{(k+m)} - \boldsymbol{x}^{(k)}\| \leq \sum_{i=0}^{m-1} L^{k+i} \|\boldsymbol{x}^{(1)} - \boldsymbol{x}^{(0)}\| = L^k \cdot \frac{1-L^m}{1-L} \|\boldsymbol{x}^{(1)} - \boldsymbol{x}^{(0)}\| \]

    \(m \to \infty\)\(L^m \to 0\),即可得到误差估计式。

2.2 局部收敛定理(定理7.8)

压缩映射原理是全局收敛定理,要求在整个区域 \(D_0\) 上满足压缩条件,这个条件在实际中往往难以验证。因此我们给出更实用的局部收敛定理,仅要求在不动点的邻域内满足收敛条件。

定理7.8 完整表述

设迭代函数 \(\boldsymbol{\Phi}\) 在其不动点 \(\boldsymbol{x}^*\) 的邻域内有连续的一阶偏导数,且其雅可比矩阵的谱半径满足:

\[\rho(\boldsymbol{\Phi}'(\boldsymbol{x}^*)) < 1 \tag{7.37} \]

则存在 \(\boldsymbol{x}^*\) 的一个邻域 \(S\),对任意初始值 \(\boldsymbol{x}^{(0)} \in S\),迭代序列 \(\{\boldsymbol{x}^{(k)}\}\) 都收敛到 \(\boldsymbol{x}^*\)

核心概念与解读

  1. 雅可比矩阵:迭代函数 \(\boldsymbol{\Phi}(\boldsymbol{x})=(\varphi_1(\boldsymbol{x}),\varphi_2(\boldsymbol{x}),\dots,\varphi_n(\boldsymbol{x}))^T\) 的雅可比矩阵为:

    \[\boldsymbol{\Phi}'(\boldsymbol{x}) = \begin{pmatrix} \frac{\partial \varphi_1}{\partial x_1} & \frac{\partial \varphi_1}{\partial x_2} & \dots & \frac{\partial \varphi_1}{\partial x_n} \\ \frac{\partial \varphi_2}{\partial x_1} & \frac{\partial \varphi_2}{\partial x_2} & \dots & \frac{\partial \varphi_2}{\partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial \varphi_n}{\partial x_1} & \frac{\partial \varphi_n}{\partial x_2} & \dots & \frac{\partial \varphi_n}{\partial x_n} \end{pmatrix}\]

  2. 谱半径:矩阵 \(\boldsymbol{A}\) 的谱半径 \(\rho(\boldsymbol{A})\) 定义为其所有特征值的模的最大值,即 \(\rho(\boldsymbol{A}) = \max\{|\lambda| \mid \lambda \text{ 是 } \boldsymbol{A} \text{ 的特征值}\}\)
  3. 与单变量迭代的对应关系
    单变量不动点迭代的局部收敛条件是 \(|\varphi'(x^*)| < 1\),多变量场景下,标量导数的绝对值,推广为雅可比矩阵的谱半径,谱半径小于1是局部收敛的充要条件(连续可微前提下)。
  4. 实用判据:由于谱半径的计算较为复杂,我们可以用矩阵范数来判定:对任意相容的矩阵范数,有 \(\rho(\boldsymbol{A}) \leq \|\boldsymbol{A}\|\)。因此只要 \(\|\boldsymbol{\Phi}'(\boldsymbol{x}^*)\| < 1\),就一定满足谱半径小于1的条件,迭代局部收敛。

2.3 向量序列的收敛阶

和单变量迭代一致,我们用收敛阶来刻画迭代序列的收敛速度,定义如下:
设序列 \(\{\boldsymbol{x}^{(k)}\}\) 收敛到 \(\boldsymbol{x}^*\),若存在常数 \(p \geq 1\)\(\alpha > 0\),使得

\[\lim_{k \to \infty} \frac{\|\boldsymbol{x}^{(k+1)} - \boldsymbol{x}^*\|}{\|\boldsymbol{x}^{(k)} - \boldsymbol{x}^*\|^p} = \alpha \]

则称序列 \(\{\boldsymbol{x}^{(k)}\}\)p阶收敛的。

  • \(p=1\)\(0<\alpha<1\):线性收敛;
  • \(p>1\):超线性收敛;
  • \(p=2\):平方收敛(二阶收敛)。

不动点迭代法在满足局部收敛条件时,通常为线性收敛,这也是它的收敛速度慢于牛顿法的核心原因。


三、例题详解(例7.14):不动点迭代法求解二元非线性方程组

例题题干

用不动点迭代法求解方程组:

\[\begin{cases} x_1^2 - 10x_1 + x_2^2 + 8 = 0, \\ x_1x_2^2 + x_1 - 10x_2 + 8 = 0. \end{cases} \]

步骤1:构造不动点迭代格式

我们将方程组改写为 \(\boldsymbol{x}=\boldsymbol{\Phi}(\boldsymbol{x})\) 的形式,将含 \(-10x_1\)\(-10x_2\) 的项移到等式右侧,两边除以10,得到:

\[\begin{cases} x_1 = \frac{1}{10}(x_1^2 + x_2^2 + 8) = \varphi_1(x_1,x_2), \\ x_2 = \frac{1}{10}(x_1x_2^2 + x_1 + 8) = \varphi_2(x_1,x_2). \end{cases} \]

即迭代函数为:

\[\boldsymbol{\Phi}(\boldsymbol{x}) = \begin{pmatrix} \frac{1}{10}(x_1^2 + x_2^2 + 8) \\ \frac{1}{10}(x_1x_2^2 + x_1 + 8) \end{pmatrix} \]

步骤2:验证压缩映射条件,确定收敛区域

取闭区域 \(D = \{(x_1,x_2) \mid 0 \leq x_1,x_2 \leq 1.5\}\),我们验证定理7.7的两个条件。

条件1:自映射验证(\(\boldsymbol{\Phi}(D) \subset D\)

对任意 \(\boldsymbol{x} \in D\)\(x_1,x_2 \in [0,1.5]\),计算 \(\varphi_1\)\(\varphi_2\) 的取值范围:

  • \(\varphi_1\) 的最小值:\(x_1=x_2=0\) 时,\(\varphi_1=8/10=0.8\);最大值:\(x_1=x_2=1.5\) 时,\(\varphi_1=(2.25+2.25+8)/10=1.25\)。因此 \(\varphi_1 \in [0.8,1.25] \subset [0,1.5]\)
  • \(\varphi_2\) 的最小值:\(x_1=x_2=0\) 时,\(\varphi_2=8/10=0.8\);最大值:\(x_1=x_2=1.5\) 时,\(\varphi_2=(1.5 \times 2.25 + 1.5 + 8)/10=12.875/10=1.2875\)。因此 \(\varphi_2 \in [0.8,1.2875] \subset [0,1.5]\)

因此对任意 \(\boldsymbol{x} \in D\)\(\boldsymbol{\Phi}(\boldsymbol{x}) \in D\),自映射条件成立。

条件2:压缩条件验证(1范数下)

对任意 \(\boldsymbol{x},\boldsymbol{y} \in D\),计算分量的差值:

  1. \(\varphi_1\)

    \[|\varphi_1(\boldsymbol{y}) - \varphi_1(\boldsymbol{x})| = \frac{1}{10}|y_1^2 - x_1^2 + y_2^2 - x_2^2| \leq \frac{1}{10}\left(|y_1-x_1||y_1+x_1| + |y_2-x_2||y_2+x_2|\right) \]

    由于 \(x_1,y_1 \leq 1.5\)\(|y_1+x_1| \leq 3\),同理 \(|y_2+x_2| \leq 3\),因此:

    \[|\varphi_1(\boldsymbol{y}) - \varphi_1(\boldsymbol{x})| \leq \frac{3}{10}\left(|y_1-x_1| + |y_2-x_2|\right) = 0.3 \|\boldsymbol{y}-\boldsymbol{x}\|_1 \]

  2. \(\varphi_2\)

    \[|\varphi_2(\boldsymbol{y}) - \varphi_2(\boldsymbol{x})| = \frac{1}{10}|y_1y_2^2 - x_1x_2^2 + y_1 - x_1| \]

    用三角不等式拆分:

    \[|y_1y_2^2 - x_1x_2^2 + y_1 - x_1| \leq |y_1||y_2^2 - x_2^2| + |y_1 - x_1|(x_2^2 + 1) \]

    代入 \(|y_1| \leq 1.5\)\(|y_2^2 - x_2^2| \leq 3|y_2-x_2|\)\(x_2^2+1 \leq 3.25\),得:

    \[|\varphi_2(\boldsymbol{y}) - \varphi_2(\boldsymbol{x})| \leq \frac{1}{10}\left(4.5|y_2-x_2| + 3.25|y_1-x_1|\right) \leq \frac{4.5}{10} \|\boldsymbol{y}-\boldsymbol{x}\|_1 = 0.45 \|\boldsymbol{y}-\boldsymbol{x}\|_1 \]

  3. 合并得到1范数的压缩条件:

    \[\|\boldsymbol{\Phi}(\boldsymbol{y}) - \boldsymbol{\Phi}(\boldsymbol{x})\|_1 = |\varphi_1(\boldsymbol{y}) - \varphi_1(\boldsymbol{x})| + |\varphi_2(\boldsymbol{y}) - \varphi_2(\boldsymbol{x})| \leq (0.3+0.45)\|\boldsymbol{y}-\boldsymbol{x}\|_1 = 0.75 \|\boldsymbol{y}-\boldsymbol{x}\|_1 \]

    压缩系数 \(L=0.75 \in (0,1)\),压缩条件成立。

根据定理7.7,\(\boldsymbol{\Phi}\)\(D\) 内有唯一不动点,从 \(D\) 内任意初始值出发的迭代都收敛。

步骤3:迭代计算

取初始值 \(\boldsymbol{x}^{(0)}=(0,0)^T\),按迭代公式计算:

  • 第1步:\(\boldsymbol{x}^{(1)} = \boldsymbol{\Phi}(\boldsymbol{x}^{(0)}) = (0.8, 0.8)^T\)
  • 第2步:\(\boldsymbol{x}^{(2)} = \boldsymbol{\Phi}(\boldsymbol{x}^{(1)}) = \left(\frac{0.8^2+0.8^2+8}{10}, \frac{0.8 \times 0.8^2 + 0.8 +8}{10}\right) = (0.928, 0.9312)^T\)
  • 持续迭代,第7步得到 \(\boldsymbol{x}^{(7)} = (0.999328, 0.999329)^T\),最终收敛到不动点 \(\boldsymbol{x}^*=(1,1)^T\)

代入原方程验证:

  • 第一个方程:\(1^2 -10 \times 1 + 1^2 +8 = 0\),成立;
  • 第二个方程:\(1 \times 1^2 +1 -10 \times 1 +8 =0\),成立。

步骤4:局部收敛性验证

计算迭代函数的雅可比矩阵:

\[\boldsymbol{\Phi}'(\boldsymbol{x}) = \begin{pmatrix} \frac{\partial \varphi_1}{\partial x_1} & \frac{\partial \varphi_1}{\partial x_2} \\ \frac{\partial \varphi_2}{\partial x_1} & \frac{\partial \varphi_2}{\partial x_2} \end{pmatrix} = \begin{pmatrix} \frac{1}{5}x_1 & \frac{1}{5}x_2 \\ \frac{1}{10}(x_2^2 +1) & \frac{1}{5}x_1x_2 \end{pmatrix} \]

在不动点 \(\boldsymbol{x}^*=(1,1)\) 处,雅可比矩阵为:

\[\boldsymbol{\Phi}'(\boldsymbol{x}^*) = \begin{pmatrix} 0.2 & 0.2 \\ 0.2 & 0.2 \end{pmatrix} \]

其特征值为 \(\lambda_1=0\)\(\lambda_2=0.4\),谱半径 \(\rho(\boldsymbol{\Phi}'(\boldsymbol{x}^*))=0.4 < 1\),满足定理7.8的局部收敛条件,迭代收敛。


四、核心知识点归纳总结表

核心概念 定义与公式 核心意义 关键判据/特性
不动点迭代格式 \(\boldsymbol{x}^{(k+1)} = \boldsymbol{\Phi}(\boldsymbol{x}^{(k)})\)\(\boldsymbol{x}=\boldsymbol{\Phi}(\boldsymbol{x})\)\(\boldsymbol{F}(\boldsymbol{x})=\boldsymbol{0}\) 的等价改写 将非线性方程组求解转化为迭代序列的极限求解,是单变量不动点迭代的多变量推广 迭代收敛的极限就是方程组的解
压缩映射原理(全局收敛) 1. 压缩条件:\(|\boldsymbol{\Phi}(\boldsymbol{x})-\boldsymbol{\Phi}(\boldsymbol{y})| \leq L|\boldsymbol{x}-\boldsymbol{y}|, L\in(0,1)\);2. 自映射:\(\boldsymbol{\Phi}(D_0) \subset D_0\) 给出迭代全局收敛的充要条件,保证不动点的存在唯一性 压缩系数 \(L\) 越小,收敛速度越快;对任意初始值 \(\boldsymbol{x}^{(0)} \in D_0\) 都收敛
局部收敛定理 迭代函数在不动点 \(\boldsymbol{x}^*\) 处的雅可比矩阵谱半径 \(\rho(\boldsymbol{\Phi}'(\boldsymbol{x}^*)) < 1\) 给出实用的局部收敛判据,无需验证全局压缩条件 谱半径小于1是局部收敛的充要条件;可用矩阵范数 \(|\boldsymbol{\Phi}'(\boldsymbol{x}^*)| <1\) 作为充分判据
收敛阶 \(\lim_{k \to \infty} \frac{|\boldsymbol{x}^{(k+1)} - \boldsymbol{x}^*|}{|\boldsymbol{x}^{(k)} - \boldsymbol{x}^*|^p} = \alpha>0\) 刻画迭代序列的收敛速度 不动点迭代通常为线性收敛(\(p=1\)),收敛速度慢于牛顿法
雅可比矩阵 \(\boldsymbol{\Phi}'(\boldsymbol{x}) = \left(\frac{\partial \varphi_i}{\partial x_j}\right)_{n \times n}\) 多变量迭代函数的导数,是局部收敛性的核心分析工具 第i行是第i个分量函数的梯度转置,谱半径决定迭代的局部收敛性
方法优缺点 优点:公式简单,易于实现,每步迭代计算量小;缺点:仅线性收敛,收敛速度慢,对迭代函数的构造要求高 非线性方程组求解的基础方法,适合低精度求解或作为高精度算法的初始迭代 仅适合低维、低精度需求的场景,高维高精度场景需使用牛顿法等更高效的算法

非线性方程组的牛顿迭代法 深度讲解与推导证明

各位同学,今天我们讲解非线性方程组求解的核心方法——牛顿迭代法。它是单变量牛顿法在多变量场景的直接推广,凭借二阶收敛的超快速度,成为工程中高精度求解非线性方程组的首选方法,也是后续所有改进型算法的基础。


一、牛顿迭代法的核心思想与迭代公式推导

1.1 核心思想:局部线性化

单变量牛顿法的核心是「以直代曲」,用切线近似非线性函数,将非线性方程转化为线性方程求解;对于n维非线性方程组,我们将这个思想推广到高维空间:
在当前迭代近似解的邻域内,用向量函数的一阶泰勒展开(局部线性近似)代替原非线性向量函数,将非线性方程组转化为线性方程组(牛顿方程)求解,用线性方程组的解作为原方程组解的新近似值,迭代直到收敛。

1.2 迭代公式的严格推导

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

\[\boldsymbol{F}(\boldsymbol{x}) = \boldsymbol{0} \]

其中 \(\boldsymbol{F}(\boldsymbol{x}) = \begin{pmatrix} f_1(\boldsymbol{x}) \\ f_2(\boldsymbol{x}) \\ \vdots \\ f_n(\boldsymbol{x}) \end{pmatrix}\) 是n维向量值函数,\(\boldsymbol{x} = \begin{pmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{pmatrix} \in \mathbb{R}^n\) 是n维自变量向量。

步骤1:向量函数的一阶泰勒展开

设第k步迭代的近似解为 \(\boldsymbol{x}^{(k)}\),将 \(\boldsymbol{F}(\boldsymbol{x})\)\(\boldsymbol{x}=\boldsymbol{x}^{(k)}\) 处做一阶泰勒展开。对每个分量函数 \(f_i(\boldsymbol{x})\),多元函数的一阶泰勒展开为:

\[f_i(\boldsymbol{x}) = f_i(\boldsymbol{x}^{(k)}) + \sum_{j=1}^n \frac{\partial f_i(\boldsymbol{x}^{(k)})}{\partial x_j} (x_j - x_j^{(k)}) + o(\|\boldsymbol{x} - \boldsymbol{x}^{(k)}\|) \]

忽略高阶无穷小项,得到线性近似,将所有分量写成矩阵-向量形式:

\[\boldsymbol{F}(\boldsymbol{x}) \approx \boldsymbol{F}(\boldsymbol{x}^{(k)}) + \boldsymbol{F}'(\boldsymbol{x}^{(k)}) \cdot (\boldsymbol{x} - \boldsymbol{x}^{(k)}) \]

其中 \(\boldsymbol{F}'(\boldsymbol{x})\) 是向量函数 \(\boldsymbol{F}(\boldsymbol{x})\)雅可比矩阵,定义为:

\[\boldsymbol{F}'(\boldsymbol{x}) = \begin{pmatrix} \frac{\partial f_1}{\partial x_1} & \frac{\partial f_1}{\partial x_2} & \dots & \frac{\partial f_1}{\partial x_n} \\ \frac{\partial f_2}{\partial x_1} & \frac{\partial f_2}{\partial x_2} & \dots & \frac{\partial f_2}{\partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial f_n}{\partial x_1} & \frac{\partial f_n}{\partial x_2} & \dots & \frac{\partial f_n}{\partial x_n} \end{pmatrix}\]

雅可比矩阵的第i行是第i个分量函数的梯度向量的转置,是单变量导数在多变量场景的直接推广。

步骤2:构造牛顿方程,求解迭代增量

我们的目标是找到 \(\boldsymbol{x}\) 使得 \(\boldsymbol{F}(\boldsymbol{x})=\boldsymbol{0}\),因此令线性近似式等于0,得到关于 \(\boldsymbol{x}\) 的线性方程组:

\[\boldsymbol{F}(\boldsymbol{x}^{(k)}) + \boldsymbol{F}'(\boldsymbol{x}^{(k)}) \cdot (\boldsymbol{x} - \boldsymbol{x}^{(k)}) = \boldsymbol{0} \]

记迭代增量 \(\Delta \boldsymbol{x}^{(k)} = \boldsymbol{x} - \boldsymbol{x}^{(k)}\),方程可改写为牛顿方程

\[\boldsymbol{F}'(\boldsymbol{x}^{(k)}) \cdot \Delta \boldsymbol{x}^{(k)} = -\boldsymbol{F}(\boldsymbol{x}^{(k)}) \]

步骤3:更新近似解,得到迭代公式

解牛顿方程得到增量 \(\Delta \boldsymbol{x}^{(k)}\),更新得到第k+1步的近似解:

\[\boldsymbol{x}^{(k+1)} = \boldsymbol{x}^{(k)} + \Delta \boldsymbol{x}^{(k)} \]

将增量代入,得到牛顿法的标准迭代公式:

\[\boldsymbol{x}^{(k+1)} = \boldsymbol{x}^{(k)} - \boldsymbol{F}'(\boldsymbol{x}^{(k)})^{-1} \boldsymbol{F}(\boldsymbol{x}^{(k)}), \quad k=0,1,2,\dots \tag{7.38} \]

1.3 工程实现的核心要点

实际计算中,绝对不会直接计算雅可比矩阵的逆矩阵
n阶矩阵求逆的计算量为 \(O(n^3)\),与解线性方程组的计算量相当,但数值稳定性更差。工程中均通过高斯消元、LU分解等方法直接求解牛顿方程,得到增量 \(\Delta \boldsymbol{x}^{(k)}\) 后直接更新近似解,完全避免求逆操作。


二、牛顿法的收敛性定理(定理7.9)详细解读

牛顿法的收敛性由以下定理严格保证,我们分条件、分结论完整解读。

定理7.9 完整表述

\(\boldsymbol{F}(\boldsymbol{x})\) 的定义域为 \(D \subset \mathbb{R}^n\)\(\boldsymbol{x}^* \in D\) 满足 \(\boldsymbol{F}(\boldsymbol{x}^*)=\boldsymbol{0}\)(即 \(\boldsymbol{x}^*\) 是方程组的真实解),且满足:

  1. \(\boldsymbol{x}^*\) 的开邻域 \(S_0 \subset D\) 内,\(\boldsymbol{F}'(\boldsymbol{x})\) 存在且连续;
  2. \(\boldsymbol{F}'(\boldsymbol{x}^*)\) 非奇异(即雅可比矩阵在 \(\boldsymbol{x}^*\) 处可逆,满秩,\(\det(\boldsymbol{F}'(\boldsymbol{x}^*)) \neq 0\))。

则牛顿法生成的迭代序列 \(\{\boldsymbol{x}^{(k)}\}\) 在闭域 \(S \subset S_0\)超线性收敛\(\boldsymbol{x}^*\)

若额外满足:存在常数 \(L>0\),使得对任意 \(\boldsymbol{x} \in S\),有

\[\|\boldsymbol{F}'(\boldsymbol{x}) - \boldsymbol{F}'(\boldsymbol{x}^*)\| \leq L \|\boldsymbol{x} - \boldsymbol{x}^*\| \]

(即雅可比矩阵在 \(\boldsymbol{x}^*\) 的邻域内满足利普希茨连续条件

则迭代序列 \(\{\boldsymbol{x}^{(k)}\}\) 至少平方收敛(二阶收敛)\(\boldsymbol{x}^*\)

定理核心解读

  1. 核心前提:\(\boldsymbol{F}'(\boldsymbol{x}^*)\) 非奇异
    这个条件对应单变量牛顿法中 \(f'(x^*) \neq 0\) 的要求,是牛顿法收敛的核心保障。它保证了在 \(\boldsymbol{x}^*\) 的邻域内,雅可比矩阵始终可逆,牛顿方程有唯一解,迭代可以正常进行。

  2. 超线性收敛
    满足前两个条件时,牛顿法至少为超线性收敛,收敛速度已经快于不动点迭代的线性收敛。超线性收敛的意义是:迭代误差的下降速度快于线性,每一步的误差比上一步的误差更快趋近于0。

  3. 平方收敛(二阶收敛)
    加上利普希茨条件后,牛顿法达到二阶收敛,这是它最核心的优势。二阶收敛的直观意义是:第k+1步的迭代误差,与第k步误差的平方成正比
    例如:第k步有2位有效数字,第k+1步就有4位,第k+2步就有8位,每迭代一次有效数字位数大约翻倍,收敛速度极快。

  4. 局部收敛性
    和单变量牛顿法一致,非线性方程组的牛顿法是局部收敛的:只有当初始值 \(\boldsymbol{x}^{(0)}\) 足够接近真实解 \(\boldsymbol{x}^*\) 时,迭代才能保证收敛;初始值离解太远时,迭代可能发散。


三、例题详解(例7.15):牛顿法求解二元非线性方程组

我们用和不动点迭代完全相同的例题,直观对比两种方法的收敛速度差异。

例题题干

用牛顿法求解方程组:

\[\begin{cases} x_1^2 - 10x_1 + x_2^2 + 8 = 0 \\ x_1x_2^2 + x_1 - 10x_2 + 8 = 0 \end{cases} \]

步骤1:构造向量函数与雅可比矩阵

首先定义向量函数:

\[\boldsymbol{F}(\boldsymbol{x}) = \begin{pmatrix} f_1(x_1,x_2) \\ f_2(x_1,x_2) \end{pmatrix} = \begin{pmatrix} x_1^2 - 10x_1 + x_2^2 + 8 \\ x_1x_2^2 + x_1 - 10x_2 + 8 \end{pmatrix} \]

计算每个分量的偏导数,得到雅可比矩阵:

  • \(\frac{\partial f_1}{\partial x_1} = 2x_1 - 10\)\(\frac{\partial f_1}{\partial x_2} = 2x_2\)
  • \(\frac{\partial f_2}{\partial x_1} = x_2^2 + 1\)\(\frac{\partial f_2}{\partial x_2} = 2x_1x_2 - 10\)

因此雅可比矩阵为:

\[\boldsymbol{F}'(\boldsymbol{x}) = \begin{pmatrix} 2x_1 - 10 & 2x_2 \\ x_2^2 + 1 & 2x_1x_2 - 10 \end{pmatrix} \]

步骤2:第一次迭代计算(初始值 \(\boldsymbol{x}^{(0)}=(0,0)^T\)

  1. 计算函数值:

    \[\boldsymbol{F}(\boldsymbol{x}^{(0)}) = \begin{pmatrix} 0 - 0 + 0 + 8 \\ 0 + 0 - 0 + 8 \end{pmatrix} = \begin{pmatrix} 8 \\ 8 \end{pmatrix}, \quad -\boldsymbol{F}(\boldsymbol{x}^{(0)}) = \begin{pmatrix} -8 \\ -8 \end{pmatrix} \]

  2. 计算雅可比矩阵:

    \[\boldsymbol{F}'(\boldsymbol{x}^{(0)}) = \begin{pmatrix} 0 - 10 & 0 \\ 0 + 1 & 0 - 10 \end{pmatrix} = \begin{pmatrix} -10 & 0 \\ 1 & -10 \end{pmatrix} \]

  3. 解牛顿方程:

    \[\begin{pmatrix} -10 & 0 \\ 1 & -10 \end{pmatrix} \begin{pmatrix} \Delta x_1^{(0)} \\ \Delta x_2^{(0)} \end{pmatrix} = \begin{pmatrix} -8 \\ -8 \end{pmatrix} \]

    解得:\(\Delta x_1^{(0)}=0.8\)\(\Delta x_2^{(0)}=0.88\),即 \(\Delta \boldsymbol{x}^{(0)}=(0.8, 0.88)^T\)
  4. 更新近似解:

    \[\boldsymbol{x}^{(1)} = \boldsymbol{x}^{(0)} + \Delta \boldsymbol{x}^{(0)} = (0.8, 0.88)^T \]

步骤3:迭代结果汇总

按照相同流程持续迭代,结果如下表:

迭代步数 \(k\) \(x_1^{(k)}\) \(x_2^{(k)}\)
0 0.00 0.00
1 0.80 0.88
2 0.9917872 0.9917117
3 0.9999752 0.9999685
4 1.0000000 1.0000000

收敛速度对比

  • 不动点迭代:迭代7步仅得到3位有效数字的近似解;
  • 牛顿法:迭代4步就得到了精确到小数点后7位的解,迭代3步就有5位有效数字,完美体现了二阶收敛的压倒性优势。

四、牛顿法的优缺点与工程改进方向

核心优点

  1. 收敛速度极快:解的邻域内二阶收敛,迭代步数远少于不动点迭代,高精度求解场景下优势极其明显;
  2. 迭代格式通用:对任意维数的非线性方程组,迭代格式完全统一,仅需修改雅可比矩阵的维度;
  3. 数值稳定性好:只要初始值合适,迭代过程数值稳定,解的精度可控。

核心缺点

  1. 局部收敛性:仅当初始值足够接近真实解时才能收敛,初始值选择不当会导致迭代发散;
  2. 计算量大:每步迭代需要计算n×n雅可比矩阵的n²个偏导数,还要解一个n阶线性方程组,当n很大时(如大规模工程问题),计算成本极高;
  3. 依赖偏导数计算:需要手动推导每个分量的偏导数,函数形式复杂时难度大、易出错;
  4. 奇异失效:迭代过程中雅可比矩阵出现奇异(不可逆)时,牛顿方程无解,迭代中断。

工程改进方向

针对牛顿法的缺陷,工程中衍生出多种成熟的改进算法:

  1. 修正牛顿法:固定前几步的雅可比矩阵,每几步更新一次,牺牲部分收敛速度换取计算效率;
  2. 拟牛顿法(变尺度法):完全避免计算偏导数,通过迭代过程的函数值信息构造雅可比矩阵的近似矩阵,代表方法有BFGS、DFP等,是大规模非线性方程组求解的主流方法;
  3. 牛顿下山法:引入下山因子,保证每步迭代满足 \(\|\boldsymbol{F}(\boldsymbol{x}^{(k+1)})\| < \|\boldsymbol{F}(\boldsymbol{x}^{(k)})\|\),大幅扩大收敛域,解决初始值敏感问题;
  4. 自动微分:通过程序自动计算雅可比矩阵,避免手动推导偏导数,减少出错概率。

五、核心知识点归纳总结表

方法名称 迭代核心公式 收敛阶 每步核心计算量 核心优点 核心缺点 适用场景
不动点迭代法 \(\boldsymbol{x}^{(k+1)} = \boldsymbol{\Phi}(\boldsymbol{x}^{(k)})\) 线性收敛(p=1) 仅需计算迭代函数的n个分量值 公式简单,易于实现,计算量极小,无需计算导数 收敛速度慢,迭代步数多,对迭代函数的构造要求高 低维、低精度需求的求解,或高精度算法的初始迭代
牛顿迭代法 解牛顿方程 \(\boldsymbol{F}'(\boldsymbol{x}^{(k)})\Delta\boldsymbol{x}^{(k)}=-\boldsymbol{F}(\boldsymbol{x}^{(k)})\),更新 \(\boldsymbol{x}^{(k+1)}=\boldsymbol{x}^{(k)}+\Delta\boldsymbol{x}^{(k)}\) 局部二阶收敛(p=2) 1. 计算n个函数值;2. 计算n×n雅可比矩阵;3. 解n阶线性方程组 收敛速度极快,迭代步数少,高精度求解优势明显 局部收敛,对初始值敏感;计算量大,需要计算偏导数 中低维、高精度需求的求解,能提供较好初始值,且可方便计算雅可比矩阵的场景

posted on 2026-02-28 08:36  Indian_Mysore  阅读(0)  评论(0)    收藏  举报

导航