算法設計與實踐(基於MWORKS)

高建,谷洪彬,李輝

  • 出版商: 電子工業
  • 出版日期: 2026-03-01
  • 售價: $354
  • 語言: 簡體中文
  • 頁數: 220
  • ISBN: 7121524562
  • ISBN-13: 9787121524561
  • 相關分類: Algorithms-data-structures
  • 下單後立即進貨 (約4週~6週)

相關主題

商品描述

本書緊扣高職教育需求,以MWORKS平臺為實踐載體、Julia語言為實現工具,系統搭建算法設計學習體系。第1章率先引入MWORKS平臺,介紹其與算法設計實踐的深度關聯,為後續學習築牢操作根基;第2章聚焦Julia基本語法,幫助學生快速掌握編程表達能力;第3章介紹鏈表、隊列等基礎數據結構,夯實算法實現的數據組織基礎。第4~6章依次展開排序、搜索及圖的相關算法的原理剖析與案例實踐,覆蓋冒泡排序、貪心搜索、有向圖和無向圖等經典內容。第7章闡述線性代數核心知識,揭示其在MWORKS科學計算中的關鍵作用。第8、9章深入講解優化算法與時間序列分析算法,涵蓋遺傳算法、ARIMA模型等數學建模常用方法。本書註重理論與實踐結合,每章都搭配豐富案例,助力高職學生高效掌握算法設計核心技能,提升計算思維與工程實踐能力。本書可作為高職、本科院校計算機相關專業算法設計課程的教材,也可供從事工程計算、數據分析等領域的技術人員參考學習。

目錄大綱

第1章 算法設計與MWORKS 1
1.1 算法設計簡介 1
1.1.1 算法的基本概念 1
1.1.2 算法設計的目標 1
1.1.3 常見算法及本書的主要內容 2
1.1.4 算法分析 2
1.2 NWORKS和MWORKS.Syslab 3
1.2.1 MWORKS簡介 3
1.2.2 MWORKS.Syslab的功能和應用場景 5
課後習題 17
第2章 Julia基本語法 18
2.1 基本數據類型 18
2.1.1 整數類型 18
2.1.2 浮點數類型 21
2.1.3 布爾運算和布爾值類型 23
2.1.4 字符類型 25
2.2 復合數據類型 27
2.2.1 數組 27
2.2.2 元組 28
2.2.3 結構體 28
2.2.4 字典 29
2.3 數學運算與初等函數 30
2.3.1 基本數學運算 30
2.3.2 比較運算 32
2.3.3 基礎函數 34
2.4 流程控制 36
2.4.1 條件語句 36
2.4.2 循環語句 37
2.4.3 異常處理 39
2.4.4 do塊 40
2.5 數據可視化 40
2.5.1 MWORKS平臺數據可視化工具庫 40
2.5.2 二維繪圖 41
2.5.3 三維繪圖 45
2.5.4 圖形定制 47
課後習題 49
第3章 基礎數據結構 51
3.1 鏈表 51
3.1.1 定義 51
3.1.2 基本結構 51
3.1.3 類型 51
3.1.4 基本操作 52
3.1.5 相關算法 53
3.1.6 優缺點 53
3.1.7 應用領域 54
3.2 隊列 54
3.2.1 定義 54
3.2.2 基本結構 54
3.2.3 類型 55
3.2.4 基本操作 55
3.2.5 相關算法 57
3.2.6 優缺點 57
3.2.7 應用領域 58
3.3 棧 58
3.3.1 定義 58
3.3.2 基本結構 58
3.3.3 類型 58
3.3.4 基本操作 59
3.3.5 相關算法 60
3.3.6 優缺點 61
3.3.7 應用領域 61
3.4 二叉樹和哈夫曼樹 62
3.4.1 二叉樹 62
3.4.2 哈夫曼樹 65
課後習題 68
第4章 排序算法 70
4.1 冒泡排序算法 70
4.1.1 冒泡排序算法的原理 71
4.1.2 用Julia語言實現冒泡排序算法 71
4.1.3 使用冒泡排序算法對字符串數組進行排序 73
4.2 快速排序算法 74
4.2.1 快速排序算法的原理 75
4.2.2 用Julia語言實現快速排序算法 75
4.2.3 使用快速排序算法對字符串數組進行排序 77
4.3 選擇排序算法 80
4.3.1 選擇排序算法的原理 80
4.3.2 用Julia語言實現選擇排序算法 82
4.3.3 使用選擇排序算法對字符串數組進行排序 83
4.4 插入排序算法 85
4.4.1 插入排序算法的原理 85
4.4.2 用Julia語言實現插入排序算法 86
4.4.3 使用插入排序算法對字符串數組進行排序 88
4.5 堆排序算法 90
4.5.1 堆排序算法的原理 90
4.5.2 用Julia語言實現堆排序算法 91
4.5.3 使用堆排序算法對字符串數組進行排序 92
課後習題 95
第5章 搜索算法 97
5.1 廣度優先搜索算法 97
5.1.1 廣度優先搜索算法介紹 97
5.1.2 用Julia語言實現廣度優先搜索算法 98
5.1.3 實例演示 100
5.2 深度優先搜索算法 101
5.2.1 深度優先搜索算法介紹 101
5.2.2 用Julia語言實現深度優先搜索算法 103
5.2.3 實例演示 104
5.3 雙向搜索算法 107
5.3.1 雙向搜索算法介紹 107
5.3.2 用Julia語言實現雙向搜索算法 109
5.3.3 實例演示 111
5.4 貪心搜索算法 113
5.4.1 貪心搜索算法介紹 113
5.4.2 用Julia語言實現貪心搜索算法 114
5.4.3 實例演示 115
課後習題 117
第6章 圖的相關算法 119
6.1 圖的基礎 119
6.1.1 圖的概念 119
6.1.2 圖的基本類型 119
6.1.3 圖的有關概念 121
6.1.4 Julia代碼實例 121
6.2 連通分量/極大連通子圖 123
6.2.1 連通圖的概念 123
6.2.2 連通子圖 124
6.2.3 連通分量 124
6.2.4 Julia代碼實例 126
6.3 最短路徑 127
6.3.1 最短路徑的概念 127
6.3.2 兩種常用的最短路徑算法介紹 128
6.3.3 Julia代碼實例 130
6.4 最小生成樹 131
6.4.1 最小生成樹的概念 131
6.4.2 最小生成樹相關算法 132
6.4.3 Julia代碼實例 135
6.5 中心性度量 135
6.5.1 中心性度量的概念 135
6.5.2 中心性度量相關指標 136
6.5.3 Julia代碼實例 136
6.6 網頁排序 139
6.6.1 網頁排序的概念 139
6.6.2 網頁排序相關算法 139
6.6.3 Julia代碼實例 141
課後習題 144
第7章 線性代數 145
7.1 線性方程組與矩陣 145
7.1.1 線性方程組的基本概念 145
7.1.2 矩陣的運算 145
7.1.3 高斯消元法 146
7.2 行列式與向量空間 147
7.2.1 行列式的定義與性質 147
7.2.2 向量空間的基本概念 147
7.2.3 線性變換 147
7.3 特征值與特征向量 148
7.3.1 特征值與特征向量的定義 148
7.3.2 矩陣對角化 149
7.3.3 二次型 149
7.4 MWORKS.Syslab內置線性方程函數 150
7.4.1 矩陣求逆 150
7.4.2 Moore-Penrose偽逆 150
7.4.3 用左除和右除求解線性方程組 150
7.4.4 最小範數最小二乘解 151
7.4.5 用linsolve函數求解線性方程組 151
7.4.6 存在已知協方差的最小二乘解 152
7.4.7 非負線性二乘問題 152
7.4.8 Sylvester方程 152
7.5 特征值與奇異值 153
7.5.1 特征值與特征向量 153
7.5.2 特征值分解 153
7.5.3 奇異值分解(SVD) 154
7.5.4 其他相關函數 154
7.6 矩陣分解 155
7.6.1 LU分解 155
7.6.2 Cholesky分解 155
7.6.3 QR分解 156
7.7 矩陣運算 156
7.7.1 轉置與共軛轉置 156
7.7.2 矩陣乘法與冪 157
7.7.3 矩陣函數 157
7.8 矩陣結構 158
7.8.1 矩陣帶寬 158
7.8.2 矩陣類型判斷 158
7.9 矩陣屬性 159
7.9.1 矩陣範數 159
7.9.2 矩陣行列式 159
7.10 稀疏矩陣 159
7.10.1 創建稀疏矩陣 159
7.10.2 操作稀疏矩陣 162
7.11 應用實例:機器學習中的線性代數 165
7.11.1 線性回歸 165
7.11.2 主成分分析(PCA) 166
7.11.3 圖像壓縮(利用SVD實現) 166
7.11.4 控制系統穩定性判斷(使用特征值分析) 167
課後習題 167
第8章 優化算法 169
8.1 線性規劃算法 169
8.1.1 算法原理 169
8.1.2 應用範圍 170
8.1.3 Julia代碼實例 170
8.2 非線性規劃算法 174
8.2.1 算法原理 174
8.2.2 應用範圍 174
8.2.3 Julia代碼實例 175
8.3 整數規劃算法 178
8.3.1 算法原理 178
8.3.2 應用範圍 179
8.3.3 Julia代碼實例 179
8.4 遺傳算法 184
8.4.1 算法原理 184
8.4.2 應用範圍 185
8.4.3 Julia代碼實例 185
課後習題 193
第9章 時間序列分析算法 194
9.1 移動平均法 194
9.1.1 算法原理 194
9.1.2 應用範圍 195
9.1.3 Julia代碼實例 195
9.2 ARIMA模型 200
9.2.1 算法原理 200
9.2.2 應用範圍 201
9.2.3 Julia代碼實例 201
9.3 線性回歸算法 203
9.3.1 算法原理 203
9.3.2 適用場景 204
9.3.3 Julia代碼實例 204
課後習題 208
參考文獻 210