常用數值算法及其MATLAB實現
作者:夏省祥 於正文圖書詳細信息:
ISBN:9787302353348定價:45元
印次:1-1
裝幀:平裝
印刷日期:2014-4-4
圖書簡介:
本書詳細介紹了求解數值問題的常用算法的算法原理及其MATLAB實現,偏重於算法的實現,強調例題的分析和套用。主要內容包括:線性方程組的直接解法和疊代解法、插值和函式逼近、數值積分、數值最佳化、矩陣的特徵值問題、解非線性方程和方程組的數值方法及常微分方程和偏微分方程的數值解法。本書可作為高等院校數學與套用數學專業、信息與計算科學專業和計算機套用等專業的本科生及工科碩士研究生的教材或參考書,也可供從事科學與工程計算的技術人員參考。
前言
隨著社會的發展和科學技術的進步,需要解決的問題越來越多,也越來越複雜,計算機與計算數學的關係也越來越密切,古老的計算數學發展成了一門現代意義下的新學科——科學計算。科學計算在國防、經濟、天氣預報、工程、航空航天工業、自然科學等領域有著廣泛的套用,科學計算已和理論計算、實驗並列為三大科學方法。科學計算離不開計算機,但它更離不開計算方法。美國著名的計算數學家Babuska曾說過: “沒有好的計算方法,超級計算機就是超級廢鐵。”人類的計算能力等於計算工具的效率與計算方法的效率的乘積,這一形象化的公式表達了硬體與計算方法對於計算能力的同等重要性。現代意義下的計算數學要研究的是在計算機上進行大規模計算的有效算法及其相應的數學理論,它是科學計算的核心。本書詳細、系統地闡述了常用的數值算法和一些現代算法的原理,並用目前最流行的三大數學軟體MATLAB,Maple和Mathematica之一的MATLAB全部實現了這些數值算法,本書偏重於算法的實現,強調例題的分析和套用,引導讀者輕鬆入門,深刻理解、掌握算法原理,並迅速套用。
在結構體系方面,先介紹數值算法的詳細計算方法(公式)和相關概念,其次給出實現算法的MATLAB程式,最後給出範例。力求把最實用、最重要的知識講清楚,把最有效的算法和最實用的程式展現給讀者。每個算法後都列舉了典型範例,對大多數例題採用多種數值解法(包括MATLAB程式包中的數值算法),並儘量用圖形顯示計算結果,以便直觀觀察和比較不同方法的計算效果。對有精確解(解析解)的問題,將數值算法求出的數值解與精確解比較,客觀地評價數值算法的優劣,以便選擇精度高的最佳數值算法。在編程過程中採用高效的計算方式,減少不必要的重複計算,儘量少調用函式且注重誤差的傳播等編程細節,並對一些算法的適用範圍、優劣和誤差以及參數和初始值對計算結果的影響進行了分析。幫助讀者理解、掌握、改進數值算法,提高數值分析的技能和編程能力。
本書從二十多本國內外教材和十幾篇國內外公開發表的論文中精選了170多個典型例題,並通過大量的數據結果和150多幅圖表詳細地介紹了常用的經典數值算法和一些現代算法的算法原理及其套用。所有源程式完全開放,程式全部用形式參數書寫,讀者只需輸入參數、函式和數據等就可方便地使用它們,當然也可以根據自己的需求更改這些程式。書中的所有算法程式都在MATLAB 7.1中驗證通過,並通過不同的算法或精確解檢驗了程式的正確性。國家自然科學基金項目(項目編號: 51078225)和山東省高等教育名校建設工程—山東建築大學特色專業建設項目對本書的出版給予了資助,在此表示衷心的感謝。
由於作者水平所限,書中不妥或錯誤之處在所難免,懇請讀者批評指正。
作者
2014年2月
目錄
第1章引論11.1誤差的來源1
1.1.1捨入誤差1
1.1.2截斷誤差2
1.2誤差的傳播4
1.2.1儘量避免兩個相近的數相減4
1.2.2防止接近零的數做除數6
1.2.3防止大數吃小數6
1.2.4簡化計算步驟,減少運算次數6
1.3數值算法的穩定性7
第2章線性方程組的解法11
2.1Gauss消順序消去法11
2.2Gauss列主元消去法13
2.3Gauss?Jordan消去法15
2.4LU分解法17
2.5平方根法19
2.6改進的平方根法22
2.7追趕法24
2.8QR分解法26
2.9方程組的性態與誤差分析29
2.9.1誤差分析29
2.9.2疊代改善31
2.10Jacobi疊代法33
2.11Gauss?Seidel疊代法35
2.12鬆弛疊代法38
2.13疊代法的收斂性分析40第3章函式的插值46
3.1Lagrange插值46
3.2牛頓插值49
3.3Hermite插值52
3.4分段三次Hermite插值55
3.5三次樣條插值函式61
3.5.1緊壓樣條插值函式61
3.5.2端點曲率調整樣條插值函式66
3.5.3非節點樣條插值函式71
3.5.4周期樣條插值函式76
3.5.5MATLAB的內置三次樣條插值函式簡介79
第4章函式的逼近83
4.1最佳一致逼近多項式 83
4.2近似最佳一致逼近多項式87
4.3最佳平方逼近多項式90
4.4用正交多項式作最佳平方逼近多項式93
4.4.1用Legendre多項式作最佳平方逼近多項式93
4.4.2用Chebyshev多項式作最佳平方逼近多項式96
4.5曲線擬合的最小二乘法99
4.5.1線性最小二乘擬合99
4.5.2用正交多項式作最小二乘擬合103
4.5.3非線性最小二乘擬合舉例105
4.6Pade有理逼近108
第5章數值積分115
5.1複合求積公式115
5.1.1複合梯形公式115
5.1.2複合Simpson公式118
5.1.3複合Cotes公式119
5.2變步長的求積公式121
5.2.1變步長的梯形公式121
5.2.2變步長的Simpson公式122
5.2.3變步長的Cotes公式123
5.3Romberg積分法124
5.4自適應積分法127
5.5Gauss求積公式129
5.5.1Gauss?Legendre求積公式129
5.5.2Gauss?Chebyshev求積公式131
5.5.3Gauss?Laguerre求積公式133
5.5.4Gauss?Hermite求積公式135
5.6預先給定節點的Gauss求積公式137
5.6.1Gauss?Radau求積公式137
5.6.2Gauss?Lobatto求積公式138
5.7二重積分的數值計算140
5.7.1複合Simpson公式140
5.7.2變步長的Simpson公式144
5.7.3複合Gauss公式147
5.8三重積分的數值計算149
第6章數值最佳化155
6.1一元函式的極小值155
6.1.1黃金分割搜尋法155
6.1.2Fibonacci搜尋法157
6.1.3二次逼近法159
6.1.4三次插值法161
6.1.5牛頓法162
6.2Nelder?Mead方法164
6.3最速下降法166
6.4牛頓法169
6.5共軛梯度法170
6.6擬牛頓法173
6.6.1DFP法173
6.6.2BFGS法176
6.7模擬退火算法179
6.8遺傳算法181
第7章矩陣特徵值與特徵向量的計算190
7.1上Hessenberg矩陣和QR分解190
7.1.1化矩陣為上Hessenberg矩陣190
7.1.2矩陣的QR分解192
7.2乘冪法與反冪法193
7.2.1乘冪法193
7.2.2反冪法195
7.2.3移位反冪法196
7.3Jacobi 方法198
7.4對稱QR方法201
7.5QR方法203
7.5.1上Hessenberg的QR方法203
7.5.2原點移位的QR方法204
7.5.3雙重步QR方法207
第8章非線性方程求根211
8.1疊代法211
8.2疊代法的加速收斂214
8.2.1Aitken加速法214
8.2.2Steffensen加速法215
8.3二分法217
8.4試位法219
8.5牛頓?拉夫森法220
8.6割線法225
8.7改進的牛頓法228
8.8Halley法233
8.9Brent法236
8.10拋物線法240
第9章非線性方程組的數值解法245
9.1不動點疊代法245
9.2牛頓法247
9.3修正牛頓法250
9.4擬牛頓法252
9.4.1Broyden方法252
9.4.2DFP方法255
9.4.3BFS方法258
9.5數值延拓法260
9.6參數微分法263
第10章常微分方程初值問題的數值解法266
10.1Euler方法266
10.1.1Euler方法266
10.1.2改進的Euler方法269
10.2Runge?Kutta方法271
10.2.1二階Runge?Kutta方法272
10.2.2三階Runge?Kutta方法274
10.2.3四階Runge?Kutta方法276
10.3高階Runge?Kutta方法279
10.3.1Kutta?Nystr?m五階六級方法279
10.3.2Huta六階八級方法281
10.4Runge?Kutta?Fehlberg方法284
10.5線性多步法288
10.6預測?校正方法293
10.6.1四階Adams預測?校正方法293
10.6.2改進的Adams四階預測?校正方法295
10.6.3Hamming預測?校正方法298
10.7變步長的多步法302
10.8Gragg外推法305
10.9常微分方程組和高階微分方程的數值解法310
10.9.1常微分方程組的數值解法311
10.9.2高階微分方程的數值解法315
第11章常微分方程邊值問題的數值解法317
11.1打靶法317
11.1.1線性邊值問題的打靶法317
11.1.2非線性邊值問題的打靶法319
11.2有限差分法323
11.2.1線性邊值問題的差分方法323
11.2.2非線性邊值問題的差分方法327
第12章偏微分方程的數值解法331
12.1橢圓型方程331
12.2拋物型方程336
12.2.1顯式向前Euler方法337
12.2.2隱式向後Euler方法339
12.2.3Crank?Nicholson方法340
12.2.4二維拋物型方程344
12.3雙曲型方程348
12.3.1一維波動方程348
12.3.2二維波動方程352
程式索引356
參考文獻360