用Python學(xué)數(shù)學(xué)
定 價:109.8 元
- 作者:[美]彼得·法雷爾(Peter Farrell)
- 出版時間:2021/5/1
- ISBN:9787115562425
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.561
- 頁碼:262
- 紙張:
- 版次:01
- 開本:16開
本書向讀者展示如何利用編程來讓數(shù)學(xué)學(xué)習(xí)變得有意義并且充滿樂趣。讀者在探索代數(shù)學(xué)、幾何學(xué)、三角學(xué)、矩陣和元胞自動機(jī)等領(lǐng)域的關(guān)鍵數(shù)學(xué)概念時,將學(xué)會在Python語言的幫助下使用代碼可視化一系列數(shù)學(xué)問題的解決方案。讀完本書,讀者還可以編寫自己的程序來快速解方程,自動完成一些煩瑣的任務(wù),以及編寫函數(shù)來繪制和操作形狀,等等。
1.用Python體驗“全新”的數(shù)學(xué)
不為解題,不記公式,徹底擺脫枯燥——純粹好玩,自由發(fā)揮想象,自己動手制作趣味數(shù)學(xué)
2.用Python讓數(shù)學(xué)活起來
看得見動起來充滿立體感的“活”數(shù)學(xué),像魔法一樣解決常見數(shù)學(xué)問題
3.涵蓋中學(xué)數(shù)學(xué)重要主題,如代數(shù)學(xué)、幾何學(xué)、三角學(xué)和微積分
4.各種讓人欲罷不能的案例,編程與數(shù)學(xué)強(qiáng)強(qiáng)聯(lián)合
本書以趣味探險路線展示案例,讓你真正領(lǐng)略數(shù)學(xué)的實用性與編程的趣味性
5.Python 3案例,充分展示Python特色與Python可視化的強(qiáng)大
【作者簡介】
彼得·法雷爾(Peter Farrell)
數(shù)學(xué)和計算機(jī)科學(xué)教師,熱衷于“定制”數(shù)學(xué)和技術(shù)教學(xué)。他開設(shè)了一門名為Hacking Math的課程,利用編程技術(shù)讓學(xué)生見識“活生生”的數(shù)學(xué),廣受歡迎。本書是他近十年教學(xué)實踐的結(jié)晶,手把手帶你讓數(shù)學(xué)“活”起來,真正體會數(shù)學(xué)之美。
【譯者簡介】
嚴(yán)開
本科就讀于英國格拉斯哥大學(xué),研究生即將入讀中科院計算所。對于數(shù)學(xué)與編程的交叉領(lǐng)域興趣濃厚,畢業(yè)設(shè)計項目:Coding a Modesolver in Python(實現(xiàn)了一個解電磁微分方程的程序)。
第 一部分 搭上你的Python馬車
第 1章 用turtle模塊繪制多邊形 2
1.1 Python的turtle模塊 2
1.1.1 導(dǎo)入turtle模塊 3
1.1.2 讓小海龜動起來 3
1.1.3 改變方向 5
1.2 用循環(huán)使代碼重復(fù)運(yùn)行 5
1.2.1 使用for循環(huán) 6
1.2.2 運(yùn)用for循環(huán)畫一個正方形 7
1.3 用函數(shù)創(chuàng)建快捷操作 8
1.4 利用變量畫出不同的圖形 9
1.4.1 在函數(shù)中使用變量 10
1.4.2 變量錯誤 10
1.5 等邊三角形 11
1.5.1 編寫triangle()函數(shù) 12
1.5.2 讓變量變起來 12
1.6 小結(jié) 15
第 2章 用列表和循環(huán)把煩瑣的算術(shù)變有趣 17
2.1 基本運(yùn)算符 17
2.1.1 變量運(yùn)算 18
2.1.2 用運(yùn)算符編寫函數(shù)average() 19
2.1.3 注意運(yùn)算順序 19
2.1.4 結(jié)合使用括號和運(yùn)算符 19
2.2 Python中的數(shù)據(jù)類型 20
2.2.1 整數(shù)和浮點數(shù) 20
2.2.2 字符串 20
2.2.3 布爾類型 22
2.2.4 查看數(shù)據(jù)類型 22
2.3 用列表存儲值 23
2.3.1 向列表添加項 23
2.3.2 列表的運(yùn)算 24
2.3.3 從列表中刪除項 25
2.4 在循環(huán)中使用列表 25
2.4.1 使用列表索引訪問單個項 26
2.4.2 用enumerate()函數(shù)獲取索引和值 26
2.4.3 索引從0開始 27
2.4.4 訪問一系列列表項 27
2.4.5 查找某項的索引 28
2.4.6 字符串也有索引 29
2.5 求和 29
2.5.1 創(chuàng)建running_sum變量 30
2.5.2 編寫mySum()函數(shù) 30
2.6 求一列數(shù)的平均值 32
2.7 小結(jié) 33
第3章 用條件語句檢驗猜測 34
3.1 比較運(yùn)算符 34
3.2 用if和else語句做決定 35
3.3 使用條件語句求因數(shù) 36
3.3.1 編寫factors.py程序 37
3.3.2 海龜漫步 38
3.4 制作一個猜數(shù)游戲 40
3.4.1 制作一個隨機(jī)數(shù)生成器 41
3.4.2 讀取用戶輸入 41
3.4.3 將用戶輸入轉(zhuǎn)換成整數(shù) 42
3.4.4 用條件語句檢查猜測是否正確 42
3.4.5 用循環(huán)給予更多猜測機(jī)會 43
3.4.6 猜數(shù)小提示 44
3.5 計算平方根 45
3.5.1 套用猜數(shù)游戲的邏輯 45
3.5.2 編寫squareRoot()函數(shù) 46
3.6 小結(jié) 47
第4章 用代數(shù)學(xué)變換和存儲數(shù) 50
4.1 解一次方程 51
4.1.1 一次方程的解法公式 52
4.1.2 編寫equation()函數(shù) 53
4.1.3 用print()替換return 53
4.2 解更高次的方程 55
4.2.1 用quad()函數(shù)解二次方程 56
4.2.2 用plug()函數(shù)解三次方程 57
4.3 用作圖法解方程 58
4.3.1 Processing入門 58
4.3.2 制作你自己的作圖工具 59
4.3.3 繪制方程的圖像 66
4.3.4 用“猜測檢驗法”求根 70
4.3.5 編寫guess()函數(shù) 70
4.4 小結(jié) 72
第5章 用幾何學(xué)變換形狀 73
5.1 畫一個圓 73
5.2 用坐標(biāo)指定位置 75
5.3 變換函數(shù) 76
5.3.1 用translate()函數(shù)平移對象 76
5.3.2 用rotate()旋轉(zhuǎn)對象 79
5.3.3 畫一圈圓 80
5.3.4 畫一圈正方形 81
5.4 使對象動畫化 82
5.4.1 創(chuàng)建變量t 82
5.4.2 旋轉(zhuǎn)各個正方形 83
5.4.3 用pushMatrix()和popMatrix()保存方位 84
5.4.4 使正方形繞中心旋轉(zhuǎn) 85
5.5 制作一個可交互的彩虹網(wǎng)格 86
5.5.1 畫出呈網(wǎng)格狀排列的對象 86
5.5.2 給對象涂上彩虹色 87
5.6 用三角形畫出復(fù)雜的圖案 89
5.6.1 30-60-90三角形 91
5.6.2 畫一個等邊三角形 92
5.6.3 畫多個旋轉(zhuǎn)的三角形 94
5.6.4 給旋轉(zhuǎn)加上相位偏移 95
5.6.5 將圖案畫完 96
5.7 小結(jié) 98
第6章 用三角學(xué)制造振蕩 99
6.1 用三角學(xué)做旋轉(zhuǎn)和振蕩 101
6.2 編寫畫多邊形的函數(shù) 102
6.2.1 用循環(huán)畫一個正六邊形 103
6.2.2 畫一個正三角形 105
6.3 畫正弦波 106
6.3.1 圓過留痕 109
6.3.2 使用Python內(nèi)置的enumerate()函數(shù) 110
6.4 編寫萬花尺程序 112
6.4.1 畫小圓 113
6.4.2 旋轉(zhuǎn)小圓 113
6.5 畫諧波圖 116
6.5.1 編寫畫諧波圖的程序 117
6.5.2 瞬間填好列表 119
6.5.3 兩個鐘擺比一個強(qiáng) 120
6.6 小結(jié) 122
第7章 復(fù)數(shù) 123
7.1 復(fù)數(shù)坐標(biāo)系 124
7.2 將復(fù)數(shù)相加 124
7.3 將一個復(fù)數(shù)乘以i 125
7.4 將兩個復(fù)數(shù)相乘 126
7.5 編寫magnitude()函數(shù) 127
7.6 創(chuàng)建芒德布羅集 128
7.6.1 編寫mandelbrot()函數(shù) 130
7.6.2 給芒德布羅集上色 134
7.7 創(chuàng)建茹利亞集 135
7.8 小結(jié) 137
第8章 將矩陣用于計算機(jī)圖形和方程組 138
8.1 什么是矩陣 138
8.2 矩陣相加 139
8.3 矩陣相乘 140
8.4 矩陣乘法中的順序很重要 144
8.5 畫2D形狀 144
8.6 變換矩陣 147
8.7 轉(zhuǎn)置矩陣 149
8.8 實時旋轉(zhuǎn)矩陣 152
8.9 制作3D形狀 154
8.10 制作旋轉(zhuǎn)矩陣 155
8.11 用矩陣解方程組 159
8.11.1 高斯消元法 159
8.11.2 編寫gauss()函數(shù) 161
8.12 小結(jié) 165
第9章 用類構(gòu)建對象 168
9.1 彈跳球程序 170
9.1.1 讓小球動起來 171
9.1.2 讓小球從墻上彈回 172
9.1.3 不用類創(chuàng)建多個小球 173
9.1.4 用類創(chuàng)建對象 174
9.2 “羊吃草”程序 179
9.2.1 編寫表示小羊的類 179
9.2.2 讓小羊四處走動. 180
9.2.3 添加能量屬性 181
9.2.4 用類創(chuàng)建草 182
9.2.5 讓草被吃掉后變成棕色 185
9.2.6 給每只小羊涂上隨機(jī)的顏色 187
9.2.7 讓小羊繁殖 188
9.2.8 讓草再生 189
9.2.9 給予進(jìn)化優(yōu)勢 190
9.3 小結(jié) 191
第 10章 用遞歸制作分形 193
10.1 海岸線的長度 194
10.1.1 何為遞歸 195
10.1.2 編寫factorial()函數(shù) 195
10.1.3 “種”一棵分形樹 196
10.2 科赫雪花 200
10.3 謝爾賓斯基三角形 205
10.4 正方形分形 207
10.5 龍形曲線 211
10.6 小結(jié) 215
第 11章 元胞自動機(jī) 216
11.1 創(chuàng)建一個元胞自動機(jī) 217
11.1.1 編寫一個細(xì)胞類 219
11.1.2 調(diào)整細(xì)胞大小 221
11.1.3 讓CA生長 222
11.1.4 將細(xì)胞放入一個矩陣 223
11.1.5 創(chuàng)建細(xì)胞列表 224
11.2 奇怪的Python列表 225
11.2.1 列表切片 226
11.2.2 讓你的CA自動生長 229
11.3 玩玩“生命游戲” 229
11.4 初等元胞自動機(jī) 232
11.5 小結(jié) 237
第 12章 用遺傳算法解決問題 238
12.1 用遺傳算法猜出句子 239
12.1.1 編寫makeList()函數(shù) 239
12.1.2 測試makeList()函數(shù) 240
12.1.3 編寫score()函數(shù) 241
12.1.4 編寫mutate()函數(shù) 241
12.1.5 生成隨機(jī)數(shù) 242
12.2 解決旅行商問題 244
12.2.1 使用遺傳算法 245
12.2.2 編寫calcLength()方法 251
12.2.3 測試calcLength()方法 251
12.2.4 隨機(jī)路線 252
12.2.5 運(yùn)用猜句程序的突變思想 255
12.2.6 突變列表中的兩個數(shù) 255
12.2.7 通過交叉改進(jìn)路線 259
12.3 小結(jié) 261