Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

1.1 数值分析的研究对象

本节回答三个问题:科学计算在科学研究里扮演什么角色?数值分析研究什么?这门课的路线图长什么样?主线是一条链:实际问题 → 数学模型 → 数值问题 → 数值解——误差在链条的每一环溜进来,而数值分析专管其中能靠算法控制的两环。

数值分析在做什么? 给出的是带误差界的近似解。 NUMERICAL · WORKFLOW / 04 ATLAS / N-01 数值分析在做什么? 给出的是带误差界的近似解。 01实际问题物理 / 工程对象02数学模型方程、初边值条件03数值方法离散化、迭代格式04误差分析截断 + 舍入 + 传播05可计算的结果误差界与可信度条件数 / 稳定性:模型误差会被方法放大多少?模型误差截断误差舍入误差传播误差数值分析给出的是带误差界的近似解。
图解读图:上半排是计算路径;下半排的虚线是分析路径。误差在每一步进入,并被后续运算放大或抑制;条件数描述问题本身的敏感性,稳定性描述算法是否额外放大误差。

1.1.1 科学计算:第三种研究方法

现代科学技术问题的研究方法可分为三种:理论推导、科学实验和科学计算。三种方法相辅相成,又相互独立、缺一不可。

理论推导给出普适规律,但许多问题(三体问题、湍流、大规模结构)没有闭式解;科学实验直接接触真实世界,但受成本、尺度、伦理限制——不能试飞一百次机翼,更不能对地核做实验。科学计算则在两者之间搭桥:用计算机模拟代替不可行的实验,用数值解代替不存在的闭式解。

科学计算的完整链条是:

实际问题 ——建立数学模型→ 数学模型 ——离散化→ 数值问题 ——数值方法(算法)→ 数值解

最后把数值解当作原问题的解交出去。链条的每一环都是一次「翻译」,而每次翻译都会引入或放大误差:

环节引入的误差例子
实际问题 → 数学模型模型误差把空气当理想流体、把梁当一维杆
模型参数来自测量观测误差重力加速度 gg 只测到 9.819.81
数学模型 → 数值问题截断误差(方法误差)用 Taylor 展开的前 nn 项代替 sin⁡x\sin x
数值问题在计算机上执行舍入误差(计算误差)1/31/3 存成 0.33333333330.3333333333

这张表是全章的地图:1.2.1 节将逐一给四类误差下定义,其后的全部内容都在处理最后两类——我们唯一能通过算法设计控制的误差。

误差链条的直觉

把这条链条想象成一场传话游戏:目击者(实际问题)转述给数学模型,再传给数值问题,最后由计算机写出终稿(数值解)。每一环都丢一点信息、加一点噪声。数值分析的工作就是:承认信息一定会丢,然后精确量化丢了多少——前两环归建模与测量学科管,后两环(截断与舍入)是算法设计者的战场。

名词的边界

「数学模型」指反映实际问题中有关量之间关系的计算公式(方程、方程组、泛函等);「数值问题」指可以在有限步四则运算内求解的问题(如解线性方程组、算积分的近似值)。有些数学模型要先离散化(微分方程 → 差分方程)才成为数值问题;也有许多问题(如解 cos⁡x=x\cos x = x)本身就是数值问题。

1.1.2 数值分析研究什么

数值分析(numerical analysis)是计算数学中最基本的内容,它研究两件事:

  1. 怎样用数值计算方法求解各种基本数学问题——线性方程组、特征值问题、非线性方程、插值与逼近、数值积分、微分方程……这是「方法」的层面;
  2. 求解过程中出现的收敛性、数值稳定性和误差估计——这是「可靠」的层面,也是数值分析区别于「编程算数」的本质所在。
四个关键词 · 贯穿全书
  • 收敛性(convergence):h→0h\to0 或 k→∞k\to\infty 时,数值解是不是趋向真解?收敛多快?
  • 数值稳定性(numerical stability):执行中的舍入误差,会被压住还是被放大成雪球?
  • 误差估计(error estimation):能不能在给出解之前,先给出「解与真值差多少」的定量界限?
  • 计算复杂性(computational complexity):达到给定精度需要多少计算量、多少内存?

前两个是定性的(行不行),后两个是定量的(好多少、贵多少)——全书每个算法都会被这四把尺子量一遍。

随着计算机性能不断提高,科学计算已渗透到科学技术的各个领域:数值天气预报、飞机全机气动仿真、芯片电路仿真(SPICE)、医学影像重建、大模型训练(本质是大规模非凸优化——一个数值分析问题)。这些应用的可靠性,最终都落在上面四个关键词上。

1.1.3 一个预告性的例子:算出来 ≠ 算对了

在进入技术细节之前,先看一个 30 秒的小实验。取 2≈1.4\sqrt2\approx1.4(有误差的输入,就像一切测量数据一样),计算 (2−1)6(\sqrt2-1)^6。准确值约为 0.00505063390.0050506339。用六个数学上完全等价的公式(证明见习题 C4):

公式用 1.41.4 代入的结果与真值的差
(2−1)6(\sqrt2-1)^60.0040960.0040969.6×10−49.6\times10^{-4}
(3−22)3(3-2\sqrt2)^30.0080.0083.0×10−33.0\times10^{-3}
99−70299-70\sqrt21.0001.0009.9×10−19.9\times10^{-1}
1/(2+1)61/(\sqrt2+1)^60.00523280.00523281.8×10−41.8\times10^{-4}
1/(3+22)31/(3+2\sqrt2)^30.00512530.00512537.5×10−57.5\times10^{-5}
1/(99+702)1/(99+70\sqrt2)0.00507610.00507612.6×10−5\mathbf{2.6\times10^{-5}}

同一个数学问题,六个等价公式,最坏与最好的结果相差近五个数量级——第 33 个公式甚至给出 1.0001.000,与真值 0.0050.005 毫无关系。差别不在数学(六个公式恒等),而在计算过程中误差被放大了多少。

课程预告

解释这张表只需要本章的三件工具:

  • 误差传播(1.2.3):六个公式都是 2≈1.4\sqrt2\approx1.4 的函数,输入的误差被放大多少倍,取决于公式「长什么样」;
  • 相近数相减(1.2.4 原则 (3)):99−70299-70\sqrt2 是两个 ≈102\approx10^2 的数相减,结果却只有 10−210^{-2} 量级——最危险的写法;
  • 有效数字(1.2.2):用来数一数每个结果还剩几位可靠数字。

读完 1.2 节后,你应能独立算出每个公式的误差放大因子,并复现这张表的每一行(习题 C4);六个公式的相对条件数与逐行复现的完整计算见附录 A.1.1。

这个例子说明数值分析的核心立场:算法不是公式的机械执行,公式写法本身就是算法设计的一部分。

1.1.4 全书路线图

全书主线按庞刚老师的七章顺序组织(也就是原书第 1–7 章的顺序),另设一个补充篇放现代数值线性代数工具箱(原书 §1.3 的扩充,课堂未系统讲)。正文里出现的章号都链到本表。

一个主线 + 一个补充篇
  • 本书主线章号 = 老师/原书章号:第 1–7 章一一对应,不再错位。第 2 章是线性方程组,不是矩阵工具箱;矩阵工具箱整体后移为补充篇。
  • 补充篇:内积/正交/投影/QR/条件数/谱/SVD,节号 2.1–2.8 是补充篇内部编号,不是第 2 章的节号;课堂未系统讲,按需查阅。
  • 提原书时带「原书」;原书第 8 章(偏微分方程)不在老师七章范围内,暂不列入主线。
章主题对标原书课堂状态
1绪论:误差、算法与范数(本章)第 1 章第 1–3 讲✅ 已成章
2线性方程组的解法:高斯消去、LU、追赶法、迭代法、SOR第 2 章第 3–6 讲🚧 讲座页承载
3矩阵特征值与特征向量的计算:幂法、反幂法、位移反幂法第 3 章第 6–7 讲🚧 讲座页承载
4非线性方程与非线性方程组的迭代解法第 4 章第 7–9 讲🚧 讲座页承载(第 8 讲待补)
5插值与逼近第 5 章第 9 讲起🚧 开篇
6数值积分与数值微分第 6 章未讲⏳ 待写
7常微分方程初值问题的数值解法第 7 章未讲⏳ 待写
补数值线性代数工具箱:内积、正交、投影、QR、条件数、谱、SVD1.3 节扩充未系统讲✅ 补充篇

一条红线贯穿全部七章 + 补充篇:误差 → 条件数(问题的固有敏感性)→ 稳定性(算法对误差的处理)。第一章把红线的前半段立起来;从第二章起,每个新算法都会被这三把尺子量一遍。

本节概念速查
概念 一句话定义 本节出现位置 将在何处深入
模型误差 由实际问题建立数学模型时丢失的信息 1.1.1 误差表 不在数值分析范围
观测误差 输入数据来自测量,天然带噪声 1.1.1 误差表 1.2.1
截断误差 用有限步近似代替无穷过程 1.1.1 误差表 1.2.1、1.2.3
舍入误差 有限精度存储带来的偏差 1.1.1 误差表 1.2.1、1.2.5
收敛性 h→0h\to0 或 k→∞k\to\infty 时数值解 → 真解 1.1.2 四关键词 每章每个算法
数值稳定性 舍入误差在计算过程中被压住还是放大 1.1.2 四关键词 1.2.3(误差传播)
条件数 问题本身对输入扰动的敏感度 1.1.4 红线 1.3
有效数字 近似值中「可信」的位数 1.1.3 预告 1.2.2
本节自查清单 · 五条

学完 1.1 节后,你应该能不看笔记回答以下五个问题。答不上来,就回到对应小节重读:

  1. ☐ 科学计算的完整链条是什么?每一环分别引入什么误差?(答不出 → 回 1.1.1)
  2. ☐ 数值分析的四个关键词是什么?各自回答什么问题?(答不出 → 回 1.1.2)
  3. ☐ 为什么六个等价公式算 (2−1)6(\sqrt2-1)^6 会差出五个数量级?根本原因是什么?(答不出 → 回 1.1.3)
  4. ☐ 全书十二章的主线是什么?第一章在全书中承担什么角色?(答不出 → 回 1.1.4)
  5. ☐ 「跑通 = 算对」为什么是错的?举一个真实事故说明。(答不出 → 回 1.1.5 三个常见误解)

1.1.5 小结与常见误解

本节小结
  • 科学计算 = 理论推导与科学实验之外的第三条路,链条是「实际问题 → 数学模型 → 数值问题 → 数值解」,每一环都有误差进入。
  • 数值分析研究方法(怎么算)与可靠(收敛性、稳定性、误差估计、复杂性)两个层面。
  • 公式写法即算法设计:等价公式可以差出五个数量级((2−1)6(\sqrt2-1)^6 六公式)。
  • 全书主线:误差 → 条件数 → 稳定性;第一章负责把「误差」与「尺子(范数)」造好。
三个常见误解 · 现在就可以检验
  1. 「计算机算出来的结果就是对的。」——反例见 1.1.3 的表格:公式 3 给出 1.0001.000,真值是 0.005050.00505。计算机只会忠实执行公式,误差是公式与算法的属性,不是机器的「故障」。
  2. 「精度不够就提高精度(换 double、加位数)。」——提高精度只能推迟问题,不能消除方法性的误差放大。六个公式的例子全部用同一精度计算,差别完全来自公式本身。当然,「该用多少位」也是一件严肃的事,1.2.5 节给出定量答案。
  3. 「误差分析是理论家的事,工程上跑通就行。」——1991 年 2 月 25 日海湾战争中爱国者导弹系统因累计舍入误差(0.1 秒的二进制表示误差 × 100 小时运行时间)导致拦截失败、28 名士兵死亡;1996 年 Ariane 5 首飞因数值溢出 37 秒后自毁。跑通 ≠ 算对,误差分析是工程义务。
课堂对照(2026 秋·庞刚)

本节的三个引例(Kepler 方程、海洋水温插值、波纹瓦弧长的第二类椭圆积分)正是课堂第一讲的开场;老师的完整讲法(含课程考核方式、七章地图与学习建议)见第 1 讲精编。