《程式師的數學第2版》講解了二進位標記、邏輯、餘數、排列組合、遞迴、指數爆炸、不可解問題等許多與程式設計密切相關的數學方法,分析了哥尼斯堡七橋問題、高斯求和、漢諾塔、斐波那契數列等經典問題和演算法。引導讀者深入理解程式設計中的數學方法和思路。
《程式師的數學第2版》新增一個附錄來介紹機器學習的基礎知識,內容涉及感知器、損失函數、梯度下降法和神經網路,旨在帶領讀者走進機器學習的世界。
作者介紹
結城浩
生於1963年,日本知名技術作家和程式師。在程式設計語言、設計模式、數學、加密技術等領域,編寫了很多深受歡迎的入門書。代表作有《數學女孩》系列、《程式師的數學》《圖解密碼技術》等。
目錄
第1章 0 的故事——無即是有
本章學習內容 2
小學一年級的回憶 2
10進制計數法 3
什麼是10進制計數法 3
分解2503 3
2進制計數法 4
什麼是2進制計數法 4
分解1100 5
基數轉換 6
電腦中為什麼採用2 進制計數法 8
按位元數目法 10
什麼是按位元數目法 10
不使用按位元數目法的羅馬數字 11
指數法則 12
10的0次方是什麼 12
10–1是什麼 13
規則的擴展 14
對20進行思考 14
2–1是什麼 15
0所起的作用 16
0的作用:占位 16
0的作用:統一標準,簡化規則 16
日常生活中的0 17
人類的極限和構造的發現 18
重溫歷史進程 18
為了超越人類的極限 19
本章小結 20
第2章 邏輯——真與假的二元世界
本章學習內容 22
為何邏輯如此重要 22
邏輯是消除歧義的工具 22
致對邏輯持否定意見的讀者 23
乘車費用問題—兼顧完整性和排他性 23
收費規則 23
命題及其真假 24
有沒有“遺漏” 24
有沒有“重複” 25
畫一根數軸輔助思考 26
注意邊界值 27
兼顧完整性和排他性 28
使用if 語句分解問題 28
邏輯的基本是兩個分支 29
建立複雜命題 29
邏輯非—不是A 30
邏輯與—A並且B 32
邏輯或—A或者B 34
異或—A或者B(但不都滿足) 37
相等—A和B相等 39
蘊涵—若A則B 40
囊括所有了嗎 45
德摩根定律 46
德摩根定律是什麼 46
對偶性 47
坎諾圖 48
二燈遊戲 48
首先借助邏輯運算式進行思考 49
學習使用坎諾圖 50
三燈遊戲 52
包含未定義的邏輯 54
帶條件的邏輯與(&&) 55
帶條件的邏輯或(||) 57
三值邏輯中的否定(!) 58
三值邏輯的德摩根定律 59
囊括所有了嗎 60
本章小結 60
第3章 餘數——週期性和分組
本章學習內容 64
星期數的思考題(1) 64
思考題(100 天以後是星期幾) 64
思考題答案 65
運用餘數思考 65
餘數的力量—將較大的數字除一次就能分組 65
星期數的思考題(2) 66
思考題(10100 天以後是星期幾) 66
提示:可以直接計算嗎 67
思考題答案 67
發現規律 68
直觀地把握規律 68
乘方的思考題 70
思考題(1 234 567987 654 321) 70
提示:通過試算找出規律 70
思考題答案 70
回顧:規律和餘數的關係 71
通過黑白棋通信 71
思考題 71
提示 73
思考題答案 73
同位 74
同位檢查位元將數位分為2 個集合 74
尋找戀人的思考題 74
思考題(尋找戀人) 74
提示:先試算較小的數 75
思考題答案 75
回顧 76
鋪設草席的思考題 77
思考題(在房間裡鋪設草席) 77
提示:先計算一下草席數 78
思考題答案 78
回顧 79
一筆劃的思考題 79
思考題(哥尼斯堡七橋問題) 79
提示:試算一下 80
提示:考慮簡化一下 81
提示:考慮入口和出口 82
思考題答案 82
同位 85
本章小結 86
第4章 數學歸納法——如何征服無窮數列
本章學習內容 88
高斯求和 88
思考題(存錢罐裡的錢) 88
思考一下 89
小高斯的解答 89
討論一下小高斯的解答 89
歸納 91
數學歸納法—如何征服無窮數列 91
0 以上的整數的斷言 92
小高斯的斷言 93
什麼是數學歸納法 93
試著征服無窮數列 94
用數學歸納法證明小高斯的斷言 95
求出奇數的和—數學歸納法實例 96
通過數學歸納法證明 96
圖形化說明 98
黑白棋思考題—錯誤的數學歸納法 99
思考題(黑白棋子的顏色) 99
提示:不要為圖所惑 100
思考題答案 101
程式設計和數學歸納法 101
通過迴圈表示數學歸納法 101
迴圈不變式 104
本章小結 107
第5章 排列組合——解決計數問題的方法
本章學習內容 110
計數—與整數的對應關係 110
何謂計數 110
注意“遺漏”和“重複” 111
植樹問題—不要忘記0 111
植樹問題思考題 111
加法法則 115
乘法法則 118
置換 121
歸納一下 122
思考題(撲克牌的擺法) 123
排列 124
歸納一下 126
樹狀圖—能夠認清本質嗎 128
組合 130
歸納一下 131
置換、排列、組合的關係 133
思考題練習 134
重複組合 135
也要善於運用邏輯 137
本章小結 140
第6章 遞迴——自己定義自己
本章學習內容 144
漢諾塔 144
思考題(漢諾塔) 145
提示:先從小漢諾塔著手 145
思考題答案 148
求出解析式 150
解出漢諾塔的程式 151
找出遞迴結構 152
再談階乘 154
階乘的遞迴定義 154
思考題(和的定義) 155
遞迴和歸納 156
斐波那契數列 156
思考題(不斷繁殖的動物) 157
斐波那契數列 159
帕斯卡三角形 162
什麼是帕斯卡三角形 162
遞迴定義組合數 165
組合的數學理論解釋 165
遞迴圖形 167
以遞迴形式畫樹 167
實際作圖 168
謝爾平斯基三角形 170
本章小結 171
第7章 指數爆炸——如何解決複雜問題
本章學習內容 174
什麼是指數爆炸 174
思考題(折紙問題) 174
指數爆炸 177
倍數遊戲—指數爆炸引發的難題 178
程式的設置選項 178
不能認為是“有限的”就不假思索 180
二分法查找—利用指數爆炸進行查找 180
尋找犯人的思考題 180
提示:先思考人數較少的情況 181
思考題答案 182
找出遞迴結構以及遞推公式 183
二分法查找和指數爆炸 185
對數—掌握指數爆炸的工具 186
什麼是對數 187
對數和乘方的關係 187
以2為底的對數 188
以2為底的對數練習 189
對數圖表 189
指數法則和對數 191
對數和計算尺 192
密碼—利用指數爆炸加密 195
暴力破解法 195
字長和安全性的關係 196
如何處理指數爆炸 197
理解問題空間的大小 197
四種處理方法 198
本章小結 199
第8章 不可解問題——不可解的數、無法編寫的程式
本章學習內容 202
反證法 202
什麼是反證法 202
質數思考題 204
反證法的注意事項 205
可數 205
什麼是可數 205
可數集合的例子 206
有沒有不可數的集合 208
對角論證法 209
所有整數數列的集合是不可數的 209
所有實數的集合是不可數的 213
所有函數的集合也是不可數的 214
不可解問題 215
什麼是不可解問題 215
存在不可解問題 216
思考題 217
停機問題 218
停機 218
處理常式的程式 219
什麼是停機問題 219
停機問題的證明 221
寫給尚未理解的讀者 224
不可解問題有很多 226
本章小結 226
第9章 什麼是程式師的數學——總結篇
本章學習內容 230
何為解決問題 233
認清模式,進行抽象化 233
由不擅長催生出的智慧 233
幻想法則 234
程式師的數學 235
附錄 邁向機器學習的第 一步
本附錄學習內容 238
什麼是機器學習 239
受到廣泛關注的機器學習技術 239
機器學習是隨著時代發展誕生的技術 239
預測問題和分類問題 240
預測問題 240
分類問題 243
感知器 245
什麼是感知器 245
加權求和 247
啟動函數 249
感知器小結 250
機器學習是如何“學習”的 250
學習的流程 250
訓練資料與測試資料 251
損失函數 252
梯度下降法 254
作為程式師要做些什麼 256
神經網路 256
什麼是神經網路 256
誤差反向傳播法 258
深度學習和強化學習 259
人類就這樣沒用了嗎 260
附錄小結 261
本章學習內容 2
小學一年級的回憶 2
10進制計數法 3
什麼是10進制計數法 3
分解2503 3
2進制計數法 4
什麼是2進制計數法 4
分解1100 5
基數轉換 6
電腦中為什麼採用2 進制計數法 8
按位元數目法 10
什麼是按位元數目法 10
不使用按位元數目法的羅馬數字 11
指數法則 12
10的0次方是什麼 12
10–1是什麼 13
規則的擴展 14
對20進行思考 14
2–1是什麼 15
0所起的作用 16
0的作用:占位 16
0的作用:統一標準,簡化規則 16
日常生活中的0 17
人類的極限和構造的發現 18
重溫歷史進程 18
為了超越人類的極限 19
本章小結 20
第2章 邏輯——真與假的二元世界
本章學習內容 22
為何邏輯如此重要 22
邏輯是消除歧義的工具 22
致對邏輯持否定意見的讀者 23
乘車費用問題—兼顧完整性和排他性 23
收費規則 23
命題及其真假 24
有沒有“遺漏” 24
有沒有“重複” 25
畫一根數軸輔助思考 26
注意邊界值 27
兼顧完整性和排他性 28
使用if 語句分解問題 28
邏輯的基本是兩個分支 29
建立複雜命題 29
邏輯非—不是A 30
邏輯與—A並且B 32
邏輯或—A或者B 34
異或—A或者B(但不都滿足) 37
相等—A和B相等 39
蘊涵—若A則B 40
囊括所有了嗎 45
德摩根定律 46
德摩根定律是什麼 46
對偶性 47
坎諾圖 48
二燈遊戲 48
首先借助邏輯運算式進行思考 49
學習使用坎諾圖 50
三燈遊戲 52
包含未定義的邏輯 54
帶條件的邏輯與(&&) 55
帶條件的邏輯或(||) 57
三值邏輯中的否定(!) 58
三值邏輯的德摩根定律 59
囊括所有了嗎 60
本章小結 60
第3章 餘數——週期性和分組
本章學習內容 64
星期數的思考題(1) 64
思考題(100 天以後是星期幾) 64
思考題答案 65
運用餘數思考 65
餘數的力量—將較大的數字除一次就能分組 65
星期數的思考題(2) 66
思考題(10100 天以後是星期幾) 66
提示:可以直接計算嗎 67
思考題答案 67
發現規律 68
直觀地把握規律 68
乘方的思考題 70
思考題(1 234 567987 654 321) 70
提示:通過試算找出規律 70
思考題答案 70
回顧:規律和餘數的關係 71
通過黑白棋通信 71
思考題 71
提示 73
思考題答案 73
同位 74
同位檢查位元將數位分為2 個集合 74
尋找戀人的思考題 74
思考題(尋找戀人) 74
提示:先試算較小的數 75
思考題答案 75
回顧 76
鋪設草席的思考題 77
思考題(在房間裡鋪設草席) 77
提示:先計算一下草席數 78
思考題答案 78
回顧 79
一筆劃的思考題 79
思考題(哥尼斯堡七橋問題) 79
提示:試算一下 80
提示:考慮簡化一下 81
提示:考慮入口和出口 82
思考題答案 82
同位 85
本章小結 86
第4章 數學歸納法——如何征服無窮數列
本章學習內容 88
高斯求和 88
思考題(存錢罐裡的錢) 88
思考一下 89
小高斯的解答 89
討論一下小高斯的解答 89
歸納 91
數學歸納法—如何征服無窮數列 91
0 以上的整數的斷言 92
小高斯的斷言 93
什麼是數學歸納法 93
試著征服無窮數列 94
用數學歸納法證明小高斯的斷言 95
求出奇數的和—數學歸納法實例 96
通過數學歸納法證明 96
圖形化說明 98
黑白棋思考題—錯誤的數學歸納法 99
思考題(黑白棋子的顏色) 99
提示:不要為圖所惑 100
思考題答案 101
程式設計和數學歸納法 101
通過迴圈表示數學歸納法 101
迴圈不變式 104
本章小結 107
第5章 排列組合——解決計數問題的方法
本章學習內容 110
計數—與整數的對應關係 110
何謂計數 110
注意“遺漏”和“重複” 111
植樹問題—不要忘記0 111
植樹問題思考題 111
加法法則 115
乘法法則 118
置換 121
歸納一下 122
思考題(撲克牌的擺法) 123
排列 124
歸納一下 126
樹狀圖—能夠認清本質嗎 128
組合 130
歸納一下 131
置換、排列、組合的關係 133
思考題練習 134
重複組合 135
也要善於運用邏輯 137
本章小結 140
第6章 遞迴——自己定義自己
本章學習內容 144
漢諾塔 144
思考題(漢諾塔) 145
提示:先從小漢諾塔著手 145
思考題答案 148
求出解析式 150
解出漢諾塔的程式 151
找出遞迴結構 152
再談階乘 154
階乘的遞迴定義 154
思考題(和的定義) 155
遞迴和歸納 156
斐波那契數列 156
思考題(不斷繁殖的動物) 157
斐波那契數列 159
帕斯卡三角形 162
什麼是帕斯卡三角形 162
遞迴定義組合數 165
組合的數學理論解釋 165
遞迴圖形 167
以遞迴形式畫樹 167
實際作圖 168
謝爾平斯基三角形 170
本章小結 171
第7章 指數爆炸——如何解決複雜問題
本章學習內容 174
什麼是指數爆炸 174
思考題(折紙問題) 174
指數爆炸 177
倍數遊戲—指數爆炸引發的難題 178
程式的設置選項 178
不能認為是“有限的”就不假思索 180
二分法查找—利用指數爆炸進行查找 180
尋找犯人的思考題 180
提示:先思考人數較少的情況 181
思考題答案 182
找出遞迴結構以及遞推公式 183
二分法查找和指數爆炸 185
對數—掌握指數爆炸的工具 186
什麼是對數 187
對數和乘方的關係 187
以2為底的對數 188
以2為底的對數練習 189
對數圖表 189
指數法則和對數 191
對數和計算尺 192
密碼—利用指數爆炸加密 195
暴力破解法 195
字長和安全性的關係 196
如何處理指數爆炸 197
理解問題空間的大小 197
四種處理方法 198
本章小結 199
第8章 不可解問題——不可解的數、無法編寫的程式
本章學習內容 202
反證法 202
什麼是反證法 202
質數思考題 204
反證法的注意事項 205
可數 205
什麼是可數 205
可數集合的例子 206
有沒有不可數的集合 208
對角論證法 209
所有整數數列的集合是不可數的 209
所有實數的集合是不可數的 213
所有函數的集合也是不可數的 214
不可解問題 215
什麼是不可解問題 215
存在不可解問題 216
思考題 217
停機問題 218
停機 218
處理常式的程式 219
什麼是停機問題 219
停機問題的證明 221
寫給尚未理解的讀者 224
不可解問題有很多 226
本章小結 226
第9章 什麼是程式師的數學——總結篇
本章學習內容 230
何為解決問題 233
認清模式,進行抽象化 233
由不擅長催生出的智慧 233
幻想法則 234
程式師的數學 235
附錄 邁向機器學習的第 一步
本附錄學習內容 238
什麼是機器學習 239
受到廣泛關注的機器學習技術 239
機器學習是隨著時代發展誕生的技術 239
預測問題和分類問題 240
預測問題 240
分類問題 243
感知器 245
什麼是感知器 245
加權求和 247
啟動函數 249
感知器小結 250
機器學習是如何“學習”的 250
學習的流程 250
訓練資料與測試資料 251
損失函數 252
梯度下降法 254
作為程式師要做些什麼 256
神經網路 256
什麼是神經網路 256
誤差反向傳播法 258
深度學習和強化學習 259
人類就這樣沒用了嗎 260
附錄小結 261
程序員的數學.2:概率統計
內容簡介
本書沿襲《程序員的數學》平易近人的風格,用通俗的語言和具體的圖表深入講解程序員必須掌握的各類概率統計知識,例證豐富,講解明晰,且提供了大量擴展內容,引導讀者進一步深入學習。
《程序員的數學2:概率統計》涉及隨機變量、貝葉斯公式、離散值和連續值的概率分布、協方差矩陣、多元正態分布、估計與檢驗理論、偽隨機數以及概率論的各類應用,適合程序設計人員與數學愛好者閱讀,也可作為高中或大學非數學專業學生的概率論入門讀物。
《程序員的數學2:概率統計》涉及隨機變量、貝葉斯公式、離散值和連續值的概率分布、協方差矩陣、多元正態分布、估計與檢驗理論、偽隨機數以及概率論的各類應用,適合程序設計人員與數學愛好者閱讀,也可作為高中或大學非數學專業學生的概率論入門讀物。
平岡和幸數理工程學博士,對機器學習興趣濃厚。喜歡Ruby,熱愛Scheme。被Common Lisp吸引,正在潛心研究。
目錄
第1部分 聊聊概率這件事
第1章 概率的定義 3
1.1 概率的數學定義 3
1.2 三扇門(蒙提霍爾問題) ——飛艇視角 4
1.2.1 蒙提霍爾問題 5
1.2.2 正確答案與常見錯誤 6
1.2.3 以飛艇視角表述 6
1.3 三元組(Ω, F, P) ——上帝視角 9
1.4 隨機變量 13
1.5 概率分布 17
1.6 適於實際使用的簡記方式 19
1.6.1 隨機變量的表示方法 19
1.6.2 概率的表示方法 20
1.7 Ω是幕后角色 21
1.7.1 不必在意Ω究竟是什麼 21
1.7.2 的習慣處理方式 22
1.7.3 不含Ω(不含上帝視角)的概率論 23
1.8 一些注意事項 23
1.8.1 想做什麼 23
1.8.2 因為是面積…… 24
1.8.3 解釋 26
第2章 多個隨機變量之間的關系 29
2.1 各縣的土地使用情況(面積計算的預熱) 29
2.1.1 不同縣、不同用途的統計(聯合概率與邊緣概率的預熱) 30
2.1.2 特定縣、特定用途的比例(條件概率的預熱) 31
2.1.3 倒推比例(貝葉斯公式的預熱) 32
2.1.4 比例相同的情況(獨立性的預熱) 34
2.1.5 預熱結束 38
2.2 聯合概率與邊緣概率 38
2.2.1 兩個隨機變量 38
2.2.2 三個隨機變量 41
2.3 條件概率 42
2.3.1 條件概率的定義 42
2.3.2 聯合分布、邊緣分布與條件分布的關系 45
2.3.3 即使條件中使用的不是等號也一樣適用 50
2.3.4 三個或更多的隨機變量 51
2.4 貝葉斯公式 55
2.4.1 問題設置 56
2.4.2 貝葉斯的作圖曲 57
2.4.3 貝葉斯公式 61
2.5 獨立性 63
2.5.1 事件的獨立性(定義) 64
2.5.2 事件的獨立性(等價表述) 67
2.5.3 隨機變量的獨立性 70
2.5.4 三個或更多隨機變量的獨立性(需多加注意) 73
第3章 離散值的概率分布 79
3.1 一些簡單的例子 79
3.2 二項分布 82
3.2.1 二項分布的推導 82
3.2.2 補充:排列nPk、組合nCk 83
3.3 期望值 85
3.3.1 期望值的定義 85
3.3.2 期望值的基本性質 87
3.3.3 期望值乘法運算的注意事項 91
3.3.4 期望值不存在的情況 93
3.4 方差與標准差 99
3.4.1 即使期望值相同 99
3.4.2 方差即「期望值離散程度」的期望值 100
3.4.3 標准差 102
3.4.4 常量的加法、乘法及標准化 104
3.4.5 各項獨立時,和的方差等於方差的和 108
3.4.6 平方的期望值與方差 110
3.5 大數定律 112
3.5.1 獨立同分布 114
3.5.2 平均值的期望值與平均值的方差 116
3.5.3 大數定律 117
3.5.4 大數定律的相關注意事項 118
3.6 補充內容:條件期望與最小二乘法 120
3.6.1 條件期望的定義 120
3.6.2 最小二乘法 121
3.6.3 上帝視角 122
3.6.4 條件方差 123
第4章 連續值的概率分布 127
4.1 漸變色打印問題(密度計算的預熱) 128
4.1.1 用圖表描述油墨的消耗量(累積分布函數的預熱) 128
4.1.2 用圖表描述油墨的打印濃度(概率密度函數預熱) 129
4.1.3 拉伸打印成品對油墨濃度的影響(變量變換的預熱) 133
4.2 概率為零的情況 136
4.2.1 出現概率恰好為零的情況 137
4.2.2 概率為零將帶來什麼問題 139
4.3 概率密度函數 140
4.3.1 概率密度函數 140
4.3.2 均勻分布 146
4.3.3 概率密度函數的變量變換 147
4.4 聯合分布•邊緣分布•條件分布 152
4.4.1 聯合分布 152
4.4.2 本小節之后的閱讀方式 155
4.4.3 邊緣分布 155
4.4.4 條件分布 159
4.4.5 貝葉斯公式 162
4.4.6 獨立性 163
4.4.7 任意區域的概率•均勻分布•變量變換 166
4.4.8 實數值與離散值混合存在的情況 174
4.5 期望值、方差與標准差 174
4.5.1 期望值 175
4.5.2 方差•標准差 179
4.6 正態分布與中心極限定理 180
4.6.1 標准正態分布 181
4.6.2 一般正態分布 184
4.6.3 中心極限定理 187
第5章 協方差矩陣、多元正態分布與橢圓 195
5.1 協方差與相關系數 196
5.1.1 協方差 196
5.1.2 協方差的性質 199
5.1.3 分布傾向的明顯程度與相關系數 200
5.1.4 協方差與相關系數的局限性 206
5.2 協方差矩陣 208
5.2.1 協方差矩陣=方差與協方差的一覽表 208
5.2.2 協方差矩陣的向量形式表述 209
5.2.3 向量與矩陣的運算及期望值 212
5.2.4 向量值隨機變量的補充說明 215
5.2.5 協方差矩陣的變量變換 217
5.2.6 任意方向的發散程度 218
5.3 多元正態分布 220
5.3.1 多元標准正態分布 220
5.3.2 多元一般正態分布 223
5.3.3 多元正態分布的概率密度函數 228
5.3.4 多元正態分布的性質 230
5.3.5 截面與投影 232
5.3.6 補充知識:卡方分布 239
5.4 協方差矩陣與橢圓的關系 242
5.4.1 (實例一)單位矩陣與圓 242
5.4.2 (實例二)對角矩陣與橢圓 244
5.4.3 (實例三)一般矩陣與傾斜的橢圓 247
5.4.4 協方差矩陣的局限性 251
第2部分 探討概率的應用
第6章 估計與檢驗 257
6.1 估計理論 257
6.1.1 描述統計與推斷統計 257
6.1.2 描述統計 258
6.1.3 如何理解推斷統計中的一些概念 260
6.1.4 問題設定 264
6.1.5 期望罰款金額 265
6.1.6 多目標優化 266
6.1.7 (策略一)減少候選項——最小方差無偏估計 267
6.1.8 (策略二)弱化最優定義——最大似然估計 269
6.1.9 (策略三)以單一數值作為評價基准——貝葉斯估計 272
6.1.10 策略選擇的相關注意事項 275
6.2 檢驗理論 276
6.2.1 檢驗理論中的邏輯 276
6.2.2 檢驗理論概述 278
6.2.3 簡單假設 279
6.2.4 復合假設 282
第7章 偽隨機數 285
7.1 偽隨機數的基礎知識 285
7.1.1 隨機數序列 285
7.1.2 偽隨機數序列 286
7.1.3 典型應用:蒙特卡羅方法 287
7.1.4 相關主題:密碼理論中的偽隨機數序列•低差異序列 289
7.2 遵從特定分布的隨機數的生成 291
7.2.1 遵從離散值分布的隨機數的生成 292
7.2.2 遵從連續值分布的隨機數的生成 293
7.2.3 遵從正態分布的隨機數的生成 296
7.2.4 補充知識:三角形內及球面上的均勻分布 298
第8章 概率論的各類應用 305
8.1 回歸分析與多變量分析 305
8.1.1 通過最小二乘法擬合直線 305
8.1.2 主成分分析 312
8.2 隨機過程 319
8.2.1 隨機游走 321
8.2.2 卡爾曼濾波器 326
8.2.3 馬爾可夫鏈 331
8.2.4 關於隨機過程的一些補充說明 342
8.3 信息論 343
8.3.1 熵 343
8.3.2 二元熵 347
8.3.3 信源編碼 349
8.3.4 信道編碼 352
附錄A 本書涉及的數學基礎知識 359
A.1 希臘字母 359
A.2 數 359
A.2.1 自然數•整數 359
A.2.2 有理數•實數 359
A.2.3 復數 360
A.3 集合 360
A.3.1 集合的表述方式 360
A.3.2 無限集的大小 361
A.3.3 強化練習 361
A.4 求和符號∑ 362
A.4.1 定義與基本性質 362
A.4.2 雙重求和 364
A.4.3 范圍指定 366
A.4.4 等比數列 366
A.5 指數與對數 368
A.5.1 指數函數 368
A.5.2 高斯積分 371
A.5.3 對數函數 374
A.6 內積與長度 377
附錄B 近似公式與不等式
B.1 斯特林公式
B.2 琴生不等式
B.3 吉布斯不等式
B.4 馬爾可夫不等式與切比雪夫不等式
B.5 切爾諾夫界
B.6 閔可夫斯基不等式與赫爾德不等式
B.7 算術平均值≥幾何平均值≥調和平均值
附錄C 概率論的補充知識
C.1 隨機變量的收斂
C.1.1 依概率1收斂
C.1.2 依概率收斂
C.1.3 均方收斂
C.1.4 依分布收斂
C.2 特征函數
C.3 KL散度與大偏差原理
第1章 概率的定義 3
1.1 概率的數學定義 3
1.2 三扇門(蒙提霍爾問題) ——飛艇視角 4
1.2.1 蒙提霍爾問題 5
1.2.2 正確答案與常見錯誤 6
1.2.3 以飛艇視角表述 6
1.3 三元組(Ω, F, P) ——上帝視角 9
1.4 隨機變量 13
1.5 概率分布 17
1.6 適於實際使用的簡記方式 19
1.6.1 隨機變量的表示方法 19
1.6.2 概率的表示方法 20
1.7 Ω是幕后角色 21
1.7.1 不必在意Ω究竟是什麼 21
1.7.2 的習慣處理方式 22
1.7.3 不含Ω(不含上帝視角)的概率論 23
1.8 一些注意事項 23
1.8.1 想做什麼 23
1.8.2 因為是面積…… 24
1.8.3 解釋 26
第2章 多個隨機變量之間的關系 29
2.1 各縣的土地使用情況(面積計算的預熱) 29
2.1.1 不同縣、不同用途的統計(聯合概率與邊緣概率的預熱) 30
2.1.2 特定縣、特定用途的比例(條件概率的預熱) 31
2.1.3 倒推比例(貝葉斯公式的預熱) 32
2.1.4 比例相同的情況(獨立性的預熱) 34
2.1.5 預熱結束 38
2.2 聯合概率與邊緣概率 38
2.2.1 兩個隨機變量 38
2.2.2 三個隨機變量 41
2.3 條件概率 42
2.3.1 條件概率的定義 42
2.3.2 聯合分布、邊緣分布與條件分布的關系 45
2.3.3 即使條件中使用的不是等號也一樣適用 50
2.3.4 三個或更多的隨機變量 51
2.4 貝葉斯公式 55
2.4.1 問題設置 56
2.4.2 貝葉斯的作圖曲 57
2.4.3 貝葉斯公式 61
2.5 獨立性 63
2.5.1 事件的獨立性(定義) 64
2.5.2 事件的獨立性(等價表述) 67
2.5.3 隨機變量的獨立性 70
2.5.4 三個或更多隨機變量的獨立性(需多加注意) 73
第3章 離散值的概率分布 79
3.1 一些簡單的例子 79
3.2 二項分布 82
3.2.1 二項分布的推導 82
3.2.2 補充:排列nPk、組合nCk 83
3.3 期望值 85
3.3.1 期望值的定義 85
3.3.2 期望值的基本性質 87
3.3.3 期望值乘法運算的注意事項 91
3.3.4 期望值不存在的情況 93
3.4 方差與標准差 99
3.4.1 即使期望值相同 99
3.4.2 方差即「期望值離散程度」的期望值 100
3.4.3 標准差 102
3.4.4 常量的加法、乘法及標准化 104
3.4.5 各項獨立時,和的方差等於方差的和 108
3.4.6 平方的期望值與方差 110
3.5 大數定律 112
3.5.1 獨立同分布 114
3.5.2 平均值的期望值與平均值的方差 116
3.5.3 大數定律 117
3.5.4 大數定律的相關注意事項 118
3.6 補充內容:條件期望與最小二乘法 120
3.6.1 條件期望的定義 120
3.6.2 最小二乘法 121
3.6.3 上帝視角 122
3.6.4 條件方差 123
第4章 連續值的概率分布 127
4.1 漸變色打印問題(密度計算的預熱) 128
4.1.1 用圖表描述油墨的消耗量(累積分布函數的預熱) 128
4.1.2 用圖表描述油墨的打印濃度(概率密度函數預熱) 129
4.1.3 拉伸打印成品對油墨濃度的影響(變量變換的預熱) 133
4.2 概率為零的情況 136
4.2.1 出現概率恰好為零的情況 137
4.2.2 概率為零將帶來什麼問題 139
4.3 概率密度函數 140
4.3.1 概率密度函數 140
4.3.2 均勻分布 146
4.3.3 概率密度函數的變量變換 147
4.4 聯合分布•邊緣分布•條件分布 152
4.4.1 聯合分布 152
4.4.2 本小節之后的閱讀方式 155
4.4.3 邊緣分布 155
4.4.4 條件分布 159
4.4.5 貝葉斯公式 162
4.4.6 獨立性 163
4.4.7 任意區域的概率•均勻分布•變量變換 166
4.4.8 實數值與離散值混合存在的情況 174
4.5 期望值、方差與標准差 174
4.5.1 期望值 175
4.5.2 方差•標准差 179
4.6 正態分布與中心極限定理 180
4.6.1 標准正態分布 181
4.6.2 一般正態分布 184
4.6.3 中心極限定理 187
第5章 協方差矩陣、多元正態分布與橢圓 195
5.1 協方差與相關系數 196
5.1.1 協方差 196
5.1.2 協方差的性質 199
5.1.3 分布傾向的明顯程度與相關系數 200
5.1.4 協方差與相關系數的局限性 206
5.2 協方差矩陣 208
5.2.1 協方差矩陣=方差與協方差的一覽表 208
5.2.2 協方差矩陣的向量形式表述 209
5.2.3 向量與矩陣的運算及期望值 212
5.2.4 向量值隨機變量的補充說明 215
5.2.5 協方差矩陣的變量變換 217
5.2.6 任意方向的發散程度 218
5.3 多元正態分布 220
5.3.1 多元標准正態分布 220
5.3.2 多元一般正態分布 223
5.3.3 多元正態分布的概率密度函數 228
5.3.4 多元正態分布的性質 230
5.3.5 截面與投影 232
5.3.6 補充知識:卡方分布 239
5.4 協方差矩陣與橢圓的關系 242
5.4.1 (實例一)單位矩陣與圓 242
5.4.2 (實例二)對角矩陣與橢圓 244
5.4.3 (實例三)一般矩陣與傾斜的橢圓 247
5.4.4 協方差矩陣的局限性 251
第2部分 探討概率的應用
第6章 估計與檢驗 257
6.1 估計理論 257
6.1.1 描述統計與推斷統計 257
6.1.2 描述統計 258
6.1.3 如何理解推斷統計中的一些概念 260
6.1.4 問題設定 264
6.1.5 期望罰款金額 265
6.1.6 多目標優化 266
6.1.7 (策略一)減少候選項——最小方差無偏估計 267
6.1.8 (策略二)弱化最優定義——最大似然估計 269
6.1.9 (策略三)以單一數值作為評價基准——貝葉斯估計 272
6.1.10 策略選擇的相關注意事項 275
6.2 檢驗理論 276
6.2.1 檢驗理論中的邏輯 276
6.2.2 檢驗理論概述 278
6.2.3 簡單假設 279
6.2.4 復合假設 282
第7章 偽隨機數 285
7.1 偽隨機數的基礎知識 285
7.1.1 隨機數序列 285
7.1.2 偽隨機數序列 286
7.1.3 典型應用:蒙特卡羅方法 287
7.1.4 相關主題:密碼理論中的偽隨機數序列•低差異序列 289
7.2 遵從特定分布的隨機數的生成 291
7.2.1 遵從離散值分布的隨機數的生成 292
7.2.2 遵從連續值分布的隨機數的生成 293
7.2.3 遵從正態分布的隨機數的生成 296
7.2.4 補充知識:三角形內及球面上的均勻分布 298
第8章 概率論的各類應用 305
8.1 回歸分析與多變量分析 305
8.1.1 通過最小二乘法擬合直線 305
8.1.2 主成分分析 312
8.2 隨機過程 319
8.2.1 隨機游走 321
8.2.2 卡爾曼濾波器 326
8.2.3 馬爾可夫鏈 331
8.2.4 關於隨機過程的一些補充說明 342
8.3 信息論 343
8.3.1 熵 343
8.3.2 二元熵 347
8.3.3 信源編碼 349
8.3.4 信道編碼 352
附錄A 本書涉及的數學基礎知識 359
A.1 希臘字母 359
A.2 數 359
A.2.1 自然數•整數 359
A.2.2 有理數•實數 359
A.2.3 復數 360
A.3 集合 360
A.3.1 集合的表述方式 360
A.3.2 無限集的大小 361
A.3.3 強化練習 361
A.4 求和符號∑ 362
A.4.1 定義與基本性質 362
A.4.2 雙重求和 364
A.4.3 范圍指定 366
A.4.4 等比數列 366
A.5 指數與對數 368
A.5.1 指數函數 368
A.5.2 高斯積分 371
A.5.3 對數函數 374
A.6 內積與長度 377
附錄B 近似公式與不等式
B.1 斯特林公式
B.2 琴生不等式
B.3 吉布斯不等式
B.4 馬爾可夫不等式與切比雪夫不等式
B.5 切爾諾夫界
B.6 閔可夫斯基不等式與赫爾德不等式
B.7 算術平均值≥幾何平均值≥調和平均值
附錄C 概率論的補充知識
C.1 隨機變量的收斂
C.1.1 依概率1收斂
C.1.2 依概率收斂
C.1.3 均方收斂
C.1.4 依分布收斂
C.2 特征函數
C.3 KL散度與大偏差原理
參考文獻
程序員的數學(3):線性代數
內容簡介
本書沿襲「程序員的數學」系列平易近人的風格,用通俗的語言和具象的圖表深入講解了編程中所需的線性代數知識。內容包括向量、矩陣、行列式、秩、逆矩陣、線性方程、LU分解、特征值、對角化、Jordan標准型、特征值算法等。
平岡和幸,專攻應用數學和物理,對機器學習興趣濃厚。喜歡Ruby,熱愛Scheme。被Common Lisp吸引,正在潛心研究。工學博士。
平岡和幸,專攻應用數學和物理,對機器學習興趣濃厚。喜歡Ruby,熱愛Scheme。被Common Lisp吸引,正在潛心研究。工學博士。
堀玄,專攻應用數學和物理,主要從事腦科學與信號處理領域的研究。喜歡Ruby、JavaScript、PostScript等語言。正在研究基於統計學理論的語言處理。工學博士。
目錄
第0章 動機 1
0.1 空間想象給我們帶來的直觀感受 1
0.2 有效利用線性近似的手段 2
第1章 用空間的語言表達向量、矩陣和行列式 5
1.1 向量與空間 5
1.1.1 最直接的定義:把數值羅列起來就是向量 6
1.1.2 「空間」的形象 9
1.1.3 基底 11
1.1.4 構成基底的條件 16
1.1.5 維數 18
1.1.6 坐標 19
1.2 矩陣和映射 19
1.2.1 暫時的定義 19
1.2.2 用矩陣來表達各種關系(1) 24
1.2.3 矩陣就是映射! 25
1.2.4 矩陣的乘積=映射的合成 28
1.2.5 矩陣運算的性質 31
1.2.6 矩陣的乘方=映射的迭代 35
1.2.7 零矩陣、單位矩陣、對角矩陣 37
1.2.8 逆矩陣=逆映射 44
1.2.9 分塊矩陣 47
1.2.10 用矩陣表示各種關系(2) 53
1.2.11 坐標變換與矩陣 55
1.2.12 轉置矩陣=??? 63
1.2.13 補充(1):時刻注意矩陣規模 64
1.2.14 補充(2):從矩陣的元素的角度看 67
1.3 行列式與擴大率 68
1.3.1 行列式=體積擴大率 68
1.3.2 行列式的性質 73
1.3.3 行列式的計算方法(1):計算公式▽ 80
1.3.4 行列式的計算方法(2):筆算法▽ 87
1.3.5 補充:行列式按行(列)展開與逆矩陣▽ 91
第2章 秩、逆矩陣、線性方程組——溯因推理 95
2.1 問題設定:逆問題 95
2.2 良性問題(可逆矩陣) 97
2.2.1 可逆性與逆矩陣 97
2.2.2 線性方程組的解法(系數矩陣可逆的情況)▽ 97
2.2.3 逆矩陣的計算方法▽ 107
2.2.4 初等變換▽ 110
2.3 惡性問題 115
2.3.1 惡性問題示例 115
2.3.2 問題的惡劣程度——核與像 120
2.3.3 維數定理 122
2.3.4 用式子表示「壓縮扁平化」變換(線性無關、線性相關) 126
2.3.5 線索的實際個數(秩) 130
2.3.6 秩的求解方法(1)——悉心觀察 137
2.3.7 秩的求解方法(2)——筆算 142
2.4 良性惡性的判定(逆矩陣存在的條件) 149
2.4.1 重點是「是不是壓縮扁平化映射」 149
2.4.2 與可逆性等價的條件 150
2.4.3 關於可逆性的小結 151
2.5 針對惡性問題的對策 152
2.5.1 求出所有能求的結果(1)理論篇 152
2.5.2 求出所有能求的結果(2)實踐篇 155
2.5.3 最小二乘法 166
2.6 現實中的惡性問題(接近奇異的矩陣) 167
2.6.1 問題源於哪里 167
2.6.2 對策示例——提克洛夫規范化 170
第3章 計算機上的計算(1)——LU分解 173
3.1 引言 173
3.1.1 切莫小看數值計算 173
3.1.2 關於本書中的程序 174
3.2 熱身:加減乘運算 174
3.3 LU分解 176
3.3.1 定義 176
3.3.2 分解能帶來什麼好處 178
3.3.3 LU分解真的可以做到嗎 178
3.3.4 LU分解的運算量如何 180
3.4 LU分解的步驟(1)一般情況 182
3.5 利用LU分解求行列式值 186
3.6 利用LU分解求解線性方程組 187
3.7 利用LU分解求逆矩陣 191
3.8 LU分解的步驟(2)意外發生的情況 192
3.8.1 需要整理順序的情況 192
3.8.2 重新整理順序也無濟於事的狀況 196
第4章 特征值、對角化、Jordan標准型——判斷是否有失控的危險 197
4.1 問題的提出:穩定性 197
4.2 一維的情況 202
4.3 對角矩陣的情況 203
4.4 可對角化的情況 205
4.4.1 變量替換 205
4.4.2 變量替換的求法 213
4.4.3 從坐標變換的角度來解釋 215
4.4.4 從乘方的角度來解釋 219
4.4.5 結論:關鍵取決於特征值的絕對值 220
4.5 特征值、特征向量 220
4.5.1 幾何學意義 220
4.5.2 特征值、特征向量的性質 225
4.5.3 特征值的計算:特征方程 232
4.5.4 特征向量的計算▽ 240
4.6 連續時間系統 246
4.6.1 微分方程 247
4.6.2 一階情況 250
4.6.3 對角矩陣的情況 250
4.6.4 可對角化的情況 252
4.6.5 結論:特征值(的實部)的符號是關鍵 252
4.7 不可對角化的情況 255
4.7.1 首先給出結論 255
4.7.2 就算不能對角化——Jordan標准型 256
4.7.3 Jordan標准型的性質 257
4.7.4 利用Jordan標准型解決初始值問題(失控判定的最終結論) 264
4.7.5 化Jordan標准型的方法 271
4.7.6 任何方陣均可化為Jordan標准型的證明 279
第5章 計算機上的計算(2)——特征值算法 299
5.1 概要 299
5.1.1 和筆算的不同之處 299
5.1.2 伽羅華理論 300
5.1.35×5以上的矩陣的特征值不存在通用的求解步驟! 302
5.1.4 有代表性的特征值數值算法 303
5.2 Jacobi方法 303
5.2.1 平面旋轉 304
5.2.2 通過平面旋轉進行相似變換 306
5.2.3 計算過程的優化 309
5.3 冪法原理 310
5.3.1 求絕對值最大的特征值 310
5.3.2 求絕對值最小的特征值 311
5.3.3 QR分解 312
5.3.4 求所有特征值 316
5.4 QR方法 318
5.4.1 QR方法的原理 319
5.4.2 Hessenberg矩陣 321
5.4.3 Householder方法 322
5.4.4 Hessenberg矩陣的QR迭代 325
5.4.5 原點位移、降階 327
5.4.6 對稱矩陣的情況 327
5.5 反冪法 328
附錄A 希臘字母表 330
附錄B 復數 331
附錄C 關於基底的補充說明 336
附錄D 微分方程的解法 341
D.1 dx/dt=f(x)型 341
D.2 dx/dt=ax+g(t)型 342
附錄E 內積、對稱矩陣、正交矩陣 346
E.1 內積空間 346
E.1.1 模長 346
E.1.2 正交 347
E.1.3 內積 347
E.1.4 標准正交基 349
E.1.5 轉置矩陣 351
E.1.6 復內積空間 351
E.2 對稱矩陣與正交矩陣——實矩陣的情況 352
E.3 埃爾米特矩陣與酉矩陣——復矩陣的情況 353
附錄F 動畫演示程序的使用方法 354
F.1 執行結果 354
F.2 准備工作 354
F.3 使用方法 355
參考文獻 357
0.1 空間想象給我們帶來的直觀感受 1
0.2 有效利用線性近似的手段 2
第1章 用空間的語言表達向量、矩陣和行列式 5
1.1 向量與空間 5
1.1.1 最直接的定義:把數值羅列起來就是向量 6
1.1.2 「空間」的形象 9
1.1.3 基底 11
1.1.4 構成基底的條件 16
1.1.5 維數 18
1.1.6 坐標 19
1.2 矩陣和映射 19
1.2.1 暫時的定義 19
1.2.2 用矩陣來表達各種關系(1) 24
1.2.3 矩陣就是映射! 25
1.2.4 矩陣的乘積=映射的合成 28
1.2.5 矩陣運算的性質 31
1.2.6 矩陣的乘方=映射的迭代 35
1.2.7 零矩陣、單位矩陣、對角矩陣 37
1.2.8 逆矩陣=逆映射 44
1.2.9 分塊矩陣 47
1.2.10 用矩陣表示各種關系(2) 53
1.2.11 坐標變換與矩陣 55
1.2.12 轉置矩陣=??? 63
1.2.13 補充(1):時刻注意矩陣規模 64
1.2.14 補充(2):從矩陣的元素的角度看 67
1.3 行列式與擴大率 68
1.3.1 行列式=體積擴大率 68
1.3.2 行列式的性質 73
1.3.3 行列式的計算方法(1):計算公式▽ 80
1.3.4 行列式的計算方法(2):筆算法▽ 87
1.3.5 補充:行列式按行(列)展開與逆矩陣▽ 91
第2章 秩、逆矩陣、線性方程組——溯因推理 95
2.1 問題設定:逆問題 95
2.2 良性問題(可逆矩陣) 97
2.2.1 可逆性與逆矩陣 97
2.2.2 線性方程組的解法(系數矩陣可逆的情況)▽ 97
2.2.3 逆矩陣的計算方法▽ 107
2.2.4 初等變換▽ 110
2.3 惡性問題 115
2.3.1 惡性問題示例 115
2.3.2 問題的惡劣程度——核與像 120
2.3.3 維數定理 122
2.3.4 用式子表示「壓縮扁平化」變換(線性無關、線性相關) 126
2.3.5 線索的實際個數(秩) 130
2.3.6 秩的求解方法(1)——悉心觀察 137
2.3.7 秩的求解方法(2)——筆算 142
2.4 良性惡性的判定(逆矩陣存在的條件) 149
2.4.1 重點是「是不是壓縮扁平化映射」 149
2.4.2 與可逆性等價的條件 150
2.4.3 關於可逆性的小結 151
2.5 針對惡性問題的對策 152
2.5.1 求出所有能求的結果(1)理論篇 152
2.5.2 求出所有能求的結果(2)實踐篇 155
2.5.3 最小二乘法 166
2.6 現實中的惡性問題(接近奇異的矩陣) 167
2.6.1 問題源於哪里 167
2.6.2 對策示例——提克洛夫規范化 170
第3章 計算機上的計算(1)——LU分解 173
3.1 引言 173
3.1.1 切莫小看數值計算 173
3.1.2 關於本書中的程序 174
3.2 熱身:加減乘運算 174
3.3 LU分解 176
3.3.1 定義 176
3.3.2 分解能帶來什麼好處 178
3.3.3 LU分解真的可以做到嗎 178
3.3.4 LU分解的運算量如何 180
3.4 LU分解的步驟(1)一般情況 182
3.5 利用LU分解求行列式值 186
3.6 利用LU分解求解線性方程組 187
3.7 利用LU分解求逆矩陣 191
3.8 LU分解的步驟(2)意外發生的情況 192
3.8.1 需要整理順序的情況 192
3.8.2 重新整理順序也無濟於事的狀況 196
第4章 特征值、對角化、Jordan標准型——判斷是否有失控的危險 197
4.1 問題的提出:穩定性 197
4.2 一維的情況 202
4.3 對角矩陣的情況 203
4.4 可對角化的情況 205
4.4.1 變量替換 205
4.4.2 變量替換的求法 213
4.4.3 從坐標變換的角度來解釋 215
4.4.4 從乘方的角度來解釋 219
4.4.5 結論:關鍵取決於特征值的絕對值 220
4.5 特征值、特征向量 220
4.5.1 幾何學意義 220
4.5.2 特征值、特征向量的性質 225
4.5.3 特征值的計算:特征方程 232
4.5.4 特征向量的計算▽ 240
4.6 連續時間系統 246
4.6.1 微分方程 247
4.6.2 一階情況 250
4.6.3 對角矩陣的情況 250
4.6.4 可對角化的情況 252
4.6.5 結論:特征值(的實部)的符號是關鍵 252
4.7 不可對角化的情況 255
4.7.1 首先給出結論 255
4.7.2 就算不能對角化——Jordan標准型 256
4.7.3 Jordan標准型的性質 257
4.7.4 利用Jordan標准型解決初始值問題(失控判定的最終結論) 264
4.7.5 化Jordan標准型的方法 271
4.7.6 任何方陣均可化為Jordan標准型的證明 279
第5章 計算機上的計算(2)——特征值算法 299
5.1 概要 299
5.1.1 和筆算的不同之處 299
5.1.2 伽羅華理論 300
5.1.35×5以上的矩陣的特征值不存在通用的求解步驟! 302
5.1.4 有代表性的特征值數值算法 303
5.2 Jacobi方法 303
5.2.1 平面旋轉 304
5.2.2 通過平面旋轉進行相似變換 306
5.2.3 計算過程的優化 309
5.3 冪法原理 310
5.3.1 求絕對值最大的特征值 310
5.3.2 求絕對值最小的特征值 311
5.3.3 QR分解 312
5.3.4 求所有特征值 316
5.4 QR方法 318
5.4.1 QR方法的原理 319
5.4.2 Hessenberg矩陣 321
5.4.3 Householder方法 322
5.4.4 Hessenberg矩陣的QR迭代 325
5.4.5 原點位移、降階 327
5.4.6 對稱矩陣的情況 327
5.5 反冪法 328
附錄A 希臘字母表 330
附錄B 復數 331
附錄C 關於基底的補充說明 336
附錄D 微分方程的解法 341
D.1 dx/dt=f(x)型 341
D.2 dx/dt=ax+g(t)型 342
附錄E 內積、對稱矩陣、正交矩陣 346
E.1 內積空間 346
E.1.1 模長 346
E.1.2 正交 347
E.1.3 內積 347
E.1.4 標准正交基 349
E.1.5 轉置矩陣 351
E.1.6 復內積空間 351
E.2 對稱矩陣與正交矩陣——實矩陣的情況 352
E.3 埃爾米特矩陣與酉矩陣——復矩陣的情況 353
附錄F 動畫演示程序的使用方法 354
F.1 執行結果 354
F.2 准備工作 354
F.3 使用方法 355
參考文獻 357