序
譯者序
第一章 數值
1.0 導論
1.1 精確度(Precision)與準確度(Accuracy)的操作
1.2 混合使用不同數值型態
1.3 以非十進位制表示數值
1.4 取出數值位數
1.5 使用數值區間(Interval)
1.6 轉換數值型態
1.7 以不同格式(Forms)表示數值
第二章 函數式程式設計
2.0 導論
2.1 多引數函數映射(Mapping)
2.2 引數暫緩計算
2.3 建立自動映射至整個串列的函數
2.4 於單次運算中映射數個函數
2.5 於映射指令中加入元素索引值(Index)
2.6 對移動子串列進行函數映射
2.7 以前置式與後置式撰寫易讀程式
2.8 定義具標記之函數(Indexed Functions)
2.9 使用Fold指令取代遞迴運算
2.10 依序加入元素以建構串列
2.11 迭代指令的應用
2.12 以迭代法建立函數
2.13 善用複合(Composition)函數與反函數
2.14 實作閉包(Closures)功能
2.15 實作柯里化(Currying)功能
2.16 建立具預設值之函數
2.17 建立可接受選項之函數
第三章 資料結構
3.0 導論
3.1 確認數值串列的執行效率
3.2 串列排序
3.3 在不排序下取得順序
3.4 擷取矩陣的對角元素
3.5 建立特定結構的矩陣
3.6 建立置換矩陣與位移矩陣
3.7 操作矩陣的行與列
3.8 使用稀疏矩陣以節省記憶體
3.9 使用可指定作用層數的指令處理巢狀串列
3.10 實作位元向量並且自訂其顯示格式
3.11 使用串列實作樹狀結構及其遊歷方式
3.12 以紅黑樹實作有序關聯查表
3.13 善用Mathematica內建關聯查表功能
3.14 以Combinatorica`套件建立圖(Graph)
3.15 以圖論演算法取得圖的資訊
第四章 模式與規則式程式設計
4.0 導論
4.1 取出匹配(或不匹配)模式的元素
4.2 去除匹配(或不匹配)模式的元素
4.3 計算匹配模式的項目個數
4.4 替換表示式元素
4.5 尋找匹配模式的最長(或最短)元素
4.6 以規則式實現演算法
4.7 對ReplaceRepeated指令導致的無窮迴圈進行除錯
4.8 取代過程結束前暫緩運算
4.9 以模式操作模式
4.10 規則式最佳化
4.11 以模式作為資料檢索語言
4.12 語義式模式匹配
4.13 Unification模式匹配
第五章 字串與文字處理
5.0 導論
5.1 字串比較
5.2 字元刪除與取代
5.3 擷取字元與子字串
5.4 字串複製
5.5 字串匹配與搜尋
5.6 以分隔符號分割字串
5.7 使用內建單字集
5.8 匯入XML
5.9 使用模式及規則式轉換XML
5.10 以遞迴函數轉換XML(XSLT方式)
5.11 實作語法分析器(Parser)與文法
第六章 2D圖形繪製
6.0 導論
6.1 2D垂直座標函數繪圖
6.2 2D極座標函數繪圖
6.3 2D參數式函數繪圖
6.4 2D資料繪
6.5 結合圖形
6.6 排列圖形
6.7 使用圖例
6.8 2D幾何圖形繪製
6.9 在圖形中加入文字
6.10 自訂箭頭繪製
第七章 3D圖形繪製
7.0 導論
7.1 3D垂直座標函數繪圖
7.2 3D球座標函數繪圖
7.3 3D圓柱座標函數繪圖
7.4 3D參數式函數繪圖
7.5 3D等值面繪圖
7.6 結合2D等值線圖形及3D圖形
7.7 限制繪圖區域
7.8 3D資料繪圖
7.9 3D不等式繪圖
7.10 3D幾何圖形繪製
7.11 使用網線(Mesh)建立曲面骨架(Wireframe)
7.12 3D圖形視角控制
7.13 3D圖形光照與表面顯示控制
7.14 轉換3D圖形
7.15 探索多面體
7.16 匯入其他格式的3D圖形
第八章 影像處理
8.0 導論
8.1 擷取圖檔資訊
8.2 轉換RGB色彩空間為HSV色彩空間
8.3 使用直方圖均衡化(Histogram Equalization)處理影像
8.4 使用直方圖規格化(Histogram Specification)處理影像
8.5 使用拉普拉斯算符(Laplacian)實作影像清晰化
8.6 使用傅立葉轉換實作影像清晰化及模糊化
8.7 偵測影像中的物體輪廓
8.8 以特徵向量(特徵影像)實作影像辨識
第九章 音訊與音樂處理
9.0 導論
9.1 以音符製作音樂
9.2 製作音階(Scale)及旋律(Melody)
9.3 為旋律加上節奏
9.4 控制音量
9.5 製作和弦
9.6 製作和弦進行
9.7 以傳統和弦記號作曲
9.8 使用打擊樂器
9.9 製作複雜的打擊樂
9.10 匯出MIDI格式檔案
9.11 播放數學函數音訊
9.12 製作顫音(Tremolo)
9.13 製作抖音(Vibrato)
9.14 對音訊進行振幅封包調變(Envelope Modulation)
9.15 探索音階與樂器調音原理(Alternate Tunings)
9.16 匯入數位音訊檔案
9.17 分析數位音訊檔案
9.18 實作短時距傅立葉變換
第十章 代數
10.0 導論
10.1 代數方程式求解
10.2 由解反推多項式
10.3 表示式之形式轉換
10.4 多項式生成
10.5 取出多項式各項成分
10.6 多項式相除
第十一章 連續與離散微積分
11.0 導論
11.1 極限的運算
11.2 使用分段(Piecewise)函數
11.3 函數冪級數表示
11.4 函數微分
11.5 積分
11.6 微分方程式求解
11.7 極值問題求解
11.8 向量微積分問題求解
11.9 數列總和與乘積問題求解
11.10 差分方程式(Difference equations)求解
11.11 生成函數(Generating Functions)及數列模式識別
第十二章 統計與資料分析
12.0 導論
12.1 基本統計指令
12.2 以不同的機率分布產生偽亂數
12.3 機率分布的使用
12.4 示範中央極限定理(Central Limit Theorem)
12.5 向量與矩陣的共變異數及相關係數計算
12.6 資料分布測度
12.7 搜尋並調整離群值(Outliers)
12.8 以線性模型進行資料擬合(Fitting)
12.9 以非線性模型進行資料擬合
12.10 由資料建立內插函數
12.11 以變異數分析(ANOVA)進行統計顯著性(Statistically Significant)測試
12.12 以類別型資料(Categorical Data)進行假設檢定(Hypothesis Testing)
12.13 資料分群
12.14 統計繪圖
12.15 產生準亂數(quasi-random number)
12.16 模擬隨機過程(Stochastic Process)
第十三章 科學與工程
13.0 導論
13.1 使用化學元素線上資料庫
13.2 使用化學線上資料庫
13.3 使用基本粒子線上資料庫
13.4 使用基因與蛋白質線上資料庫
13.5 掠食者與獵物模型的動力學模擬
13.6 基礎剛體問題求解
13.7 運動學問題求解
13.8 計算線性耦合系統的狀態
13.9 弦震動模擬
13.10 電子電路模擬
13.11 以有限元素法模擬桁架結構(Truss Structure)
第十四章 金融工程學
14.0 導論
14.1 使用Mathematica線上金融資料
14.2 從網站匯入金融資料
14.3 未來現金流的現值
14.4 債券利率敏感度分析
14.5 建構殖利率曲線(Yield Curve)
14.6 Black-Scholes歐式選擇權公式
14.7 計算衍生性金融商品的隱含波動性(Implied Volatility)
14.8 加速NDSolve指令對Black-Scholes等偏微分方程求解
14.9 使用有限差分法(Finite Difference Method)計算Black-Scholes公式
14.10 編譯三項樹(Trinomial Tree)演算法實作美式選擇權快速定價
14.11 使用Monte-Carlo等方法模擬投資組合之風險價值模型
14.12 以樹狀圖呈現利率敏感性高的金融商品
第十五章 互動式控制元件
15.0 導論
15.1 互動式操控變數
15.2 互動式操控符號表示式
15.3 互動式操控圖形
15.4 建立即時更新的表示式
15.5 擷取並改變動態表示式中控制元件的數值
15.6 控制動態變數的更新時機
15.7 在互動式Notebook中使用DynamicModule指令建立區域變數
15.8 使用DynamicModule指令設置臨時變數以平衡速度與記憶體空間
15.9 建立完備(Self-Contained)的互動式操控介面
15.10 儲存互動式操控介面上的數值
15.11 分隔快速與費時的操作以改善互動式操控介面的效能
15.12 於互動式介面中設置區域函數
15.13 於不同單元或視窗的DynamicModule中共享變數
15.14 建構自訂控制元件
15.15 建立表示式動畫
15.16 建立自訂互動式介面
15.17 大型互動介面的控制元件管理
第十六章 平行運算
16.0 導論
16.1 設定本機端運算核心
16.2 設定遠端運算核心
16.3 傳送指令至多重運算核心進行同步運算
16.4 將序列式程式平行化
16.5 將資料分散進行平行運算並整合結果
16.6 以ParallelMap指令實作資料平行(Data-Parallel)演算法
16.7 資料分組進行平行運算
16.8 選擇適當的資料分散處理方法
16.9 同時運行多個演算法並接受最快完成的結果
16.10 運算核心間共享資料
16.11 於多核心運行時避免競態條件(Race Condition)
16.12 以管線(Pipeline)方式組織平行運算
16.13 以Map-Reduce技巧處理大量檔案
16.14 平行處理效能分析
16.15 評估平行運算的固定耗費資源
第十七章 程式介面
17.0 導論
17.1 執行外部命令列程式
17.2 執行外部Windows程式
17.3 連接遠端運算核心
17.4 呼叫C與C++函式
17.5 呼叫Java函式
17.6 呼叫Microsoft .NET Framework函式
17.7 於.Net應用程式使用Mathematica運算核心
17.8 檢索資料庫
17.9 更新資料庫
17.10 取得資料庫欄位
第十八章 行家訣竅
18.0 導論
18.1 清除先前指令定義
18.2 修改內建指令與常數
18.3 找出非正式(Undocumented)指令
18.4 將程式封裝為套件
18.5 編譯程式改善效能
18.6 使用樣式表(Stylesheet)將Notebook檔案的外觀標準化
18.7 轉換Notebook檔案格式
18.8 使用程式碼控制前端介面(Frontend)
18.9 於開啟或關閉Mathematica時自動執行程式
18.10 客製化前端介面
第十九章 除錯與測試
19.0 導論
19.1 印出結果進行除錯
19.2 對多次呼叫的指令進行除錯
19.3 使用堆疊追蹤法對遞迴程式進行除錯
19.4 以Trace指令擷取有用的除錯資訊
19.5 建立簡易除錯器
19.6 使用EvaluationMonitor及StepMonitor選項對內建指令進行除錯
19.7 Wolfram Workbench除錯環境
19.8 以單元測試技巧(Unit Test)確保程式正確性
19.9 使用MUnit進行非相等判斷的測試
19.10 使用MUnit組織並控制測試群組
19.11 將Wolfram Workbench的MUnit套件整合至前端介面
索引