Jacobi(雅可比)迭代法

我先根据图片把 Jacobi 线性迭代的"从 Ax=b 到迭代公式"的推导走一遍,再解释它为什么会收敛/何时会发散,并给一个小例子把公式落到实处。

这张图在讲 Jacobi(雅可比)迭代法:要解线性方程组

它属于"线性迭代(stationary linear iteration)"的一类:把求解 Ax=b 变成一个固定点迭代

其中 B,c 由 A,b 构造出来。


1) 线性迭代的通用公式:矩阵分裂(splitting)

把 A 拆成

A=M−N

其中 M 选得"容易求解"(比如对角矩阵或三角矩阵)。原方程

移项得

(1.1) 先做纯代数变形(没有 k)

前提:M 可逆 (否则 不存在)。

对等式两边左乘

左边 ,所以

把它写成"固定点"形式:

到这里为止,还是同一个方程的等价写法,并没有"迭代"。


(1.2) 再把固定点方程变成迭代(引入 k)

固定点方程 x=F(x) 的经典求解方式是:

从一个初值 出发,不断做

把上面的 F(x) 代进去:

所以

这就是迭代公式。


(1.3) 直觉:为什么可以这么做?

  • 原式 Mx=Nx+b 的意思是:真解 同时满足

  • 迭代的意思是:我先随便猜一个 ,把它塞到右边算出一个新值 ,再把 塞进去算 ...

  • 如果这个映射 F 有"收缩"性质(本质上对应 ),就会越算越接近固定点


(1.4) 一句话总结

  • Mx=Nx+b 左乘 得到固定点形式

  • 再用固定点迭代用旧的 代入右边生成新的

这就是"线性迭代及其公式"的核心:选一个好解的 M,把难点挪到右边,用上一步的 去近似。


2) Jacobi 迭代:用对角线当 M

把 A 分成对角 + 非对角:

A=D+(L+U)

  • D:对角部分(只保留

  • L:严格下三角

  • U:严格上三角

Jacobi 的选择是:

代入通用公式:

也常写成

分量形式(最直观、也最像"按行更新")

从第 i 行方程

单独拎出来:

于是 Jacobi 的更新是

注意:右边 全部用旧迭代 k 的值(这是 Jacobi 的特征)。


3) 为什么叫"迭代"?误差传播公式一眼看懂

设真解为 ,误差 。由

相减得

再迭代:

所以收敛(误差趋于 0)的关键就是:会不会趋于 0


4) 收敛判据:谱半径(和 ρ(A)强相关)

线性迭代 收敛到唯一固定点的经典条件是:

ρ(B)<1

其中 (谱半径)。直觉上:B 的"放大因子"最大也得小于 1,误差才能越乘越小。

对 Jacobi 来说就是

常见的"足够条件"(好用但不是必要条件)

如果 A 严格对角占优

则 Jacobi 一定收敛(并且通常收敛挺稳)。


5) 一个 2×2 小例子,把公式落地

Jacobi 分量更新:

取初值

  • k=0→1:

  • k=1→2:

  • k=2→3:

会在真解附近来回"拉近",逐步收敛。


6) 线性迭代法家族( Jacobi 只是其中一个)

同样从 A=D+L+U 出发:

  • Jacobi:用旧值更新(并行友好)

  • Gauss--Seidel:一更新就立刻用新值(通常更快)

  • SOR(加松弛 ω\omegaω):在 GS 上再"加速/减速"

它们本质都符合:   以及收敛判据 ρ(B)<1。

那我就用一个 3×3 的具体数值例子把 Jacobi 线性迭代的"矩阵分裂 → 迭代矩阵 B → 谱半径 ρ(B) → 实际迭代过程"完整走一遍。


例子:解 Ax=b

先看一个常用的收敛"足够条件"------严格对角占优

  • 第1行:∣4∣>∣1∣+∣1∣=2

  • 第2行:∣7∣>∣2∣+∣1∣=3

  • 第3行:∣12∣>∣1∣+∣−3∣=4

所以 Jacobi 通常会收敛(这不是必要条件,但很实用)。


1) 矩阵分裂:A=D+L+U


2) Jacobi 的迭代公式(矩阵形式)

Jacobi 取 M=D,于是

写成标准"线性迭代":

其中

把它们算出来:


3) 收敛为什么看谱半径

误差 满足

所以只要 ​ 反复乘会"越来越小",误差就会消失。这个"会不会越来越小"的核心指标就是:

本例中 的特征值约为

因此

结论:收敛(而且因为谱半径不大,收敛会比较快)。


4) 真正迭代几步看看(从 开始)

Jacobi 分量公式就是(对应图片里的"按行解出每个 "):

迭代结果(四舍五入到 6 位):

k
0 0.000000 0.000000 0.000000
1 1.750000 -0.142857 0.833333
2 1.577381 -0.761905 0.651786
3 1.777530 -0.686650 0.511409
4 1.793810 -0.723781 0.513543
5 1.802559 -0.728738 0.502904
6 1.806458 -0.729718 0.500936

而这个方程组的真解是:

你会看到数值很快贴近。

在上篇文章《什么是矩阵的谱半径》中,出现了一个公式:

它是线性迭代(或线性动力系统)中一个非常重要且基础的特例公式 。它与我们之前讨论的通用形式紧密相关,其核心在于描述了一个齐次(没有常数项)的线性迭代过程。

1. 公式解析

  • 变量含义

    • 是系统的状态向量,代表了在第 k 步和第 k+1 步时的状态。
    • A 是一个方阵 ,被称为状态转移矩阵系统矩阵。它完全决定了系统如何从当前状态演化到下一步状态。
    • x0 是初始状态向量
  • 公式解释

    • 第一个等式 迭代定义式 。它表示下一步的状态 是由当前状态 左乘矩阵 A 得到的。
    • 箭头推导出的第二个等式 解析解式 。它清晰地表明:**经过 k 次迭代后的状态 ,等价于将转移矩阵 A 自乘 k 次(即 )后,再作用于初始状态 x0。** 这个公式将迭代过程"压缩"成了一个幂运算,是理论分析的关键。

2. 与通用定义的关系

您之前看到的通用线性迭代公式为

  • 图片中的公式是上述通用形式在 c=0(即没有外加常数项)时的特例。此时,迭代矩阵 B 就是图中的矩阵 A。
  • 这种齐次形式描述的是一种"自生"的系统演化,每一步的变化完全由当前状态和固定的变换规则 A 决定,没有外部输入或偏移。

总结来说,此公式是齐次线性动力系统的核心迭代关系。 它通过 ​ 这一简洁形式,将系统状态直接与初始状态和矩阵的幂联系起来。而利用特征分解,我们可以深刻洞察该系统在不同方向上是如何被放大、衰减或维持的,这是分析系统稳定性、收敛性和长期行为的最强大工具之一。

相关推荐
小刘的大模型笔记10 小时前
大模型微调参数设置 —— 从入门到精通的调参指南
人工智能·深度学习·机器学习
千里马也想飞11 小时前
公共管理新题解:信息化条件下文化治理类论文,如何用AI把“大空题目”做成“落地案例库”?(附三级提纲+指令包)
人工智能·深度学习·机器学习·论文笔记
历程里程碑12 小时前
矩阵----=矩阵置零
大数据·线性代数·算法·elasticsearch·搜索引擎·矩阵·散列表
Christo312 小时前
TSPL-2025《Centroid-Free K-Means With Balanced Clustering》
人工智能·算法·机器学习·数据挖掘·kmeans
Hcoco_me13 小时前
MobileNetV2训练+推理的完整逻辑
人工智能·深度学习·机器学习
明朝百晓生13 小时前
强化学习[chapter8] [page18]Policy Gradient
人工智能·算法·机器学习
星川皆无恙14 小时前
豆瓣电影数据爬虫分析:基于 Python 的豆瓣电影数据可视化分析系统
大数据·爬虫·python·算法·机器学习·信息可视化·numpy
npupengsir16 小时前
RoPE相对位置编码
人工智能·算法·机器学习
Rust语言中文社区16 小时前
【Rust日报】 confidential-ml-transport - 机密机器学习传输
开发语言·人工智能·后端·机器学习·rust
夕小瑶16 小时前
原力灵机三箭齐发!2.4B模型登顶,开启2026「具身原生」元年
大数据·人工智能·机器学习