用 Python 學數學 Math Adventures with Python: An Illustrated Guide to Exploring Math with Code

Peter Farrell

  • 用 Python 學數學-preview-1
  • 用 Python 學數學-preview-2
用 Python 學數學-preview-1

買這商品的人也買了...

商品描述

本書向讀者展示如何利用編程來讓數學學習變得有意義並且充滿樂趣。讀者在探索代數學、幾何學、三角學、矩陣和元胞自動機等領域的關鍵數學概念時,將學會在Python語言的幫助下使用代碼可視化一系列數學問題的解決方案。讀完本書,讀者還可以編寫自己的程序來快速解方程,自動完成一些煩瑣的任務,以及編寫函數來繪制和操作形狀,等等。

作者簡介

【作者簡介】
彼得.法雷爾(Peter Farrell)
數學和計算機科學教師,熱衷於“定制”數學和技術教學。
他開設了一門名為Hacking Math的課程,利用編程技術讓學生見識“活生生”的數學,廣受歡迎。本書是他近十年教學實踐的結晶,手把手帶你讓數學“活”起來,真正體會數學之美。


【譯者簡介】
嚴開
本科就讀於英國格拉斯哥大學,研究生即將入讀中科院計算所。
對於數學與編程的交叉領域興趣濃厚,畢業設計項目:Coding a Modesolver in Python(實現了一個解電磁微分方程的程序)。

目錄大綱

第一部分搭上你的Python馬車
第1章用turtle模塊繪製多邊形2
1.1 Python的turtle模塊2
1.1.1導入turtle模塊3
1.1.2讓小海龜動起來3
1.1.3改變方向5
1.2用循環使代碼重複運行5
1.2.1使用for循環6
1.2.2運用for循環畫一個正方形7
1.3用函數創建快捷操作8
1.4利用變量畫出不同的圖形9
1.4.1在函數中使用變量10
1.4.2變量錯誤10
1.5等邊三角形11
1.5.1編寫triangle()函數12
1.5.2讓變量變起來12
1.6小結15

第2章用列表和循環把煩瑣的算術變有趣17
2.1基本運算符17
2.1.1變量運算18
2.1.2用運算符編寫函數average() 19
2 .1.3注意運算順序19
2.1.4結合使用括號和運算符19
2.2 Python中的數據類型20
2.2.1整數和浮點數20
2.2.2字符串20
2.2 .3布爾類型22
2.2.4查看數據類型22
2.3用列表存儲值23
2.3.1向列表添加項23
2.3.2列表的運算24
2.3.3從列表中刪除項25
2.4在循環中使用列表25
2.4.1使用列表索引訪問單個項26
2.4.2用enumerate()函數獲取索引和值26
2.4.3索引從0開始27
2.4.4訪問一系列列表項27
2.4.5查找某項的索引28
2.4.6字符串也有索引29
2.5求和29
2.5.1創建running_sum變量30
2.5.2編寫mySum()函數30
2.6求一列數的平均值32
2.7小結33

第3章用條件語句檢驗猜測34
3.1比較運算符34
3.2用if和else語句做決定35
3.3使用條件語句求因數36
3.3.1編寫factors.py程序37
3.3.2海龜漫步38
3.4製作一個猜數遊戲40
3.4.1製作一個隨機數生成器41
3.4.2讀取用戶輸入41
3.4.3將用戶輸入轉換成整數42
3.4.4用條件語句檢查猜測是否正確42
3.4.5用循環給予更多猜測機會43
3.4.6猜數小提示44
3.5計算平方根45
3.5.1套用猜數遊戲的邏輯45
3.5.2編寫squareRoot()函數46
3.6小結47

第4章用代數學變換和存儲數50
4.1解一次方程51
4.1.1一次方程的解法公式52
4 .1.2編寫equation()函數53
4.1.3用print()替換return 53
4.2解更高次的方程55
4.2.1用quad()函數解二次方程56
4.2 .2用plug()函數解三次方程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()函數70
4.4小結72

第5章用幾何學變換形狀73
5.1畫一個圓73
5. 2用坐標指定位置75
5.3變換函數76
5.3.1用translate()函數平移對象76
5.3.2用rotate()旋轉對象79
5.3.3畫一圈圓80
5.3.4畫一圈正方形81
5.4使對象動畫化82
5.4.1創建變量t 82
5.4.2旋轉各個正方形83
5.4.3用pushMatrix()和popMatrix()保存方位84
5.4.4使正方形繞中心旋轉85
5. 5製作一個可交互的彩虹網格86
5.5.1畫出呈網格狀排列的對象86
5.5.2給對象塗上彩虹色87
5.6用三角形畫出複雜的圖案89
5. 6.1 30-60-90三角形91
5.6.2畫一個等邊三角形92
5.6.3畫多個旋轉的三角形94
5.6.4給旋轉加上相位偏移95
5.6. 5將圖案畫完96
5.7小結98

第6章用三角學製造振盪99
6.1用三角學做旋轉和振盪101
6.2編寫畫多邊形的函數102
6.2.1用循環畫一個正六邊形103
6.2.2畫一個正三角形105
6.3畫正弦波106
6.3.1圓過留痕109
6.3.2使用Python內置的enumerate()函數110
6.4編寫萬花尺程序112
6.4.1畫小圓113
6.4.2旋轉小圓113
6.5畫諧波圖116
6 .5.1編寫畫諧波圖的程序117
6.5.2瞬間填好列表119
6.5.3兩個鐘擺比一個強120
6.6小結122

第7章複數123
7.1複數坐標系124
7.2將復數相加124
7.3將一個複數乘以i 125
7.4將兩個複數相乘126
7.5編寫magnitude()函數127
7.6創建芒德布羅集128
7. 6.1編寫mandelbrot()函數130
7.6.2給芒德布羅集上色134
7.7創建茹利亞集135
7.8小結137

第8章將矩陣用於計算機圖形和方程組138
8.1什麼是矩陣138
8.2矩陣相加139
8.3矩陣相乘140
8.4矩陣乘法中的順序很重要144
8.5畫2D形狀144
8.6變換矩陣147
8.7轉置矩陣149
8.8實時旋轉矩陣152
8.9製作3D形狀154
8.10製作旋轉矩陣155
8.11用矩陣解方程組159
8.11.1高斯消元法159
8.11.2編寫gauss()函數161
8.12小結165

第9章用類構建對象168
9.1彈跳球程序170
9.1.1讓小球動起來171
9.1.2讓小球從牆上彈回172
9.1. 3不用類創建多個小球173
9.1.4用類創建對象174
9.2 “羊吃草”程序179
9.2.1編寫表示小羊的類179
9.2.2讓小羊四處走動.180
9.2.3添加能量屬性181
9.2.4用類創建草182
9.2.5讓草被吃掉後變成棕色185
9.2.6給每隻小羊塗上隨機的顏色187
9.2.7讓小羊繁殖188
9.2.8讓草再生189
9.2.9給予進化優勢190
9.3小結191

第10章用遞歸製作分形193
10.1海岸線的長度194
10 .1.1何為遞歸195
10.1.2編寫factorial()函數195
10.1.3 “種”一棵分形樹196
10.2科赫雪花200
10.3謝爾賓斯基三角形205
10.4正方形分形207
10.5龍形曲線211
10.6小結215

第11章元胞自動機216
11.1創建一個元胞自動機217
11.1.1編寫一個細胞類219
11.1.2調整細胞大小221
11.1.3讓CA生長222
11.1.4將細胞放入一個矩陣223
11.1.5創建細胞列表224
11.2奇怪的Python列表225
11.2.1列表切片226
11.2.2讓你的CA自動生長229
11.3玩玩“生命遊戲” 229
11.4初等元胞自動機232
11.5小結237

第12章用遺傳算法解決問題238
12.1用遺傳算法猜出句子239
12.1.1編寫makeList()函數239
12.1.2測試makeList()函數240
12.1.3編寫score()函數241
12.1.4編寫mutate()函數241
12.1.5生成隨機數242
12.2解決旅行商問題244
12.2.1使用遺傳算法245
12.2.2編寫calcLength()方法251
12.2.3測試calcLength()方法251
12. 2.4隨機路線252
12.2.5運用猜句程序的突變思想255
12.2.6突變列表中的兩個數255
12.2.7通過交叉改進路線259
12.3小結261