先修与自测:线性代数 · 微积分 · 编程 · 记号
这一页与入学诊断自测分工明确:诊断页用 12 道题决定你从哪里开始读,本页是随时回查的手册——把第一章 + 补充篇正文反复引用、却不再重证的先修内容分成四块,每块给「必须会 / 可以边查边学」两级清单,并配 3–5 道自测题(答案折叠)。不需要通读,卡在哪里补哪里。
三条使用建议
- 先做诊断,再用本页:去向建议按得分给出路线,本页负责把那条路线上暴露出的漏洞补掉。
- 清单分两级:「必须会」是要能动手写出来的;「可以边查边学」是知道去哪里查就够。两级都不必背——用的时候回来查。
- 自测题要真的写一遍:每块末尾的题目都给了可核对的答案(含数值与复核命令);先写再看折叠部分,做完才算读完这一页。
本页在教程里的位置(六页各管一件事)
| 页 | 管什么 | 什么时候用 |
|---|---|---|
| 入学诊断自测 | 定位:12 道题判断该从哪一节开始 | 开学第一次 |
| 本页 | 补漏:四块先修的两级清单 + 自测题 | 卡壳时、读补充篇之前 |
| 工程工具箱 | 操作:误差诊断、算法选型、停止准则、函数地图 | 每一段数值代码落地时 |
| 公式与结论卡 | 查阅:第一章 + 补充篇必记公式与结论 | 忘了公式 |
| 易混对照卡 | 辨析:16 对易混概念逐对比较 | 判断题、概念题 |
| 术语索引 | 命名:中英术语与定义位置 | 查名字、读英文材料 |
一、线性代数:矩阵的语言
必须会
- 矩阵乘法的两种读法:行观点( 的第 个分量 = 的第 行与 的内积);列观点( 是 的列向量以 的分量为系数的线性组合)。2.2 四个基本子空间 全靠列观点。
- 转置与乘积反转:;——顺序反转是最容易记错的一条。
- 秩与可逆的等价链:、列(行)满秩、、对任意右端有唯一解,四条等价(2.2.1)。
- 特征值与特征向量:();、 是最省事的验算式(2.5.1)。
- 实对称矩阵可正交对角化:存在正交阵 使 ,且特征值全为实数——2.5.4 对称谱理论 的出发点。
- 内积、长度、正交:、、(2.1.1 把这套语言公理化)。
- 初等行变换保持什么:解集、行空间、零空间不变;列空间会变——2.2.6 常见错误 3 讲的就是这一条的代价。
可以边查边学
- 的对称正定性( 列满秩时)与正定判定:2.2.3 投影矩阵、入学诊断 A4。
- 维数公式 :它是 Eckart–Young 定理 证明里唯一的计数工具,值得单独记一条。
- 几何重数 / 代数重数与可对角化的判据:2.5.5 用它解释「重特征值为什么开方敏感」。
- QR 分解、SVD、伪逆的结构(各部分长什么样、各扮演什么角色):本教程 2.3、2.6 会完整讲;读之前见过一次即可。
自测组 1(线性代数)
- 形状推演:、、,判断 、、、 哪些能算,并写出结果的形状。
- 对 ,求特征值、 与 。
- 对 、,求内积与两个长度,并判断是否正交。
- 对 :特征值是什么?它可否对角化?由此说明「特征值全为零」为什么推不出「」。
答案
- ()、( 维列向量)、(,即 2 维行向量)都能算; 无定义—— 乘 ,内维 。判形状先对齐内维。
- 。对称阵的奇异值就是特征值的绝对值,故 、:,(复核:
np.linalg.cond(A, 2)给 ,末位是浮点误差)。 - ,故正交;。注意「长度都是 1」与「正交」是两件独立的事:前者叫标准,后者要逐个验证内积为零(2.1.4 常见错误 1 就是这条的翻车现场)。
- (代数重数 2);但它不可对角化: 的零空间只有 ,几何重数 小于代数重数 。可见特征值只记录「伸缩倍数」,不含非正规部分的信息——这正是 2.5.5 里「重特征值遇上扰动会移动 」的根源。
二、微积分:误差从哪来
必须会
- Taylor 公式(带 Lagrange 余项):, 介于 与 之间——全部误差传播公式的来源(1.2.3)。
- 中值定理:,由此立刻得到 。
- 多元一阶展开:(1.2.3 式 1.1)。
- 极限与 记号: 只刻画增长的阶,忽略常数因子与低阶项(1.2.4)。
- 收敛阶:若 ,称序列 阶收敛; 为线性收敛、 为平方收敛。实测怎么估 ,见工程工具箱第三节;割线法的 见第 9 讲。
可以边查边学
- 不动点迭代的两个条件(自映射管不越界、压缩映射管收敛):读第 7 讲之前扫一眼即可。
- Lipschitz 连续性:2.5.5 里「对称矩阵的特征值对扰动是 -Lipschitz 的」用的就是它。
- 凸性与「梯度为零即最小」:2.2.4 正态方程的充分性 用了一次。
- 函数条件数 (1.2.6),它是矩阵条件数的先声。
自测组 2(微积分)
- 写出 在 处的三阶 Taylor 展开,并用它估算 的绝对误差量级。
- 用中值定理证明:若 ,则近似值 满足 。
- 「平方收敛」意味着误差怎样变化?若 且常数 ,写出 、。
- 求 ,并说明它在误差分析里代表什么。
答案
- 。取 :;真值 ,绝对误差 ——正是被截掉的 量级。
- ,两边取绝对值:,即得 。
- 每步的有效数字约翻倍:、。
- 极限为 。它就是 里 项的系数——用一阶差商近似 时,残差的首项正是 这一类结构(1.2.3 的截断误差项)。
三、编程:Python + NumPy
必须会
- Python 基本语法:函数、循环、列表与字典,
import numpy as np。 - NumPy 数组的形状与运算:
A.shape、A.T、A @ x(矩阵乘)、A * B(逐元素乘)、切片与np.arange/np.linspace。 - 向量化:把双重循环改写成
A @ x。它由编译好的 BLAS 执行,通常比 Python 层循环快一到两个数量级,代码也更短。 - 浮点常识:
float64的单位舍入误差 ;比较浮点用np.isclose,不要用==(附录 B.2、附录 B.6)。 np.linalg六个常用函数:solve(解方程)、qr、svd、lstsq(最小二乘)、cond(条件数)、norm(范数)。选型细节见工程工具箱第四节。
可以边查边学
- 随机数:
rng = np.random.default_rng(0),之后所有随机量都从rng取(2.7 的实验报告要求写清种子)。 - 稀疏矩阵与迭代解法:
scipy.sparse(工具箱第四节)。 - 计时:
%timeit(IPython)或time.perf_counter()。 - 画图:
matplotlib——画奇异值谱、残差下降曲线,是2.7 实验报告的基本要求。
自测组 3(编程)
- 判断并解释:
1.0 + 2**-53 == 1.0、1.0 + 2**-52 == 1.0分别是True还是False。 - 把
for i in range(n): for j in range(n): s += A[i, j] * x[j]改写成一行,并说明它为什么快。 - 各用一行代码求 的 、、 与数值秩。
- 说明
np.linalg.solve(A, b)与np.linalg.inv(A) @ b的区别(代价、精度各一条)。
答案
- 依次是
True、False。 恰是 与相邻浮点数间距 的中点,落在平局位置,按「平局判偶」(round-half-to-even)舍回 ;要跨过一格至少需要 的增量。两个常数的来历见附录 B.2。 s = A @ x。NumPy 把乘加交给编译好的 BLAS 例程,省掉解释器逐元素的开销,顺带用了更稳的成对求和顺序(附录 B.4)。np.linalg.norm(A, 2)、np.linalg.norm(A, 'fro')、np.linalg.cond(A, 2)、np.linalg.matrix_rank(A)。最后一条的默认阈值有陷阱,见工具箱第五节。- 代价:
inv要先做 LU 再显式构造逆(约 的额外工作),比「LU + 两次回代」(约 )贵约 2.5 倍。精度:显式求逆多引入一层舍入——8 阶 Hilbert 矩阵上实测,solve的最大误差 ,inv @ b为 ,约差 6 倍(工具箱第五节 给完整复算)。
四、记号与约定
必须会(符号表 的三条约定 + 补充篇新增符号)
- 误差限写成 :如 ;带符号误差 只在专门讨论处出现。
- 向量粗体 、矩阵大写斜体 ; 不带说明时默认指从属(算子)范数,而 不从属()。
- 必须注明范数:、、 的数值可以差 倍量级;只有谈「丢几位」的量级结论时才可以省。
- 与 不是一回事:前者是谱(特征值集合),后者是奇异值(降序排列);另有 。
- 补充篇专有记号:、、、(四个基本子空间)、(正交投影矩阵)、(Householder 反射)、(Givens 旋转)、(伪逆)、(Rayleigh 商)。
可以边查边学
自测组 4(记号)
- 与 哪个大?差几倍?
- 有人说「这个矩阵的条件数是 ,所以解只能信 6 位」。这句话缺了什么?
- 与 是一回事吗?什么情况下是?
答案
- 。 是 附近相邻浮点数的间距; 是单次舍入的最大相对误差(附录 B.2 给两者的逐位来历)。
- 缺范数——没说 是哪种范数下的条件数,三种范数之间可以差 倍量级;另外 是最坏情形估计,实测误差常比它小几倍(2.4.6 常见错误 5、6)。
- 一般不是:。只有当 对称(更一般地,正规)时才有 ,此时 (1.3.4、2.5.1)。
五、五分钟自测(做完即可开始补充篇)
下面 6 题把四块先修与第一章 + 补充篇的入口串起来;闭卷作答,写完再看答案。
五分钟自测 5.1
- ,右端相对扰动为 ,解大约还能保住几位有效数字?
- ():为什么残差可以只有 ,而解的相对误差仍能到 ?
- 用一句话说明「正交变换不放大误差」为什么对数值算法重要。
- 解 ,若 ,用正态方程还是 QR?若 呢?
- 写出 SVD,并用奇异值表示 、、。
- 是否保证每一步都在收缩?更稳妥的判据是什么?
答案
- 约 4 位:约丢失 位,双精度共约 16 位,剩下 4 位左右(2.4.2 的换算表)。
- 两行几乎成比例(),两个方程近乎同一个约束,解可以沿直线 滑动—— 与真解 都近似落在这条线上,故残差很小而误差很大(例 2.4.4)。
- 浮点误差经过正交变换后只受机器精度支配、与矩阵大小同比例,不随变换次数累积;换成非正交变换 ,放大因子就变成 (2.1.3 思考)。
- :正态方程尚可用(但已丢约 6 位,只信 10 位),推荐直接用 QR;:正态方程误差量级为 ,结果没有意义,必须改用 QR 或 SVD(2.3.6 实测对照)。
- ( 正交、 非负对角、奇异值降序);、、(2.6.3)。
- 不保证。 只保证渐近衰减,非正规矩阵在有限步内可能先涨(瞬态增长);稳妥判据是 ,它给出「每一步都在收缩」的保证(例 2.5.6)。
得分与去向
六、卡住时回读哪里
| 你的症状 | 先看这一页 | 再回正文 |
|---|---|---|
| 内积公理、正交、正交矩阵的等价条件读不顺 | 本页第一节 | 2.1、入学诊断 C1 |
| 投影公式、四个子空间写不出来 | 本页第一节 | 2.2、入学诊断 C2、C3 |
| Gram–Schmidt / Householder 手算卡住 | 本页第一节 自测第 2 题 | 2.3、习题 C2 |
| 「能信几位」估不清、残差与误差分不开 | — | 2.4、工具箱第一节、易混对照卡 4 |
| 特征值、谱半径、Gerschgorin 一团乱 | 本页第一、四节 | 2.5、例题 2.5.2 |
| SVD 的几何意义想不明白 | — | 2.6.2 两种几何读法、入学诊断 C4 |
| 浮点、有效数字、误差界的推导跟不上 | 本页第二节 | 1.2、附录 B |
| 代码跑不出书里的数字、不知道该用哪个函数 | 本页第三节 | 工程工具箱、2.7 实验 |
| 与课堂对不上(记号不同、定理编号不同) | — | 课堂精编导览的记号说明 |
依据第一章 + 补充篇正文的先修约定(范围声明、符号表)整理 · 自测题的数值均经 NumPy 复核(本机 numpy 2.4.6)· 与入学诊断自测的分工:诊断页做题定路线,本页查漏补缺 · 整理日期 2026-10-20。