第1 章 緒論
1.1程式設計語言概述
1.1.1 機器語言
1.1.2 組合語言
1.1.3 高階語言
1.1.4 C 語言言
1.2 C 語言的優點和缺點
1.2.1 C 語言的優點
1.2.2 C 語言的缺點
1.3 演算法概述
1.3.1 演算法的基本特徵
1.3.2 演算法的複雜度
1.3.3 演算法的準確性
1.3.4 演算法的穩定性
第2 章 複數運算
2.1 複數的四則運算
2.1.1 [ 演算法1] 複數乘法
2.1.2 [ 演算法2] 複數除法
2.1.3 【實例5】 複數的四則運算
2.2 複數的常用函數運算
2.2.1 [ 演算法3] 複數的乘冪
2.2.2 [ 演算法4] 複數的n 次方根
2.2.3 [ 演算法5] 複數指數
2.2.4 [ 演算法6] 複數對數
2.2.5 [ 演算法7] 複數正弦
2.2.6 [ 演算法8] 複數餘弦
2.2.7 【實例6】 複數的函數運算
第3 章 多項式計算
3.1 多項式的表示方法
3.1.1 係數表示法
3.1.2 點表示法
3.1.3 [ 演算法9] 係數表示轉化為點表示
3.1.4 [ 演算法10] 點表示轉化為係數表示
3.1.5 【實例7】 係數表示法與點表示法的轉化
3.2 多項式運算
3.2.1 [ 演算法11] 複係數多項式相乘
3.2.2 [ 演算法12] 實係數多項式相乘
3.2.3 [ 演算法13] 複係數多項式相除
3.2.4 [ 演算法14] 實係數多項式相除
3.2.5 【實例8】 複係數多項式的乘除法
3.2.6 【實例9】 實係數多項式的乘除法
3.3 多項式的求值
3.3.1 [ 演算法15] 一元多項式求值
3.3.2 [ 演算法16] 一元多項式多組求值
3.3.3 [ 演算法17] 二元多項式求值
3.3.4 【實例10】 一元多項式求值
3.3.5 【實例11】 二元多項式求值
第4 章 矩陣計算
4.1 矩陣相乘
4.1.1 [ 演算法18] 實矩陣相乘
4.1.2 [ 演算法19] 複矩陣相乘
4.1.3 【實例12】 實矩陣與複矩陣的乘法
4.2 矩陣的秩與行列式值
4.2.1 [ 演算法20] 求矩陣的秩
4.2.2 [ 演算法21] 求一般矩陣的行列式值
4.2.3 [ 演算法22] 求對稱正定矩陣的行列式值
4.2.4 【實例13】 求矩陣的秩和行列式值
4.3 求反矩陣
4.3.1 [ 演算法23] 求一般複反矩陣
4.3.2 [ 演算法24] 求對稱正定反矩陣
4.3.3 [ 演算法25] 托伯利茲矩陣求反矩陣的Trent 方法
4.3.4 【實例14】 驗證求反矩陣演算法
4.3.5 【實例15】 驗證T 矩陣的反矩陣演算法
4.4 矩陣分解與相似變換
4.4.1 [ 演算法26] 實對稱矩陣的LDL 分解
4.4.2 [ 演算法27] 對稱正定實矩陣的Cholesky 分解
4.4.3 [ 演算法28] 一般實矩陣的全選軸元LU 分解
4.4.4 [ 演算法29] 一般實矩陣的QR 分解
4.4.5 [ 演算法30] 對稱實矩陣相似變換為對稱三對角陣
4.4.6 [ 演算法31] 一般實矩陣相似變換為上Hessen-Burg 矩陣
4.4.7 【實例16】 對一般實矩陣進行QR 分解
4.4.8 【實例17】 對稱矩陣的相似變換
4.4.9 【實例18】 一般實矩陣相似變換
4.5 J矩陣特徵值的計算
4.5.1 [ 演算法32] 求上Hessen-Burg 矩陣全部特徵值的QR 方法
4.5.2 [ 演算法33] 求對稱三對角陣的全部特徵值
4.5.3 [ 演算法34] 求對稱矩陣特徵值的雅可比法
4.5.4 [ 演算法35] 求對稱矩陣特徵值的雅可比過關法
4.5.5 【實例19】 求上Hessen-Burg 矩陣特徵值
4.5.6 【實例20】 分別用兩種雅克比法求對稱矩陣特徵值
第5 章 線性代數方程組的求解
5.1 高斯消去法
5.1.1 [ 演算法36] 求解複係數方程組的全選軸元高斯消去法
5.1.2 [ 演算法37] 求解實係數方程組的全選軸元高斯消去法
5.1.3 [ 演算法38] 求解複係數方程組的全選軸元高斯- 約當消去法
5.1.4 [ 演算法39] 求解實係數方程組的全選軸元高斯- 約當消去法
5.1.5 [ 演算法40] 求解大型稀疏係數矩陣方程組的高斯- 約當消去法
5.1.6 [ 演算法41] 求解三對角線方程組的追趕法
5.1.7 [ 演算法42] 求解帶型方程組的方法
5.1.8 【實例21】 解線性實係數方程組
5.1.9 【實例22】 解線性複係數方程組
5.1.10 【實例23】 解三對角線方程組
5.2 矩陣分解法
5.2.1 [ 演算法43] 求解對稱方程組的LDL 分解法
5.2.2 [ 演算法44] 求解對稱正定方程組的Cholesky 分解法
5.2.3 [ 演算法45] 求解線性最小二乘問題的QR 分解法
5.2.4 【實例24】 求解對稱正定方程組
5.2.5 【實例25】 求解線性最小二乘問題
5.3 疊代方法
5.3.1 [ 演算法46] 病態方程組的求解
5.3.2 [ 演算法47] 雅克比疊代法
5.3.3 [ 演算法48] 高斯- 賽德疊代法
5.3.4 [ 演算法49] 超鬆弛方法
5.3.5 [ 演算法50] 求解對稱正定方程組的共軛梯度方法
5.3.6 [ 演算法51] 求解托伯利茲方程組的列文遜方法
5.3.7 【實例26】 解病態方程組
5.3.8 【實例27】 用疊代法解方程組
5.3.9 【實例28】 求解托伯利茲方程組
第6 章 非線性方程與方程組的求解
6.1 非線性方程求根的基本過程
6.1.1 確定非線性方程實根的初始近似值或根的所在區間
6.1.2 求非線性方程根的精確解 .
6.2 求非線性方程一個實根的方法
6.2.1 [ 演算法52] 對分法
6.2.2 [ 演算法53] 牛頓法
6.2.3 [ 演算法54] 插值法
6.2.4 [ 演算法55] 艾肯疊代法
6.2.5 【實例29】 用對分法求非線性方程組的實根
6.2.6 【實例30】 用牛頓法求非線性方程組的實根
6.2.7 【實例31】 用插值法求非線性方程組的實根
6.2.8 【實例32】 用艾肯疊代法求非線性方程組的實根
6.3 求實係數多項式方程全部根的方法
6.3.1 [ 演算法56] QR 方法
6.3.2 【實例33】 用QR 方法求解多項式的全部根
6.4 求非線性方程組一組實根的方法
6.4.1 [ 演算法57] 梯度法
6.4.2 [ 演算法58] 擬牛頓法
6.4.3 【實例34】 用梯度法計算非線性方程組的一組實根
6.4.4 【實例35】 用擬牛頓法計算非線性方程組的一組實根
第7 章 代數插值法
7.1 拉格朗治插值法
7.1.1 [ 演算法59] 線性插值
7.1.2 [ 演算法60] 二次拋物線插值
7.1.3 [ 演算法61] 全區間插值
7.1.4 【實例36】 拉格朗治插值
7.2 埃爾米特插值
7.2.1 [ 演算法62] 埃爾米特不等距插值
7.2.2 [ 演算法63] 埃爾米特等距插值
7.2.3 【實例37】 埃爾米特插值法
7.3 艾肯逐步插值
7.3.1 [ 演算法64] 艾肯不等距插值
7.3.2 [ 演算法65] 艾肯等距插值
7.3.3 【實例38】 艾肯插值
7.4 光滑插值
7.4.1 [ 演算法66] 光滑不等距插值
7.4.2 [ 演算法67] 光滑等距插值
7.4.3 【實例39】 光滑插值
7.5 三次樣條插值
7.5.1 [ 演算法68] 第一類邊界條件的三次樣條函數插值
7.5.2 [ 演算法69] 第二類邊界條件的三次樣條函數插值
7.5.3 [ 演算法70] 第三類邊界條件的三次樣條函數插值
7.5.4 【實例40】 樣條插值法
7.6 連分式插值
7.6.1 [ 演算法71] 連分式插值
7.6.2 【實例41】 驗證連分式插值的函數
第8 章 數值積分法
8.1 變階寬求積法
8.1.1 [ 演算法72] 變階寬梯形求積法
8.1.2 [ 演算法73] 自適應梯形求積法
8.1.3 [ 演算法74] 變階寬辛普生求積法
8.1.4 [ 演算法75] 變階寬辛普生二重積分方法
8.1.5 [ 演算法76] 龍貝格積分
8.1.6 【實例42】 變階寬積分法進行一重積分
8.1.7 【實例43】 變階寬辛普生積分法進行二重積分
8.2 高斯求積法
8.2.1 [ 演算法77] 勒讓德- 高斯求積法
8.2.2 [ 演算法78] 柴比雪夫求積法
8.2.3 [ 演算法79] 拉蓋爾- 高斯求積法
8.2.4 [ 演算法80] 埃爾米特- 高斯求積法
8.2.5 [ 演算法81] 自適應高斯求積方法
8.2.6 【實例44】 有限區間高斯求積法
8.2.7 【實例45】 半無限區間內高斯求積法
8.2.8 【實例46】 無限區間內高斯求積法
8.3 連分式法
8.3.1 [ 演算法82] 計算一重積分的連分式方法
8.3.2 [ 演算法83] 計算二重積分的連分式方法
8.3.3 【實例47】 連分式法進行一重積分
8.3.4 【實例48】 連分式法進行二重積分
8.4 蒙特卡洛法
8.4.1 [ 演算法84] 蒙特卡洛法進行一重積分
8.4.2 [ 演算法85] 蒙特卡洛法進行二重積分
8.4.3 【實例49】 一重積分的蒙特卡洛法
8.4.4 【實例50】 二重積分的蒙特卡洛法
第9 章 常微分方程(組)初值問題的求解
9.1 歐拉方法
9.1.1 [ 演算法86] 定階寬歐拉方法
9.1.2 [ 演算法87] 變階寬歐拉方法
9.1.3 [ 演算法88] 改進的歐拉方法
9.1.4 【實例51】 歐拉方法求常微分方程數值解
9.2 龍格- 庫塔方法
9.2.1 [ 演算法89] 定階寬龍格- 庫塔方法
9.2.2 [ 演算法90] 變階寬龍格- 庫塔方法
9.2.3 [ 演算法91] 變階寬基爾方法
9.2.4 【實例52】 龍格- 庫塔方法求常微分方程的初值問題
9.3 線性多步法
9.3.1 [ 演算法92] 阿當姆斯預報校正法
9.3.2 [ 演算法93] 哈明方法
9.3.3 [ 演算法94] 全區間積分的雙邊法
9.3.4 【實例53】 線性多步法求常微分方程組初值問題
第10 章 擬合與近似
10.1 資源國際化簡介
10.1 一元多項式擬合
10.1.1 [ 演算法95] 最小二乘擬合
10.1.2 [ 演算法96] 最佳一致近似的裏米茲方法
10.1.3 【實例54】 一元多項式擬合
10.2 矩形區域曲面擬合
10.2.1 [ 演算法97] 矩形區域最小二乘曲面擬合
10.2.2 【實例55】 二元多項式擬合
第11 章 特殊函數
11.1 連分式級數和指數積分
11.1.1 [ 演算法98] 連分式級數求值
11.1.2 [ 演算法99] 指數積分
11.1.3 【實例56】 連分式級數求值
11.1.4 【實例57】 指數積分求值
11. 2 伽馬函數
11.2.1 [ 演算法100] 伽馬函數
11.2.2 [ 演算法101] 貝塔函數
11.2.3 [ 演算法102] 階乘
11.2.4 【實例58】 伽馬函數和貝塔函數求值
11.2.5 【實例59】 階乘求值
11.3 不完全伽馬函數
11.3.1 [ 演算法103] 不完全伽馬函數
11.3.2 [ 演算法104] 誤差函數
11.3.3 [ 演算法105] 卡方分佈函數
11.3.4 【實例60】 不完全伽馬函數求值
11.3.5 【實例61】 誤差函數求值
11.3.6 【實例62】 卡方分佈函數求值
11.4 不完全貝塔函數
11.4.1 [ 演算法106] 不完全貝塔函數
11.4.2 [ 演算法107] 學生分佈函數
11.4.3 [ 演算法108] 累積二項式分佈函數
11.4.4 【實例63】 不完全貝塔函數求值
11.5 貝塞爾函數
11.5.1 [ 演算法109] 第一類整數階貝塞爾函數
11.5.2 [ 演算法110] 第二類整數階貝塞爾函數
11.5.3 [ 演算法111] 變型第一類整數階貝塞爾函數
11.5.4 [ 演算法112] 變型第二類整數階貝塞爾函數
11.5.5 【實例64】 貝塞爾函數求值
11.5.6 【實例65】 變型貝塞爾函數求值
11.6 Carlson 橢圓積分
11.6.1 [ 演算法113] 第一類橢圓積分
11.6.2 [ 演算法114] 第一類橢圓積分的退化形式
11.6.3 [ 演算法115] 第二類橢圓積分
11.6.4 [ 演算法116] 第三類橢圓積分
11.6.5 【實例66】 第一類勒讓德橢圓函數積分求值
11.6.6 【實例67】 第二類勒讓德橢圓函數積分求值
第12 章 極值問題
12.1 一維極值求解方法
12.1.1 [ 演算法117] 確定極小值點所在的區間
12.1.2 [ 演算法118] 一維黃金分割搜尋
12.1.3 [ 演算法119] 一維Brent 方法
12.1.4 [ 演算法120] 使用一階導數的Brent 方法
12.1.5 【實例68】 使用黃金分割搜尋法求極值
12.1.6 【實例69】 使用Brent 法求極值
12.1.7 【實例70】 使用帶導數的Brent 法求極值
12.2 多元函數求極值
12.2.1 [ 演算法121] 不需要導數的一維搜尋
12.2.2 [ 演算法122] 需要導數的一維搜尋
12.2.3 [ 演算法123] Powell 方法
12.2.4 [ 演算法124] 共軛梯度法
12.2.5 [ 演算法125] 準牛頓法
12.2.6 【實例71】 驗證不使用導數的一維搜尋
12.2.7 【實例72】 用Powell 演算法求極值
12.2.8 【實例73】 用共軛梯度法求極值
12.2.9 【實例74】 用準牛頓法求極值
12.3 單純形法
12.3.1 [ 演算法126] 求無約束條件下n 維極值的單純形法
12.3.2 [ 演算法127] 求有約束條件下n 維極值的單純形法
12.3.3 [ 演算法128] 解線性規劃問題的單純形法
12.3.4 【實例75】 用單純形法求無約束條件下N 維的極值
12.3.5 【實例76】 用單純形法求有約束條件下N 維的極值
12.3.6 【實例77】 求解線性規劃問題
第13 章 亂數產生與統計描述
13.1 均勻分佈隨機序列
13.1.1 [ 演算法129] 產生0 到1 之間均勻分佈的一個亂數
13.1.2 [ 演算法130] 產生0 到1 之間均勻分佈的亂數序列
13.1.3 [ 演算法131] 產生任意區間內均勻分佈的一個隨機整數
13.1.4 [ 演算法132] 產生任意區間內均勻分佈的隨機整數序列
13.1.5 【實例78】 產生0 到1 之間均勻分佈的亂數序列
13.1.6 【 實例79】 產生任意區間內均勻分佈的隨機整數序列
13.2 常態分佈隨機序列
13.2.1 [ 演算法133] 產生任意均值與方差的常態分佈的一個亂數
13.2.2 [ 演算法134] 產生任意均值與方差的常態分佈的亂數序列
13.2.3 【實例80】 產生任意均值與方差的常態分佈的一個亂數
13.2.4 【實例81】 產生任意均值與方差的常態分佈的亂數序列
13.3 統計描述
13.3.1 [ 演算法135] 分佈的矩
13.3.2 [ 演算法136] 方差相同時的t 分佈檢驗
13.3.3 [ 演算法137] 方差不同時的t 分佈檢驗
13.3.4 [ 演算法138] 方差的F 檢驗
13.3.5 [ 演算法139] 卡方檢驗
13.3.6 【 實例82】 計算隨機樣本的矩
13.3.7 【 實例83】 t 分佈檢驗
13.3.8 【 實例84】 F 分佈檢驗
13.3.9 【 實例85】 檢驗卡方檢驗的演算法
第14 章 搜尋
14.1 基本搜尋
14.1.1 [ 演算法140] 有序數組的二分搜尋
14.1.2 [ 演算法141] 無序數組同時搜尋最大和最小的元素
14.1.3 [ 演算法142] 無序數組搜尋第M 小的元素
14.1.4 【實例86】 基本搜尋
14.2 結構體和電子檔的搜尋
14.2.1 [ 演算法143] 無序結構體陣列的順序搜尋
14.2.2 [ 演算法144] 電子檔中記錄的順序搜尋
14.2.3 【實例87】 結構體陣列和檔中的搜尋
14.3 雜湊搜尋
14.3.1 [ 演算法145] 字串雜湊函數
14.3.2 [ 演算法146] 雜湊函數
14.3.3 [ 演算法147] 向雜湊表中插入元素
14.3.4 [ 演算法148] 在雜湊表中搜尋元素
14.3.5 [ 演算法149] 在雜湊表中刪除元素
14.3.6 【實例88】 構造雜湊表並進行搜尋
第15 章 排序
15.1 插入排序
15.1.1 [ 演算法150] 直接插入排序
15.1.2 [ 演算法151] 希爾排序
15.1.3 【實例89】 插入排序
15.2 交換排序
15.2.1 [ 演算法152] 氣泡排序
15.2.2 [ 演算法153] 快速排序
15.2.3 【實例90】 交換排序
15.3 選擇排序
15.3.1 [ 演算法154] 直接選擇排序
15.3.2 [ 演算法155] 堆積排序
15.3.3 【實例91】 選擇排序
15.4 線性時間排序
15.4.1 [ 演算法156] 計數排序
15.4.2 [ 演算法157] 基數排序
15.4.3 【實例92】 線性時間排序
15.5 合併排序
15.5.1 [ 演算法158] 二路合併排序
15.5.2 【實例93】 二路合併排序
第16 章 數學變換與濾波
16.1 快速傅立葉變換
16.1.1 [ 演算法159] 複數資料快速傅立葉變換
16.1.2 [ 演算法160] 複數資料快速傅立葉逆變換
16.1.3 [ 演算法161] 實數資料快速傅立葉變換
16.1.4 【實例94】 驗證傅立葉變換的函數
16.2 其他常用變換
16.2.1 [ 演算法162] 快速沃爾什變換
16.2.2 [ 演算法163] 快速阿達瑪變換
16.2.3 [ 演算法164] 快速餘弦變換
16.2.4 【實例95】 驗證沃爾什變換和阿達瑪的函數
16.2.5 【實例96】 驗證離散餘弦變換的函數
16.3 平滑和濾波
16.3.1 [ 演算法165] 五點三次平滑
16.3.2 [ 演算法166] α-β-γ 濾波
16.3.3 【實例97】 驗證五點三次平滑
16.3.4 【實例98】 驗證α-β-γ 濾波演算法