索引 / 001 ZH-CN
Numerical Linear Algebra(数值线性代数) cover

数学

数学

Numerical Linear Algebra(数值线性代数)

Lloyd N. Trefethen; David Bau III

英文原名: Numerical Linear Algebra

一部简洁的研究生教材,以四十个短讲的形式讲述线性代数问题的数值求解。全书从QR分解和奇异值分解而非高斯消元法入手,强调条件数与稳定性的思想,并以迭代法收尾。

需要的基础: 扎实的本科线性代数课程,以及在MATLAB、Python或Julia等数值环境中的一定编程经验。

难度等级
高级
学术层次
研究生
numerical linear algebramatrix factorizationsiterative methodsnumerical analysis教科书

01 / 导读

导读

引用

Trefethen, L. N., & Bau, D., III. (2022). Numerical Linear Algebra (25th anniversary ed.). SIAM.

章节概要

全书由四十讲短小的讲义组成,每讲围绕一两个核心思想展开,分为六个部分,后接附录、注释和参考文献。1997 年的原版约 360 页。

第一部分 基础(第 1–5 讲):矩阵与向量的乘法;正交向量与正交矩阵;范数;奇异值分解;奇异值分解续

开头几讲带着计算的眼光重新审视熟悉的线性代数。第 1 讲把矩阵与向量的乘积看作各列的线性组合,再推广到矩阵与矩阵的乘积,并讨论值域、零空间和逆。随后讲正交性和范数,这一部分以奇异值分解收尾,后面各部分会不断回到它。

第二部分 QR 分解与最小二乘(第 6–11 讲):投影;QR 分解;Gram-Schmidt 正交化;MATLAB;Householder 三角化;最小二乘问题

由投影引出约化与完全 QR 分解,先用 Gram-Schmidt 正交化计算,再用 Householder 三角化计算。第 9 讲是一篇简短的 MATLAB 讲义,这一部分最后用这些分解来求解最小二乘问题。

第三部分 条件与稳定性(第 12–19 讲):条件与条件数;浮点运算;稳定性;稳定性续;Householder 三角化的稳定性;回代的稳定性;最小二乘问题的条件;最小二乘算法的稳定性

这一部分提供评判算法所需的概念:问题有多敏感,浮点运算如何运作,算法稳定意味着什么。随后把这些思想用于第二部分的算法和回代,使前面的方法得到分析,而不只是被陈述。

第四部分 方程组(第 20–23 讲):Gauss 消去法;选主元;Gauss 消去法的稳定性;Cholesky 分解

Gauss 消去法在 QR 之后才出现,并配有选主元和稳定性分析。对称正定矩阵的 Cholesky 分解结束这一部分。

第五部分 特征值(第 24–31 讲):特征值问题;特征值算法概览;化为 Hessenberg 或三对角形式;Rayleigh 商与逆迭代;不带位移的 QR 算法;带位移的 QR 算法;其他特征值算法;奇异值分解的计算

八讲先陈述问题,把矩阵化为 Hessenberg 或三对角形式,研究 Rayleigh 商与逆迭代,再分别发展不带位移和带位移的 QR 算法,最后介绍其他特征值算法以及奇异值分解的计算。

第六部分 迭代方法(第 32–40 讲):迭代方法概览;Arnoldi 迭代;Arnoldi 如何定位特征值;GMRES;Lanczos 迭代;从 Lanczos 到 Gauss 求积;共轭梯度法;双正交化方法;预条件

从 Arnoldi 和 Lanczos 出发建立 Krylov 子空间方法,并通过 GMRES、共轭梯度法和双正交化方法把它们用于特征值问题和线性方程组,最后讲预条件。

附录与后附部分

附录“数值分析的定义”之后是给出来源和延伸阅读的注释、参考文献和索引。每一讲末尾都有习题。

核心概念

第一、二部分

  • 矩阵与向量的乘积是各列的组合:第 1 讲引入、贯穿全书的观点。
  • 奇异值分解:第 4 讲引入,在第 5 讲和第 31 讲中再次出现。
  • QR 分解:用 Gram-Schmidt 或 Householder 三角化计算,并用于最小二乘。

第三部分

  • 条件数:衡量问题对扰动有多敏感。
  • 浮点运算与稳定性:判断算法结果是否可信的框架。

第四至六部分

  • 带选主元的 Gauss 消去法与 Cholesky 分解:求解线性方程组的直接方法。
  • QR 算法:主要的特征值方法,分别在无位移和有位移的情形下展开。
  • Krylov 方法:Arnoldi、Lanczos、GMRES、共轭梯度法和预条件。

评析

优点

  • 设计意图明确。 前言把本书定位为一学期的教材,由四十讲构成,每讲集中于一两个思想,避免陷入细节。
  • 先讲 QR,后讲 Gauss 消去法。 作者有意偏离惯常顺序,理由是 Gauss 消去法在这一学科中并不典型且难以分析,而 QR 分解是贯穿最小二乘、特征值、奇异值和迭代方法的主线。
  • 条件与稳定性占有完整一部分。 在分析任何解方程组的算法之前,先用八讲处理这些主题,后面各部分的稳定性分析都依赖它们。
  • 结构便于使用。 短小的讲义配有习题,适合逐讲授课,六部分的布局也让人容易看出哪些讲属于一组。

局限

  • 有意不做成参考书。 作者说明本书无意重复百科全书式的 Golub 与 Van Loan 的著作;它按一个学期的容量编写,作者期望读者为获得更多细节和更多主题而查阅 Golub 与 Van Loan 的书,以及注释中介绍的 Higham 和 Demmel 的著作。
  • 叙述紧凑。 四十讲每讲约八页,推导较简短,读者需要熟悉复向量空间中的线性代数,因为本书默认在复数域上讨论。

在课程中的定位

在数值分析课程中,这是专讲线性代数的教材。它并不取代一般的数值分析教材,而是沿着一条主线挖得更深。Burden、Faires 与 Burden 的 Numerical Analysis 和 Süli 与 Mayers 的 An Introduction to Numerical Analysis 是覆盖面更广的入门书,后者更强调收敛性的证明,二者都可以先读。Stoer 与 Bulirsch 的 Introduction to Numerical Analysis 是内容更全面的研究生教材,在线性方程组和特征值方面与本书有所重叠。

对于想先编程、后分析的读者,Moler 的 Numerical Computing with MATLAB 和基于 Python 的数值方法教材是更温和、更偏动手的起点。之后,Trefethen 与 Bau 提供这些书中所调用例程背后的几何与稳定性理解。

如何使用本书

本书适合应用数学、科学计算和工程领域的研究生一年级学生和高年级本科生,也适合使用矩阵算法并想知道其原理的读者。主要的先修要求是一门扎实的本科线性代数课程,若有 MATLAB、Python 或 Julia 的编程经验,对计算类习题会有帮助。

一个实用的读法:

  • 核心: 按顺序读第一至第三部分。第 1–5 讲的奇异值分解、第 6–11 讲的 QR 以及第 12–15 讲的条件与稳定性,承载了本书其余部分所假定的大部分概念。
  • 接着: 读第五部分(特征值)和第六部分(迭代方法);熟悉奇异值分解、QR 和稳定性之后,二者都可以作为独立单元阅读。如果眼前需要的是 Gauss 消去法,第四部分可以提前读。
  • 同时: 随着内容出现逐个实现算法,做每讲的习题,并阅读注释以了解来源和延伸阅读。对于四十讲之外的主题,手边备一本篇幅更大的参考书。