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 消去法,第四部分可以提前讀。
- 同時: 隨著內容出現逐個實現演算法,做每講的習題,並閱讀註釋以瞭解來源和延伸閱讀。對於四十講之外的主題,手邊備一本篇幅更大的參考書。
