◎ 著者簡介
保羅·奧蘭德(Paul Orland),矽榖創業公司Tachyus的聯閤創始人兼CEO,擁有耶魯大學數學學士學位和華盛頓大學物理學碩士學位,曾任微軟公司軟件開發工程師,近10年來一直緻力於使用數學和函數式編程來優化能源生産。
◎ 譯者簡介
百度KFive,KFive是百度App大前端團隊,成員涵蓋PC端和手機百度的大前端研發者。在業務支持之外,KFive研究的技術方嚮還包括前端基礎架構、跨端開發、Node.js、端智能和前端智能化等,並且積纍瞭豐富的産齣。KFive的名稱不僅來源於起初的辦公地點在百度科技園五號樓,更體現瞭其對軟件開發的理解,即“五Key”:Key1者,精益求精;Key2者,大巧不工;Key3者,獨運匠心;Key4者,百煉韆錘;Key5者,善始善終。
第1章 通過代碼學數學 1
1.1 使用數學和軟件解決商業問題 2
1.2 如何高效學習數學 9
1.3 用上你訓練有素的左腦 11
1.4 小結 14
第一部分 嚮量和圖形
第2章 二維嚮量繪圖 16
2.1 二維嚮量繪圖 16
2.2 平麵嚮量運算 25
2.3 平麵上的角度和三角學 41
2.4 嚮量集閤的變換 57
2.5 用Matplotlib繪圖 61
2.6 小結 62
第3章 上升到三維世界 63
3.1 在三維空間中繪製嚮量 64
3.2 三維空間中的嚮量運算 70
3.3 點積:測量嚮量對齊 78
3.4 嚮量積:測量定嚮區域 88
3.5 在二維平麵上渲染三維對象 96
3.6 小結 102
第4章 變換嚮量和圖形 103
4.1 變換三維對象 105
4.2 綫性變換 117
4.3 小結 132
第5章 使用矩陣計算變換 134
5.1 用矩陣錶示綫性變換 135
5.2 不同形狀矩陣的含義 148
5.3 用矩陣平移嚮量 163
5.4 小結 174
第6章 高維泛化 176
6.1 泛化嚮量的定義 177
6.2 探索不同的嚮量空間 188
6.3 尋找更小的嚮量空間 205
6.4 小結 220
第7章 求解綫性方程組 222
7.1 設計一款街機遊戲 223
7.2 找到直綫的交點 227
7.3 將綫性方程泛化到更高維度 240
7.4 通過解綫性方程來改變嚮量的基 253
7.5 小結 257
第二部分 微積分和物理仿真
第8章 理解變化率 261
8.1 根據體積計算平均流速 262
8.2 繪製隨時間變化的平均流速 266
8.3 瞬時流速的近似值 271
8.4 體積變化的近似值 278
8.5 繪製隨時間變化的體積圖 283
8.6 小結 290
第9章 模擬運動的對象 291
9.1 模擬勻速運動 291
9.2 模擬加速 295
9.3 深入研究歐拉方法 296
9.4 用更小的時間步執行歐拉方法 300
9.5 小結 305
第 10章 使用符號錶達式 306
10.1 用計算機代數係統計算精確的導數 309
10.2.1 將錶達式拆分成若乾部分 310
10.2.3 使用Python語言實現錶達式樹 311
10.2.4 練習 313
10.3 符號錶達式的應用 315
10.4 求函數的導數 323
10.5 自動計算導數 330
10.6 符號化積分函數 335
10.7 小結 338
第 11章 模擬力場 339
11.1 用嚮量場對引力建模 339
11.2 引力場建模 342
11.3 把引力加入小行星遊戲 345
11.4 引入勢能 350
11.5.1 用橫截麵測量陡度 354
11.5.2 計算偏導數 356
11.5.3 用梯度求圖形的陡度 357
11.5.4 用勢能的梯度計算力場 359
11.5.5 練習 361
11.6 小結 364
第12章 優化物理係統 365
12.1 測試炮彈模擬器 367
12.2 計算最佳射程 373
12.3 增強模擬器 381
12.4 利用梯度上升優化範圍 388
12.5 小結 399
第13章 用傅裏葉級數分析聲波 400
13.1 聲波的組閤和分解 401
13.2 用Python播放聲波 402
13.3 把正弦波轉化為聲音 406
13.4 組閤聲波得到新的聲波 412
13.5 將聲波分解為傅裏葉級數 419
13.6 小結 428
第三部分 機器學習的應用
第14章 數據的函數擬閤 431
14.1 衡量函數的擬閤質量 433
14.2 探索函數空間 441
14.3 使用梯度下降法尋找最佳擬閤綫 445
14.4 非綫性函數擬閤 448
14.5 小結 453
第15章 使用logistic迴歸對數據分類 455
15.1 用真實數據測試分類函數 456
15.2 繪製決策邊界 460
15.3 將分類問題構造為迴歸問題 464
15.4 探索可能的logistic函數 471
15.5 尋找最佳logistic函數 477
15.6 小結 483
第16章 訓練神經網絡 484
16.1 用神經網絡對數據進行分類 485
16.2 手寫數字圖像分類 486
16.3 設計神經網絡 491
16.4 用Python構建神經網絡 499
16.5 使用梯度下降法訓練神經網絡 504
16.6 使用反嚮傳播計算梯度 509
16.7 小結 513
附錄A 準備Python(圖靈社區下載)
附錄B Python技巧和竅門(圖靈社區下載)
附錄C 使用OpenGL和PyGame加載和渲染三維模型(圖靈社區下載)
附錄D 數學符號參考(圖靈社區下載)
· · · · · · (
收起)
數學擁有無窮的力量。它既幫助遊戲開發工程師建模物理世界,也幫助量化金融分析師賺取利潤,還幫助音頻處理工程師製作音樂。在數據科學和機器學習領域,數學知識更是不可或缺的。
有人熱愛數學,將它比作詩歌,為之著迷一生;有人很難領會數學的妙處,受睏於“數學焦慮癥”。本書正是為瞭幫助程序員消除這種焦慮,用自己熟悉的工具,即代碼,重新發現數學之美。
◎ 編輯推薦
本書以圖文結閤的方式幫助你用Python代碼解決程序設計中的數學問題。通過邊學邊練,你會發現綫性代數和微積分的重要概念躍然紙上、印在腦中。
◇ 嚮量幾何和計算機圖形
◇ 矩陣和綫性變換
◇ 微積分的核心概念
◇ 仿真和優化
◇ 圖像處理和音頻處理
◇ 用於迴歸和分類的機器學習算法
◎ 內容簡介
代碼和數學是相知相惜的好夥伴,它們基於共同的理性思維,數學公式的推導可以自然地在編寫代碼的過程中展開。
本書帶領程序員使用自己熟知的工具,即代碼,來理解機器學習和遊戲設計中的數學知識。通過Python代碼和300多個練習,讀者將掌握二維嚮量、三維嚮量、矩陣變換、綫性方程、微積分、綫性迴歸、邏輯迴歸、梯度下降等。
◎ 名人推薦
“這本書循序漸進地介紹瞭程序員應該掌握的有用的數學概念。”
——Christopher Haupt,Swoogo公司工程副總裁
“這本書嚴謹而簡明地概述瞭對現代編程起支撐作用的數學知識。”
——Dan Sheikh,BCG Digital Ventures公司工程師
“實用、引人入勝。推薦所有程序員閱讀。”
——Vincent Zhu,RethinkXSocial網站聯閤創始人兼CTO
“這本書為需要提高數學技能的程序員建造瞭一座橋梁,使數學不再那麼神秘、那麼難以理解。”
——Robert Walsh,Excalibur Solutions公司總裁