內容簡介
本本書介紹了數值計算方法· 內容涉及數值計算方法的數學基礎,數值計算方法在工程、科學和數學問題中的套用以及MATLAB程式,涵蓋了經典數值分析的全部內容:包括非線性方程的數值解法;線性方程組的數值解法;矩陣特徵值與特徵向量的數值算法;插值方法;函式最佳逼近;數值積分;數值微分;常微分方程數值解法等· 基於MATLAB是本書的特色,對書中所有的數值方法都給出了MATLAB程式,有大量翔實的套用實例可供參考,有相當數量的習題可供練習· 本書可作為理工科本科生、研究生數值計算方法課程教材或參考書,也可作為科技人員使用數值計算方法和MATLAB的參考手冊
前言
從2008年《數值計算方法》出版以來,得到了很多老師的關注,收到了很多讀者的E-mail,給了很多的肯定和鼓勵,同時也對書中的內容、體系、講法等方面提出了很多寶貴的修改意見,藉此再版之機,向關心和支持作者工作的廣大讀者朋友表示深切謝意.此次再版,根據廣大讀者的建議,對原《數值計算方法》的內容作了適當的增刪,在保持原《數值計算方法》特色的前提下,對體例、格式、敘述、內容等方面作了較大的修改,力求使原《數值計算方法》的優點得到發展,缺點得到克服.書中很多章節和例題都重寫了,修改後的內容更符合現代《數值計算方法》教學改革實際,既便於教學,又有利於培養學生解決實際問題的能力.常微分方程數值解等內容.由於課時體系等原因,刪除了一些過時的內容,還有對部分過難的例題和習題作了修改和替換,新增了數字教學資源電子教案(PPT版由方秀男製作,PDF版由呂同富製作),MATLAB實驗等內容供師生參考(相關數字教學資源可到清華大學出版社網站上下載,也可以給作者發E-mail索取).本次再版由呂同富教授執筆.另外還有康兆敏副教授、方秀男副教授編寫了部分內容及習題和答案.全書由呂同富教授統稿.清華大學出版社佟麗霞編輯,幾年來自始至終給作者以支持和鼓勵,這次再版又認真編輯審校了書稿,糾正了書中的很多不妥和疏漏.廈門大學譚忠教授百忙之中抽出時間為本書作序推薦.這裡向他們及本書所列參考文獻的作者們,以及為本書再版給予熱心支持和幫助的朋友們,表示衷心的感謝.
本書可作為理工科本科生、研究生數值計算方法課程教材或參考書,也可作為科技人員使用數值計算方法和MATLAB的參考手冊.
呂同富
2013 年7 月
目錄
第1 章緒論................................................................... 1
1.1 科學計算的一般過程..................................................... 1
1.1.1 對實際工程問題進行數學建模....................................... 1
1.1.2 對數學問題給出數值計算方法....................................... 1
1.1.3 對數值計算方法進行程式設計....................................... 2
1.1.4 上機計算並分析結果............................................... 2
1.2 數值計算方法的研究內容與特點........................................... 2
1.2.1 數值計算方法的研究內容........................................... 2
1.2.2 數值計算方法的特點............................................... 2
1.3 計算過程中的誤差及其控制............................................... 5
1.3.1 誤差的來源與分類................................................. 5
1.3.2 誤差與有效數字................................................... 6
1.3.3 誤差的傳播....................................................... 8
1.3.4 誤差的控制....................................................... 9
1.3.5 數值算法的穩定性................................................. 11
1.3.6 病態問題與條件數................................................. 11
習題1...................................................................... 12
第2 章非線性方程的數值解法................................................... 14
2.1 二分法................................................................. 14
2.1.1 二分法的基本思想................................................. 14
2.1.2 二分法及MATLAB程式............................................ 15
2.2 非線性方程求解的疊代法................................................. 18
2.2.1 疊代法的基本思想................................................. 18
2.2.2 不動點疊代法及收斂性............................................. 18
2.2.3 疊代過程的加速方法............................................... 24
2.2.4 Newton-Raphson 方法............................................... 32
2.2.5 割線法與拋物線法................................................. 42
2.3 非線性方程求解的MATLAB函式.......................................... 46
2.3.1 MATLAB 中求方程根的函式........................................ 46
2.3.2 用MATLAB中函式求方程的根...................................... 46
習題2...................................................................... 47
第3 章線性方程組的數值解法................................................... 50
3.1 向量與矩陣的範數....................................................... 50
3.1.1 向量的範數....................................................... 50
3.1.2 矩陣的範數....................................................... 53
3.1.3 方程組的性態條件數與攝動理論..................................... 56
3.2 直接法................................................................. 58
3.2.1 Gauss消去法及MATLAB程式...................................... 58
3.2.2 矩陣的三角(LU)分解法............................................. 70
3.2.3 矩陣的Doolittle分解法及MATLAB程式.............................. 74
3.2.4 矩陣的Crout分解法............................................... 79
3.2.5 對稱正定矩陣的Cholesky分解及MATLAB程式....................... 80
3.2.6 解三對角方程組的追趕法及MATLAB程式............................ 86
3.3 疊代法................................................................. 88
3.3.1 疊代法的一般形式................................................. 88
3.3.2 Jacobi疊代法及MATLAB程式...................................... 89
3.3.3 Gauss-Seidel疊代法及MATLAB程式................................. 92
3.3.4 超鬆弛疊代法及MATLAB程式...................................... 96
3.3.5 共軛梯度法及MATLAB程式........................................ 99
3.4 疊代法的收斂性分析.....................................................104
3.4.1 疊代法的收斂性...................................................104
3.4.2 疊代法的收斂速度與誤差分析.......................................105
習題3......................................................................107
第4 章矩陣特徵值與特徵向量的數值算法.........................................111
4.1 預備知識...............................................................112
4.1.1 Householder變換和Givens變換......................................112
4.1.2 Gershgorin 圓盤定理................................................114
4.1.3 QR 分解..........................................................115
4.2 乘冪法和反冪法.........................................................116
4.2.1 乘冪法及MATLAB程式............................................117
4.2.2 乘冪法的加速.....................................................122
4.2.3 反冪法及MATLAB程式............................................124
4.3Jacobi方法(對稱矩陣). ...................................................125
4.3.1 Jacobi方法及MATLAB程式........................................125
4.3.2 Jacobi 方法的收斂性...............................................129
4.4 Householder 方法........................................................130
4.4.1 一般實矩陣約化為Hessenberg矩陣...................................130
4.4.2 實對稱矩陣的三對角化.............................................133
4.4.3 求三對角矩陣特徵值的二分法.......................................133
4.4.4 三對角矩陣特徵向量的計算.........................................135
4.5 QR 方法................................................................135
4.5.1 基本的QR方法...................................................136
4.5.2 QR 方法的收斂性..................................................137
4.5.3 帶原點位移的QR方法.............................................139
4.5.4 單步QR方法計算上Hessenberg矩陣特徵值...........................140
4.5.5 雙步QR方法.....................................................141
4.6 基於MATLAB的QR分解................................................141
習題4......................................................................142
第5 章插值方法...............................................................144
5.1 插值多項式及存在唯一性.................................................145
5.1.1 插值多項式的一般提法.............................................145
5.1.2 插值多項式存在唯一性.............................................145
5.2 Lagrange 插值...........................................................146
5.2.1 Lagrange 插值多項式...............................................146
5.2.2 線性插值與拋物線插值.............................................148
5.2.3 Lagrange插值的MATLAB程式......................................149
5.2.4 Lagrange 插值餘項與誤差估計.......................................150
5.3Aitken和Neville插值....................................................153
5.3.1 Aitken 逐步線性插值...............................................153
5.3.2 Neville 逐步線性插值...............................................153
5.4 差商與Newton插值......................................................154
5.4.1 差商及其性質.....................................................154
5.4.2 Newton 插值多項式................................................156
5.4.3 Newton 插值餘項與誤差估計........................................157
5.4.4 Newton插值的MATLAB程式.......................................158
5.5 差分與等距節點的Newton插值............................................159
5.5.1 差分及其性質.....................................................159
5.5.2 等距節點Newton插值多項式........................................161
5.5.3 等距節點Newton插值的MATLAB程式..............................162
5.6 Hermite 插值............................................................164
5.7 分段低次插值...........................................................166
5.7.1 高次插值的Runge現象及MATLAB程式..............................166
5.7.2 分段線性插值及MATLAB程式......................................167
5.7.3 分段三次Hermite插值及MATLAB程式..............................170
5.8 三次樣條插值...........................................................172
5.8.1 三次樣條函式.....................................................173
5.8.2 三轉角插值函式(方程)及MATLAB程式..............................175
5.8.3 三彎矩插值函式(方程)及MATLAB程式..............................179
5.8.4 三次樣條插值函式的收斂性.........................................182
5.9B-樣條插值.............................................................183
5.9.1 m 次樣條函式.....................................................183
5.9.2 B-樣條函式.......................................................184
5.9.3 B-樣條函式的性質.................................................185
習題5......................................................................186
第6 章函式最佳逼近...........................................................189
6.1 正交多項式.............................................................189
6.1.1 正交函式族.......................................................189
6.1.2 幾個常用的正交多項式.............................................191
6.2 最佳一致逼近...........................................................197
6.2.1 一致逼近的概念...................................................197
6.2.2 最佳一致逼近多項式...............................................201
6.2.3 最佳一致逼近多項式的計算.........................................206
6.2.4 最佳一致逼近三角多項式...........................................208
6.3 最佳平方逼近...........................................................211
6.3.1 平方度量與平方逼近...............................................211
6.3.2 最佳平方逼近.....................................................212
6.4 正交多項式的逼近性質...................................................214
6.4.1 用正交多項式作最佳平方逼近.......................................215
6.4.2 用正交多項式作最佳一致逼近.......................................216
6.5 Fourier 級數的逼近性質...................................................218
6.5.1 最佳平方三角逼近.................................................219
6.5.2 最佳一致三角逼近.................................................219
6.5.3 快速Fourier變換..................................................223
6.6 有理函式逼近...........................................................227
6.6.1 連分式逼近.......................................................227
6.6.2 Pade逼近........................................................228
6.7 曲線擬合的最小二乘法及MATLAB程式....................................230
6.7.1 曲線擬合的最小二乘法.............................................230
6.7.2 曲線擬合最小二乘法的MATLAB程式................................231
習題6......................................................................232
第7 章數值積分...............................................................235
7.1 機械求積公式...........................................................235
7.1.1 數值積分的基本思想...............................................235
7.1.2 待定係數法.......................................................236
7.1.3 插值型求積公式...................................................237
7.1.4 求積公式的收斂性與穩定性.........................................239
7.2 Newton-Cotes 求積公式...................................................240
7.2.1 Newton-Cotes 求積公式的一般形式...................................240
7.2.2 兩種低階的Newton-Cotes求積公式..................................240
7.2.3 誤差估計.........................................................241
7.2.4 Newton-Cotes求積公式MATLAB程式................................243
7.3 複合求積公式...........................................................244
7.3.1 複合梯形求積公式及MATLAB程式..................................244
7.3.2 複合Simpson求積公式及MATLAB程式..............................245
7.3.3 複合Cotes求積公式及MATLAB程式................................247
7.4 變步長求積公式.........................................................248
7.4.1 變步長梯形求積公式及MATLAB程式................................248
7.4.2 自適應Simpson求積公式及MATLAB程式............................250
7.5 Romberg 求積算法.......................................................252
7.5.1 Romberg 求積公式.................................................252
7.5.2 Romberg求積算法的MATLAB程式..................................254
7.6 Gauss 求積公式..........................................................256
7.6.1 Gauss 求積公式的構造..............................................257
7.6.2 5種Gauss型求積公式..............................................259
7.6.3 Gauss求積公式及MATLAB程式....................................264
7.7 MATLAB 中的數值積分函式..............................................267
7.7.1 MATLAB 數值積分函式............................................267
7.7.2 套用實例.........................................................268
習題7......................................................................269
第8 章數值微分...............................................................272
8.1 中點方法...............................................................272
8.1.1 微分中點數值算法.................................................272
8.1.2 微分中點數值算法誤差分析.........................................273
8.2 利用插值方法求微分.....................................................273
8.2.1 插值型求導方法...................................................273
8.2.2 常用插值型求數值微分公式.........................................274
8.3 利用數值積分求微分.....................................................276
8.3.1 矩形積分方法.....................................................276
8.3.2 Simpson 積分方法.................................................276
8.4 利用三次樣條求微分.....................................................277
8.5 外推法在數值微分中的套用...............................................278
習題8......................................................................279
第9 章常微分方程數值解法.....................................................280
9.1 數值解法的構造途徑.....................................................280
9.1.1 數值解法的基本思想...............................................280
9.1.2 差商逼近法.......................................................281
9.1.3 數值積分法.......................................................282
9.1.4 Taylor 展開法.....................................................282
9.2 Euler 方法及其改進......................................................284
9.2.1 Euler方法及MATLAB程式.........................................284
9.2.2 改進的Euler方法及MATLAB程式..................................285
9.2.3 預估-校正方法....................................................292
9.2.4 公式的截斷誤差...................................................292
9.3 Runge-Kutta 方法........................................................293
9.3.1 Runge-Kutta 方法的基本思想........................................293
9.3.2 二階Runge-Kutta方法..............................................294
9.3.3 三階與四階Runge-Kutta方法及MATLAB程式........................296
9.3.4 變步長的Runge-Kutta方法及MATLAB程式..........................299
9.4 單步法的相容性、收斂性與穩定性.........................................302
9.4.1 相容性...........................................................302
9.4.2 收斂性...........................................................303
9.4.3 穩定性...........................................................307
9.5 線性多步法.............................................................309
9.5.1 線性多步法的一般公式.............................................309
9.5.2 Adams公式及MATLAB程式........................................311
9.5.3 Milne方法與Simpson方法及MATLAB程式..........................315
9.5.4 Hamming方法及MATLAB程式.....................................317
9.5.5 預估校正方法.....................................................318
9.6 微分方程組與高階微分方程數值解.........................................320
9.6.1 一階微分方程組...................................................320
9.6.2 高階微分方程及MATLAB程式......................................322
9.6.3 剛性方程.........................................................324
9.7 求微分方程數值解的MATLAB函式........................................326
9.7.1 MATLAB 中微分方程數值解函式....................................326
9.7.2 套用實例.........................................................326
習題9......................................................................327
部分習題答案...................................................................330
參考文獻.......................................................................336