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