C語言算法速查手冊

C語言算法速查手冊

《C語言算法速查手冊》用C語言編寫了科研和工程中最常用的166個算法,這些算法包括複數運算、多項式的計算、矩陣運算、線性代數方程組的求解、非線性方程與方程組的求解、代數插值法、數值積分法、常微分方程(組)初值問題的求解、擬合與逼近、特殊函式、極值問題、隨機數產生與統計描述、查找、排序、數學變換與濾波等。同時結合這些算法列舉了將近100個套用實例,對其進行驗證和分析。

基本信息

內容簡介

C語言算法速查手冊

《C語言算法速查手冊》適用於C語言算法的初學者,也可以作為高等院校師生的學習參考用書。

圖書目錄

第1章 緒論 1

1.1 程式設計語言概述 1

1.1.1 機器語言 1

1.1.2 彙編語言 2

1.1.3 高級語言 2

1.1.4 C語言 3

1.2 C語言的優點和缺點 4

1.2.1 C語言的優點 4

1.2.2 C語言的缺點 6

1.3 算法概述 7

1.3.1 算法的基本特徵 7

1.3.2 算法的複雜度 8

1.3.3 算法的準確性 10

1.3.4 算法的穩定性 14

第2章 複數運算 18

2.1 複數的四則運算 18

2.1.1 [算法1] 複數乘法 18

2.1.2 [算法2]複數除法20

2.1.3 【實例5】 複數的四則運算 22

2.2 複數的常用函式運算 23

2.2.1 [算法3] 複數的乘冪23

2.2.2 [算法4] 複數的n次方根25

2.2.3 [算法5] 複數指數 27

2.2.4 [算法6] 複數對數 29

2.2.5 [算法7] 複數正弦 30

2.2.6 [算法8] 複數餘弦 32

2.2.7 【實例6】 複數的函式運算 34

第3章 多項式計算 37

3.1 多項式的表示方法 37

3.1.1 係數表示法 37

3.1.2 點表示法 38

3.1.3 [算法9] 係數表示轉化為點表示 38

3.1.4 [算法10] 點表示轉化為係數表示 42

3.1.5 【實例7】 係數表示法與點表示法的轉化 46

3.2 多項式運算 47

3.2.1 [算法11] 復係數多項式相乘 47

3.2.2 [算法12] 實係數多項式相乘 50

3.2.3 [算法13] 復係數多項式相除 52

3.2.4 [算法14] 實係數多項式相除 54

3.2.5 【實例8】 復係數多項式的乘除法 56

3.2.6 【實例9】 實係數多項式的乘除法 57

3.3 多項式的求值 59

3.3.1 [算法15] 一元多項式求值 59

3.3.2 [算法16] 一元多項式多組求值 60

3.3.3 [算法17] 二元多項式求值 63

3.3.4 【實例10】 一元多項式求值 65

3.3.5 【實例11】 二元多項式求值 66

第4章 矩陣計算 68

4.1 矩陣相乘 68

4.1.1 [算法18]實矩陣相乘 68

4.1.2 [算法19]復矩陣相乘 70

4.1.3 【實例12】 實矩陣與復矩陣的乘法 72

4.2 矩陣的秩與行列式值 73

4.2.1 [算法20] 求矩陣的秩 73

4.2.2 [算法21] 求一般矩陣的行列式值 76

4.2.3 [算法22] 求對稱正定矩陣的行列式值 80

4.2.4 【實例13】 求矩陣的秩和行列式值 82

4.3 矩陣求逆 84

4.3.1 [算法23] 求一般復矩陣的逆 84

4.3.2 [算法24] 求對稱正定矩陣的逆 90

4.3.3 [算法25] 求托貝里斯矩陣逆的Trench方法 92

4.3.4 【實例14】 驗證矩陣求逆算法 97

4.3.5 【實例15】 驗證T矩陣求逆算法 99

4.4 矩陣分解與相似變換 102

4.4.1 [算法26] 實對稱矩陣的LDL分解 102

4.4.2 [算法27] 對稱正定實矩陣的cholesky分解104

4.4.3 [算法28] 一般實矩陣的全選主元LU分解 107

4.4.4 [算法29] 一般實矩陣的QR分解112

4.4.5 [算法30] 對稱實矩陣相似變換為對稱三對角陣 116

4.4.6 [算法31] 一般實矩陣相似變換為上Hessen-Burg矩陣 121

4.4.7 【實例16】 對一般實矩陣進行QR分解 126

4.4.8 【實例17】 對稱矩陣的相似變換 127

4.4.9 【實例18】 一般實矩陣相似變換 129

4.5 矩陣特徵值的計算 130

4.5.1 [算法32] 求上Hessen-Burg矩陣全部特徵值的QR方法 130

4.5.2 [算法33] 求對稱三對角陣的全部特徵值 137

4.5.3 [算法34] 求對稱矩陣特徵值的雅可比法 143

4.5.4 [算法35] 求對稱矩陣特徵值的雅可比過關法 147

4.5.5 【實例19】 求上Hessen-Burg矩陣特徵值 151

4.5.6 【實例20】 分別用兩種雅克比法求對稱矩陣特徵值 152

第5章 線性代數方程組的求解 154

5.1高斯消去法154

5.1.1 [算法36] 求解復係數方程組的全選主元高斯消去法 155

5.1.2 [算法37] 求解實係數方程組的全選主元高斯消去法 160

5.1.3 [算法38] 求解復係數方程組的全選主元高斯-約當消去法 163

5.1.4 [算法39] 求解實係數方程組的全選主元高斯-約當消去法 168

5.1.5 [算法40] 求解大型稀疏係數矩陣方程組的高斯-約當消去法 171

5.1.6 [算法41] 求解三對角線方程組的追趕法 174

5.1.7 [算法42] 求解帶型方程組的方法 176

5.1.8 【實例21】 解線性實係數方程組 179

5.1.9 【實例22】 解線性復係數方程組 180

5.1.10 【實例23】 解三對角線方程組 182

5.2 矩陣分解法 184

5.2.1 [算法43] 求解對稱方程組的LDL分解法 184

5.2.2 [算法44] 求解對稱正定方程組的Cholesky分解法 186

5.2.3 [算法45] 求解線性最小二乘問題的QR分解法 188

5.2.4 【實例24】 求解對稱正定方程組 191

5.2.5 【實例25】 求解線性最小二乘問題 192

5.3 疊代方法 193

5.3.1 [算法46] 病態方程組的求解 193

5.3.2 [算法47] 雅克比疊代法 197

5.3.3 [算法48] 高斯-塞德爾疊代法 200

5.3.4 [算法49] 超鬆弛方法 203

5.3.5 [算法50] 求解對稱正定方程組的共軛梯度方法 205

5.3.6 [算法51] 求解托貝里斯方程組的列文遜方法 209

5.3.7 【實例26】 解病態方程組 214

5.3.8 【實例27】 用疊代法解方程組 215

5.3.9 【實例28】 求解托貝里斯方程組 217

第6章 非線性方程與方程組的求解 219

6.1 非線性方程求根的基本過程 219

6.1.1 確定非線性方程實根的初始近似值或根的所在區間 219

6.1.2 求非線性方程根的精確解 221

6.2 求非線性方程一個實根的方法 221

6.2.1 [算法52]對分法221

6.2.2 [算法53] 牛頓法 223

6.2.3 [算法54] 插值法 226

6.2.4 [算法55] 埃特金迭代法 229

6.2.5 【實例29】 用對分法求非線性方程組的實根 232

6.2.6 【實例30】 用牛頓法求非線性方程組的實根 233

6.2.7 【實例31】 用插值法求非線性方程組的實根 235

6.2.8 【實例32】 用埃特金疊代法求非線性方程組的實根 237

6.3 求實係數多項式方程全部根的方法 238

6.3.1 [算法56] QR方法 238

6.3.2 【實例33】 用QR方法求解多項式的全部根 240

6.4 求非線性方程組一組實根的方法 241

6.4.1 [算法57] 梯度法 241

6.4.2 [算法58]擬牛頓法244

6.4.3 【實例34】 用梯度法計算非線性方程組的一組實根 250

6.4.4 【實例35】 用擬牛頓法計算非線性方程組的一組實根 252

第7章 代數插值法 254

7.1 拉格朗日插值法 254

7.1.1 [算法59] 線性插值 255

7.1.2 [算法60] 二次拋物線插值 256

7.1.3 [算法61] 全區間插值 259

7.1.4 【實例36】 拉格朗日插值 262

7.2 埃爾米特插值 263

7.2.1 [算法62] 埃爾米特不等距插值 263

7.2.2 [算法63] 埃爾米特等距插值 267

7.2.3 【實例37】 埃爾米特插值法 270

7.3 埃特金逐步插值 271

7.3.1 [算法64] 埃特金不等距插值 272

7.3.2 [算法65] 埃特金等距插值 275

7.3.3 【實例38】 埃特金插值 278

7.4 光滑插值 279

7.4.1 [算法66] 光滑不等距插值 279

7.4.2 [算法67] 光滑等距插值 283

7.4.3 【實例39】 光滑插值 286

7.5 三次樣條插值 287

7.5.1 [算法68]第一類邊界條件的三次樣條函式插值 287

7.5.2 [算法69]第二類邊界條件的三次樣條函式插值 292

7.5.3 [算法70]第三類邊界條件的三次樣條函式插值 296

7.5.4 【實例40】 樣條插值法 301

7.6 連分式插值 303

7.6.1 [算法71] 連分式插值 304

7.6.2 【實例41】 驗證連分式插值的函式 308

第8章 數值積分法 309

8.1 變步長求積法 310

8.1.1 [算法72] 變步長梯形求積法 310

8.1.2 [算法73] 自適應梯形求積法 313

8.1.3 [算法74] 變步長辛卜生求積法 316

8.1.4 [算法75] 變步長辛卜生二重積分方法 318

8.1.5 [算法76] 龍貝格積分 322

8.1.6 【實例42】 變步長積分法進行一重積分 325

8.1.7 【實例43】 變步長辛卜生積分法進行二重積分 326

8.2 高斯求積法 328

8.2.1 [算法77] 勒讓德-高斯求積法 328

8.2.2 [算法78] 切比雪夫求積法 331

8.2.3 [算法79]拉蓋爾-高斯求積法 334

8.2.4 [算法80] 埃爾米特-高斯求積法 336

8.2.5 [算法81] 自適應高斯求積方法 337

8.2.6 【實例44】 有限區間高斯求積法 342

8.2.7 【實例45】 半無限區間內高斯求積法 343

8.2.8 【實例46】 無限區間內高斯求積法 345

8.3 連分式法 346

8.3.1 [算法82] 計算一重積分的連分式方法 346

8.3.2 [算法83] 計算二重積分的連分式方法 350

8.3.3 【實例47】 連分式法進行一重積分 354

8.3.4 【實例48】 連分式法進行二重積分 355

8.4 蒙特卡洛法 356

8.4.1 [算法84] 蒙特卡洛法進行一重積分 356

8.4.2 [算法85] 蒙特卡洛法進行二重積分 358

8.4.3 【實例49】 一重積分的蒙特卡洛法 360

8.4.4 【實例50】 二重積分的蒙特卡洛法 361

第9章 常微分方程(組)初值問題的求解 363

9.1 歐拉方法 364

9.1.1 [算法86] 定步長歐拉方法 364

9.1.2 [算法87] 變步長歐拉方法 366

9.1.3 [算法88] 改進的歐拉方法 370

9.1.4 【實例51】 歐拉方法求常微分方程數值解 372

9.2 龍格-庫塔方法 376

9.2.1 [算法89] 定步長龍格-庫塔方法 376

9.2.2 [算法90] 變步長龍格-庫塔方法 379

9.2.3 [算法91] 變步長基爾方法 383

9.2.4 【實例52】 龍格-庫塔方法求常微分方程的初值問題 386

9.3 線性多步法 390

9.3.1 [算法92] 阿當姆斯預報校正法 390

9.3.2 [算法93] 哈明方法 394

9.3.3 [算法94] 全區間積分的雙邊法 399

9.3.4 【實例53】 線性多步法求常微分方程組初值問題 401

第10章 擬合與逼近 405

10.1 一元多項式擬合 405

10.1.1 [算法95]最小二乘擬合405

10.1.2 [算法96] 最佳一致逼近的里米茲方法 412

10.1.3 【實例54】 一元多項式擬合 417

10.2 矩形區域曲面擬合 419

10.2.1 [算法97] 矩形區域最小二乘曲面擬合 419

10.2.2 【實例55】 二元多項式擬合 428

第11章 特殊函式 430

11.1 連分式級數和指數積分430

11.1.1 [算法98] 連分式級數求值 430

11.1.2 [算法99] 指數積分 433

11.1.3 【實例56】 連分式級數求值 436

11.1.4 【實例57】 指數積分求值 438

11.2 伽馬函式 439

11.2.1 [算法100] 伽馬函式 439

11.2.2 [算法101]貝塔函式441

11.2.3 [算法102] 階乘 442

11.2.4 【實例58】 伽馬函式和貝塔函式求值 443

11.2.5 【實例59】 階乘求值 444

11.3 不完全伽馬函式 445

11.3.1 [算法103] 不完全伽馬函式 445

11.3.2 [算法104] 誤差函式 448

11.3.3 [算法105] 卡方分布函式 450

11.3.4 【實例60】 不完全伽馬函式求值 451

11.3.5 【實例61】 誤差函式求值 452

11.3.6 【實例62】 卡方分布函式求值 453

11.4 不完全貝塔函式 454

11.4.1 [算法106] 不完全貝塔函式 454

11.4.2 [算法107] 學生分布函式 457

11.4.3 [算法108] 累積二項式分布函式 458

11.4.4 【實例63】 不完全貝塔函式求值 459

11.5貝塞爾函式461

11.5.1 [算法109] 第一類整數階貝塞爾函式 461

11.5.2 [算法110] 第二類整數階貝塞爾函式 466

11.5.3 [算法111] 變型第一類整數階貝塞爾函式 469

11.5.4 [算法112] 變型第二類整數階貝塞爾函式 473

11.5.5 【實例64】 貝塞爾函式求值 476

11.5.6 【實例65】 變型貝塞爾函式求值 477

11.6 Carlson橢圓積分 479

11.6.1 [算法113] 第一類橢圓積分 479

11.6.2 [算法114] 第一類橢圓積分的退化形式 481

11.6.3 [算法115] 第二類橢圓積分 483

11.6.4 [算法116] 第三類橢圓積分 486

11.6.5 【實例66】 第一類勒讓德橢圓函式積分求值 490

11.6.6 【實例67】 第二類勒讓德橢圓函式積分求值 492

第12章 極值問題 494

第13章 隨機數產生與統計描述 574

第14章 查找 609

第15章 排序 636

第16章 數學變換與濾波 662

……

相關詞條

相關搜尋

熱門詞條

聯絡我們