| | | 程序員數學 用Python學透線性代數和微積分 | 該商品所屬分類:圖書 -> 人民郵電出版社 | 【市場價】 | 1203-1744元 | 【優惠價】 | 752-1090元 | 【作者】 | 保羅·奧蘭德百度KFive | 【出版社】 | 人民郵電出版社 | 【ISBN】 | 9787115576491 | 【折扣說明】 | 一次購物滿999元台幣免運費+贈品 一次購物滿2000元台幣95折+免運費+贈品 一次購物滿3000元台幣92折+免運費+贈品 一次購物滿4000元台幣88折+免運費+贈品
| 【本期贈品】 | ①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
| |
版本 | 正版全新電子版PDF檔 | 您已选择: | 正版全新 | 溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。*. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。 *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。 *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。 | | | | 內容介紹 | |
出版社:人民郵電出版社 ISBN:9787115576491 版次:1 商品編碼:13538566 品牌:iTuring 包裝:平裝 叢書名:圖靈程序設計叢書 開本:16開 出版時間:2021-12-01 用紙:膠版紙 頁數:513 正文語種:中文 作者:保羅·奧蘭德,百度KFive
" 編輯推薦 1.500餘幅圖片,本書以圖文結合的方式幫助你用Python代碼解決程序設計中的數學問題。 2.300餘個練習,通過邊學邊練,你會發現線性代數和微積分的重要概念躍然紙上、印在腦中。 3.提供配套源代碼和本書彩色圖片下載。 數學擁有無窮的力量。它既幫助遊戲開發工程師建模物理世界,也幫助量化金融分析師賺取利潤,還幫助音頻處理工程師制作音樂。在數據科學和機器學習領域,數學知識更是不可或缺的。 有人熱愛數學,將它比作詩歌,為之著迷一生;有人很難領會數學的妙處,受困於“數學焦慮癥”。本書正是為了幫助程序員消除這種焦慮,用自己熟悉的工具,即代碼,重新發現數學之美。 √ 向量幾何和計算機圖形 √ 矩陣和線性變換 √ 微積分的核心概念 √ 仿真和優化 √ 圖像處理和音頻處理 √ 用於回歸和分類的機器學習算法 “這本書循序漸進地介紹了程序員應該掌握的有用的數學概念。” ——Christopher Haupt,Swoogo公司工程副總裁 “這本書嚴謹而簡明地概述了對現代編程起支撐作用的數學知識。” ——Dan Sheikh,BCG Digital Ventures公司工程師 “實用、引人入勝。推薦所有程序員閱讀。” ——Vincent Zhu,RethinkXSocial網站聯合創始人兼CTO “這本書為需要提高數學技能的程序員建造了一座橋梁,使數學不再那麼神秘、那麼難以理解。” ——Robert Walsh,Excalibur Solutions公司總裁 內容簡介 代碼和數學是相知相惜的好伙伴,它們基於共同的理性思維,數學公式的推導可以自然地在編寫代碼的過程中展開。本書帶領程序員使用自己熟知的工具,即代碼,來理解機器學習和遊戲設計中的數學知識。通過Python代碼和200多個小項目,讀者將掌握二維向量、三維向量、矩陣變換、線性方程、微積分、線性回歸、logistic回歸、梯度下降等知識。 作者簡介 【作者簡介】 保羅.奧蘭德(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.1.1 預測金融市場走勢 2 1.1.2 尋找優質交易 4 1.1.3 構建三維圖形和動畫 6 1.1.4 對物理世界建模 8 1.2 如何高效學習數學 9 1.2.1 Jane想學習數學 9 1.2.2 在數學課本中苦苦掙扎 10 1.3 用上你訓練有素的左腦 11 1.3.1 使用正式的語言 11 1.3.2 構建你自己的計算器 12 1.3.3 用函數建立抽像概念 13 1.4 小結 14 第 一部分 向量和圖形 第 2章 二維向量繪圖 16 2.1 二維向量繪圖 16 2.1.1 如何表示二維向量 18 2.1.2 用Python繪制二維圖形 20 2.1.3 練習 23 2.2 平面向量運算 25 2.2.1 向量的分量和長度 28 2.2.2 向量與數相乘 29 2.2.3 減法、位移和距離 31 2.2.4 練習 34 2.3 平面上的角度和三角學 41 2.3.1 從角度到分量 42 2.3.2 Python中的三角學和弧度 46 2.3.3 從分量到角度 47 2.3.4 練習 50 2.4 向量集合的變換 57 2.4.1 組合向量變換 59 2.4.2 練習 60 2.5 用Matplotlib繪圖 61 2.6 小結 62 第3章 上升到三維世界 63 3.1 在三維空間中繪制向量 64 3.1.1 用坐標表示三維向量 66 3.1.2 用Python進行三維繪圖 66 3.1.3 練習 68 3.2 三維空間中的向量運算 70 3.2.1 添加三維向量 70 3.2.2 三維空間中的標量乘法 72 3.2.3 三維向量減法 72 3.2.4 計算長度和距離 73 3.2.5 計算角度和方向 74 3.2.6 練習 75 3.3 點積:測量向量對齊 78 3.3.1 繪制點積 78 3.3.2 計算點積 80 3.3.3 點積的示例 82 3.3.4 用點積測量角度 83 3.3.5 練習 85 3.4 向量積:測量定向區域 88 3.4.1 在三維空間中確定自己的朝向 88 3.4.2 找到向量積的方向 89 3.4.3 求向量積的長度 91 3.4.4 計算三維向量的向量積 92 3.4.5 練習 93 3.5 在二維平面上渲染三維對像 96 3.5.1 使用向量定義三維對像 97 3.5.2 二維投影 98 3.5.3 確定面的朝向和陰影 99 3.5.4 練習 101 3.6 小結 102 第4章 變換向量和圖形 103 4.1 變換三維對像 105 4.1.1 繪制變換後的對像 105 4.1.2 組合向量變換 107 4.1.3 繞軸旋轉對像 110 4.1.4 創造屬於你自己的幾何變換 113 4.2 線性變換 117 4.2.1 向量運算的不變性 117 4.2.2 圖解線性變換 119 4.2.3 為什麼要做線性變換 121 4.2.4 計算線性變換 124 4.2.5 練習 127 4.3 小結 132 第5章 使用矩陣計算變換 134 5.1 用矩陣表示線性變換 135 5.1.1 把向量和線性變換寫成矩陣形式 135 5.1.2 矩陣與向量相乘 136 5.1.3 用矩陣乘法組合線性變換 138 5.1.4 實現矩陣乘法 140 5.1.5 用矩陣變換表示三維動畫 141 5.1.6 練習 142 5.2 不同形狀矩陣的含義 148 5.2.1 列向量組成的矩陣 149 5.2.2 哪些矩陣可以相乘 151 5.2.3 將方陣和非方陣視為向量函數 152 5.2.4 從三維到二維的線性映射投影 154 5.2.5 組合線性映射 156 5.2.6 練習 157 5.3 用矩陣平移向量 163 5.3.1 線性化平面平移 163 5.3.2 尋找做二維平移的三維矩陣 167 5.3.4 在四維世界裡平移三維對像 170 5.4 小結 174 第6章 高維泛化 176 6.1 泛化向量的定義 177 6.1.1 為二維坐標向量創建一個類 178 6.1.3 使用同樣的方法定義三維向量 179 6.1.4 構建向量基類 180 6.1.5 定義向量空間 182 6.1.6 對向量空間類測試 185 6.2 探索不同的向量空間 188 6.2.1 枚舉所有坐標向量空間 188 6.2.2 識別現實中的向量 190 6.2.3 將函數作為向量處理 192 6.2.4 將矩陣作為向量處理 194 6.2.5 使用向量運算來操作圖像 195 6.2.6 練習 198 6.3 尋找更小的向量空間 205 6.3.1 定義子空間 205 6.3.2 從單個向量開始 207 6.3.3 生成更大的空間 207 6.3.4 定義“維度”的概念 209 6.3.5 尋找函數向量空間的子空間 210 6.3.6 圖像的子空間 212 6.3.7 練習 214 6.4 小結 220 第7章 求解線性方程組 222 7.1 設計一款街機遊戲 223 7.1.1 遊戲建模 223 7.1.2 渲染遊戲 224 7.1.3 發射激光 225 7.1.4 練習 226 7.2 找到直線的交點 227 7.2.1 為直線選擇正確的公式 227 7.2.2 直線的標準形式方程 229 7.2.3 線性方程組的矩陣形式 231 7.2.4 使用NumPy求解線性方程組 233 7.2.6 識別不可解方程組 234 7.2.7 練習 236 7.3 將線性方程泛化到更高維度 240 7.3.1 在三維空間中表示平面 240 7.3.2 在三維空間中求解線性方程組 243 7.3.4 計算維數、方程和解 245 7.3.5 練習 246 7.4 通過解線性方程來改變向量的基 253 7.4.1 在三維空間中求解 255 7.4.2 練習 256 7.5 小結 257 第二部分 微積分和物理仿真 第8章 理解變化率 261 8.1 根據體積計算平均流速 262 8.1.1 實現average_flow_rate函數 263 8.1.2 用割線描繪平均流速 264 8.1.3 負變化率 265 8.1.4 練習 266 8.2 繪制隨時間變化的平均流速 266 8.2.1 計算不同時間段內的平均流速 267 8.2.2 繪制間隔流速圖 268 8.2.3 練習 270 8.3 瞬時流速的近似值 271 8.3.1 計算小割線的斜率 272 8.3.2 構建瞬時流速函數 274 8.3.3 柯裡化並繪制瞬時流速函數 277 8.4 體積變化的近似值 278 8.4.1 計算短時間間隔內的體積變化 279 8.4.2 將時間分割成更小的間隔 280 8.4.3 在流速圖上繪制體積變化的圖形 280 8.4.4 練習 283 8.5 繪制隨時間變化的體積圖 283 8.5.1 計算隨時間變化的體積 283 8.5.2 繪制體積函數的黎曼和 285 8.5.3 提升近似結果的精確度 286 8.5.4 定積分和不定積分 288 8.6 小結 290 第9章 模擬運動的對像 291 9.1 模擬勻速運動 291 9.1.1 給小行星設置速度 292 9.1.2 更新遊戲引擎,讓小行星運動 292 9.1.3 保持小行星在屏幕上 293 9.1.4 練習 295 9.2 模擬加速 295 9.3 深入研究歐拉方法 296 9.3.1 手動計算歐拉方法 297 9.3.2 使用 Python 實現算法 298 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.3.1 尋找表達式中的所有變量 317 10.3.3 表達式展開 319 10.3.4 練習 321 10.4 求函數的導數 323 10.4.1 冪的導數 324 10.4.2 變換後函數的導數 324 10.4.3 一些特殊函數的導數 326 10.4.4 乘積與組合的導數 327 10.4.5 練習 328 10.5 自動計算導數 330 10.5.1 實現表達式的導數方法 330 10.5.2 實現乘積法則和鏈式法則 332 10.5.4 練習 334 10.6 符號化積分函數 335 10.6.1 積分作為反導數 335 10.6.2 SymPy庫介紹 336 10.6.3 練習 337 10.7 小結 338 第 11章 模擬力場 339 11.1 用向量場對引力建模 339 11.2 引力場建模 342 11.2.1 定義一個向量場 343 11.2.2 定義一個簡單的力場 344 11.3 把引力加入小行星遊戲 345 11.3.1 讓遊戲中的對像感受到引力 346 11.3.2 練習 349 11.4 引入勢能 350 11.4.1 定義勢能標量場 351 11.4.2 將標量場繪制成熱圖 352 11.4.3 將標量場繪制成等高線圖 354 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.1.1 用歐拉方法建立模擬器 368 12.1.2 測量彈道的屬性 369 12.1.3 探索不同的發射角度 370 12.1.4 練習 371 12.2 計算最佳射程 373 12.2.1 求炮彈射程關於發射角的函數 373 12.2.2 求最大射程 376 12.2.3 確定最大值和最小值 378 12.2.4 練習 379 12.3 增強模擬器 381 12.3.1 添加另一個維度 381 12.3.2 在炮彈周圍建立地形模型 383 12.3.4 練習 386 12.4 利用梯度上升優化範圍 388 12.4.1 繪制射程與發射參數的關繫圖 388 12.4.2 射程函數的梯度 389 12.4.3 利用梯度尋找上坡方向 390 12.4.4 實現梯度上升 392 12.4.5 練習 395 12.5 小結 399 第 13章 用傅裡葉級數分析聲波 400 13.1 聲波的組合和分解 401 13.2 用Python播放聲波 402 13.2.1 產生第 一個聲音 402 13.2.2 演奏音符 405 13.2.3 練習 406 13.3 把正弦波轉化為聲音 406 13.3.1 用正弦函數制作音頻 406 13.3.2 改變正弦函數的頻率 408 13.3.3 對聲波進行采樣和播放 409 13.3.4 練習 411 13.4 組合聲波得到新的聲波 412 13.4.1 疊加聲波的樣本來構造和弦 412 13.4.2 兩個聲波疊加後的圖形 413 13.4.3 構造正弦波的線性組合 414 13.4.4 用正弦波構造一個熟悉的函數 416 13.4.5 練習 419 13.5 將聲波分解為傅裡葉級數 419 13.5.1 用內積確定向量分量 420 13.5.2 定義周期函數的內積 421 13.5.3 實現一個函數來計算傅裡葉繫數 423 13.5.4 求方波的傅裡葉繫數 424 13.5.5 其他波形的傅裡葉繫數 424 13.5.6 練習 426 13.6 小結 428 第三部分 機器學習的應用 第 14章 數據的函數擬合 431 14.1 衡量函數的擬合質量 433 14.1.1 計算數據與函數的距離 434 14.1.2 計算誤差的平方和 436 14.1.3 計算汽車價格函數的代價 440 14.2 探索函數空間 441 14.2.1 繪制通過原點的直線的代價 442 14.2.2 所有線性函數的空間 443 14.2.3 練習 445 14.3 使用梯度下降法尋找最佳擬合線 445 14.3.1 縮放數據 445 14.3.2 找到並繪制最佳擬合線 446 14.3.3 練習 447 14.4 非線性函數擬合 448 14.4.1 理解指數函數的行為 448 14.4.2 尋找最佳擬合的指數函數 451 14.5 小結 453 第 15章 使用logistic回歸對數據分類 455 15.1 用真實數據測試分類函數 456 15.1.1 加載汽車數據 457 15.1.2 測試分類函數 458 15.1.3 練習 458 15.2 繪制決策邊界 460 15.2.1 繪制汽車的向量空間 460 15.2.2 繪制更好的決策邊界 461 15.2.3 實現分類函數 462 15.2.4 練習 463 15.3 將分類問題構造為回歸問題 464 15.3.1 縮放原始汽車數據 464 15.3.2 衡量汽車的“寶馬性” 465 15.3.3 sigmoid函數 467 15.3.4 將sigmoid函數與其他函數組合 468 15.3.5 練習 470 15.4 探索可能的logistic函數 471 15.4.1 參數化logistic函數 472 15.4.2 衡量logistic函數的擬合質量 472 15.4.3 測試不同的logistic函數 474 15.4.4 練習 475 15.5 尋找最佳logistic函數 477 15.5.1 三維中的梯度下降法 477 15.5.2 使用梯度下降法尋找最佳擬合 478 15.5.3 測試和理解最佳logistic分類器 479 15.5.4 練習 481 15.6 小結 483 第 16章 訓練神經網絡 484 16.1 用神經網絡對數據進行分類 485 16.2 手寫數字圖像分類 486 16.2.1 構建64維圖像向量 487 16.2.2 構建隨機數字分類器 488 16.2.3 測試數字分類器的表現 489 16.2.4 練習 490 16.3 設計神經網絡 491 16.3.1 組和連接 492 16.3.2 神經網絡數據流 492 16.3.3 計算激活值 495 16.3.4 用矩陣表示法計算激活值 498 16.4 用Python構建神經網絡 499 16.4.1 用Python實現MLP類 500 16.4.2 評估MLP 502 16.4.3 測試MLP的分類效果 503 16.4.4 練習 504 16.5 使用梯度下降法訓練神經網絡 504 16.5.1 將訓練構造為最小化問題 505 16.5.3 使用scikit-learn自動訓練 507 16.6 使用反向傳播計算梯度 509 16.6.1 根據最後一層的權重計算代價 509 16.6.2 利用鏈式法則計算最後一層權重的偏導數 510 16.6.3 練習 512 16.7 小結 513 附錄A 準備Python(圖靈社區下載) 附錄B Python技巧和竅門(圖靈社區下載) 附錄C 使用OpenGL和PyGame加載和渲染三維模型(圖靈社區下載) 附錄D 數學符號參考(圖靈社區下載) 查看全部↓
" | | | | | |