Python數(shù)學(xué)編程(異步圖書出品)
定 價(jià):59 元
- 作者:阿米特·薩哈(Amit Saha) 著,許楊毅,劉旭華 譯
- 出版時(shí)間:2020/1/1
- ISBN:9787115522719
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.561
- 頁(yè)碼:190
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:16開(kāi)
本書將程序設(shè)計(jì)和數(shù)學(xué)巧妙地結(jié)合起來(lái),從簡(jiǎn)單的項(xiàng)目開(kāi)始,應(yīng)用Python解決高中和大學(xué)低年級(jí)的數(shù)學(xué)問(wèn)題,比如幾何、概率、統(tǒng)計(jì)以及微積分等,為進(jìn)一步學(xué)習(xí)更復(fù)雜的數(shù)學(xué)內(nèi)容以及Python編程語(yǔ)言打下堅(jiān)實(shí)的基礎(chǔ)。本書也可作為Python初學(xué)者的入門讀物,通過(guò)學(xué)習(xí)書中的示例程序和完成那些編程挑戰(zhàn),讀者可以提高自己的編程能力和技巧。
適讀人群 :本書適合廣大的青少年、年輕人學(xué)習(xí)編程和利用編程學(xué)數(shù)學(xué)。
本書展示了如何應(yīng)用Python探究高中和大學(xué)低年級(jí)的數(shù)學(xué)主題,比如代數(shù)、統(tǒng)計(jì)、幾何、概率以及微積分。你會(huì)從簡(jiǎn)單的項(xiàng)目學(xué)起,比如因式分解、二次方程求解,當(dāng)你掌握了這些基礎(chǔ)的知識(shí)后,就可以處理更復(fù)雜的項(xiàng)目了。
使用本書提供的方法探索數(shù)學(xué)和編程,將讓你的整個(gè)數(shù)學(xué)和計(jì)算機(jī)科學(xué)學(xué)習(xí)過(guò)程變得有趣、實(shí)用。
你將從本書學(xué)到以下內(nèi)容:
·用統(tǒng)計(jì)方法描述數(shù)據(jù),用線圖、條形圖和散點(diǎn)圖可視化數(shù)據(jù)
·用程序探究擲硬幣、擲骰子和其他概率游戲中的集合理論和概率問(wèn)題
·用Python的符號(hào)數(shù)學(xué)功能解決代數(shù)問(wèn)題
·繪制幾何圖形,探索分形,如Barnsley蕨類植物、Sierpiński三角以及Mandelbrot集
·寫程序求解導(dǎo)數(shù)與積分
本書還提供了有創(chuàng)意的編程挑戰(zhàn)以及應(yīng)用實(shí)例,可以幫助你把新學(xué)到的數(shù)學(xué)和編程技巧用于實(shí)踐。你可以嘗試解決各種有趣的問(wèn)題,比如不等式求解、洗牌、畫出子彈飛行過(guò)程中重力的影響、探究斐波那契數(shù)列與黃金分割之間的聯(lián)系、利用向板子上投擲100000次“飛鏢”來(lái)估計(jì)圓的面積等。
無(wú)論你是對(duì)數(shù)學(xué)還是對(duì)編程感興趣,本書都會(huì)帶給你不一樣的體驗(yàn)。如果你是一位老師,希望教學(xué)生編程,你會(huì)發(fā)現(xiàn)Python讓編程變得更容易。如果你是一位學(xué)生,當(dāng)你致力于解決數(shù)學(xué)問(wèn)題時(shí),讓Python來(lái)幫助你處理那些煩瑣的計(jì)算工作吧!
關(guān)于作者
Amit Saha是一位曾在Red Hat和Sun Microsystems公司工作過(guò)的軟件工程師。他創(chuàng)辦并維護(hù)著Fedora Scientific,一個(gè)為科學(xué)和教育用戶服務(wù)的Linux發(fā)行版。他也是Prentice Hall出版社《寫下你的第一個(gè)程序》(Write Your First Program)一書的作者。
關(guān)于譯者
許楊毅,現(xiàn)任商湯智慧城市事業(yè)群產(chǎn)品總監(jiān),曾是京東云高級(jí)總監(jiān),百度系統(tǒng)部和新浪業(yè)務(wù)運(yùn)維負(fù)責(zé)人,UCloud運(yùn)營(yíng)平臺(tái)部總監(jiān)和產(chǎn)品市場(chǎng)部副總裁,資深的業(yè)務(wù)架構(gòu)師、SRE專家、大數(shù)據(jù)工程和云計(jì)算架構(gòu)顧問(wèn)。曾翻譯《貝葉斯思維:統(tǒng)計(jì)建模的Python學(xué)習(xí)法》一書。
劉旭華,現(xiàn)為中國(guó)農(nóng)業(yè)大學(xué)理學(xué)院應(yīng)用數(shù)學(xué)系副教授,北京理工大學(xué)博士,美國(guó)北卡羅來(lái)納大學(xué)教堂山分校訪問(wèn)學(xué)者,主要從事數(shù)理統(tǒng)計(jì)、數(shù)據(jù)科學(xué)、數(shù)學(xué)與統(tǒng)計(jì)軟件等領(lǐng)域的教學(xué)與科研工作,主持和參與多項(xiàng)國(guó)家自然科學(xué)基金、北京市自然科學(xué)基金項(xiàng)目。曾翻譯《R語(yǔ)言統(tǒng)計(jì)入門(第2版)》《數(shù)據(jù)科學(xué)實(shí)戰(zhàn)手冊(cè)(第2版)》等圖書。
第 1章 處理數(shù)字1
1.1 基本數(shù)學(xué)運(yùn)算 1
1.2 標(biāo)簽:給數(shù)字命名 3
1.3 不同類型的數(shù)字 4
1.3.1 分?jǐn)?shù)的操作 4
1.3.2 復(fù)數(shù) 5
1.4 獲取用戶輸入 6
1.4.1 處理異常和無(wú)效輸入 8
1.4.2 將分?jǐn)?shù)和復(fù)數(shù)作為輸入 9
1.5 編寫一個(gè)數(shù)學(xué)計(jì)算程序 10
1.5.1 計(jì)算整數(shù)因子 10
1.5.2 生成乘法表 12
1.5.3 轉(zhuǎn)換測(cè)量單位 14
1.5.4 求二次方程的根 16
1.6 本章內(nèi)容小結(jié) 18
1.7 編程挑戰(zhàn) 19
#1:偶數(shù)奇數(shù)自動(dòng)售貨機(jī) 19
#2:增強(qiáng)型乘法表生成器 19
#3:增強(qiáng)型單位轉(zhuǎn)換器 19
#4:分?jǐn)?shù)計(jì)算器 19
#5:為用戶設(shè)置退出選項(xiàng) 20
第 2章 數(shù)據(jù)可視化 23
2.1 了解笛卡兒坐標(biāo)平面 23
2.2 使用列表和元組 24
2.3 用matplotlib繪圖 26
2.3.1 圖上的標(biāo)記 28
2.3.2 繪制紐約市的年平均氣溫 29
2.3.3 比較紐約市的月平均氣溫 31
2.3.4 自定義圖形 34
2.3.5 保存圖形 37
2.4 用公式繪圖 37
2.4.1 牛頓萬(wàn)有引力定律 38
2.4.2 拋物運(yùn)動(dòng) 39
2.5 本章內(nèi)容小結(jié) 44
2.6 編程挑戰(zhàn) 44
#1:溫度如何變化 45
#2:探索二次函數(shù)的可視化 45
#3:增強(qiáng)型拋物軌跡比較程序 46
#4:可視化你的支出 46
#5:探索斐波那契序列與黃金比例 48
第3章 數(shù)據(jù)的統(tǒng)計(jì)學(xué)特征 50
3.1 計(jì)算均值 50
3.2 計(jì)算中位數(shù) 52
3.3 計(jì)算眾數(shù)并創(chuàng)建頻數(shù)表 54
3.3.1 尋找最常見(jiàn)的元素 54
3.3.2 計(jì)算眾數(shù) 55
3.3.3 創(chuàng)建頻數(shù)表 57
3.4 測(cè)量離散度 59
3.4.1 計(jì)算一組數(shù)字的極差 59
3.4.2 計(jì)算方差和標(biāo)準(zhǔn)差 60
3.5 計(jì)算兩個(gè)數(shù)據(jù)集之間的相關(guān)性 62
3.5.1 計(jì)算相關(guān)系數(shù) 63
3.5.2 高中成績(jī)和大學(xué)入學(xué)考試成績(jī) 64
3.6 散點(diǎn)圖 67
3.7 從文件中讀取數(shù)據(jù) 68
3.7.1 從文本文件中讀取數(shù)據(jù) 69
3.7.2 從CSV文件中讀取數(shù)據(jù) 70
3.8 本章內(nèi)容小結(jié) 73
3.9 編程挑戰(zhàn) 73
#1:更好的相關(guān)系數(shù)計(jì)算程序 73
#2:統(tǒng)計(jì)計(jì)算器 73
#3:用其他CSV數(shù)據(jù)做實(shí)驗(yàn) 73
#4:計(jì)算百分位數(shù) 74
#5:創(chuàng)建分組頻數(shù)表 74
第4章 用SymPy包解代數(shù)和符號(hào)數(shù)學(xué)問(wèn)題 76
4.1 定義符號(hào)和符號(hào)運(yùn)算 76
4.2 使用表達(dá)式 78
4.2.1 分解和展開(kāi)表達(dá)式 78
4.2.2 使表達(dá)式整齊輸出 79
4.2.3 輸出級(jí)數(shù) 80
4.2.4 用值替代符號(hào) 81
4.2.5 將字符串轉(zhuǎn)換為數(shù)學(xué)表達(dá)式 84
4.2.6 表達(dá)式乘法 85
4.3 解方程 86
4.3.1 解二次方程 86
4.3.2 用其他變量求解一個(gè)變量 87
4.3.3 解線性方程組 88
4.4 用SymPy包繪圖 88
4.4.1 繪制用戶輸入的表達(dá)式 91
4.4.2 多函數(shù)圖形繪制 92
4.5 本章內(nèi)容小結(jié) 94
4.6 編程挑戰(zhàn) 94
#1:尋找因子 94
#2:圖形方程求解器 94
#3:級(jí)數(shù)求和 94
#4:解單變量不等式 95
第5章 集合與概率 98
5.1 什么是集合? 98
5.1.1 構(gòu)建集合 99
5.1.2 子集、超集與冪集 100
5.1.3 集合運(yùn)算 102
5.2 概率 106
5.2.1 事件A或事件B發(fā)生的概率 108
5.2.2 事件A與事件B同時(shí)發(fā)生的概率 109
5.2.3 生成隨機(jī)數(shù) 109
5.2.4 非均勻隨機(jī)數(shù) 112
5.3 本章內(nèi)容小結(jié) 114
5.4 編程挑戰(zhàn) 114
#1:使用文氏圖來(lái)可視化集合之間的關(guān)系 114
#2:大數(shù)定律 117
#3:擲多少次硬幣會(huì)輸光你的錢? 117
#4:洗牌 118
#5:估計(jì)一個(gè)圓的面積 118
第6章 繪制幾何圖形和分形 120
6.1 使用matplotlib的patches繪制幾何圖形 120
6.1.1 繪制一個(gè)圓 122
6.1.2 創(chuàng)建動(dòng)畫圖形 123
6.1.3 拋物軌跡動(dòng)畫演示 125
6.2 繪制分形 127
6.2.1 平面上點(diǎn)的變換 127
6.2.2 繪制Barnsley蕨類植物 131
6.3 本章內(nèi)容小結(jié) 134
6.4 編程挑戰(zhàn) 134
#1:在正方形中填充圓形 134
#2:繪制Sierpiński三角 136
#3:探索Hénon函數(shù) 137
#4:繪制Mandelbrot集 138
第7章 解微積分問(wèn)題 142
7.1 什么是函數(shù)? 142
7.1.1 函數(shù)的定義域和值域 143
7.1.2 常用數(shù)學(xué)函數(shù)概述 143
7.2 SymPy中的假設(shè) 144
7.3 計(jì)算函數(shù)極限 145
7.3.1 連續(xù)復(fù)利 147
7.3.2 瞬時(shí)變化率 147
7.4 函數(shù)求導(dǎo) 148
7.4.1 求導(dǎo)計(jì)算器 149
7.4.2 求偏導(dǎo)數(shù) 150
7.5 高階導(dǎo)數(shù)和最大最小值點(diǎn) 150
7.6 用梯度上升法求全局最大值 153
7.6.1 梯度上升法的通用程序 156
7.6.2 關(guān)于初始值的附加說(shuō)明 157
7.6.3 步長(zhǎng)和epsilon的角色 158
7.7 求函數(shù)積分 160
7.8 概率密度函數(shù) 162
7.9 本章內(nèi)容小結(jié) 164
7.10 編程挑戰(zhàn) 164
#1:證明函數(shù)在一點(diǎn)處的連續(xù)性 165
#2:梯度下降法的實(shí)現(xiàn) 165
#3:兩條曲線圍成的面積 165
#4:計(jì)算曲線的長(zhǎng)度 166
后 記 168
下一步可以探索的事情 168
歐拉項(xiàng)目 168
Python文檔 168
參考書 169
獲取幫助 169
附錄A 軟件安裝 170
A.1 Microsoft Windows 171
升級(jí)SymPy 172
安裝matplotlib-venn 172
啟動(dòng)Python Shell 172
A.2 Linux 172
升級(jí)SymPy 173
安裝matplotlib-venn 173
啟動(dòng)Python Shell 173
A.3 Mac OS X 173
升級(jí)SymPy 176
安裝matplotlib-venn 176
啟動(dòng)Python Shell 176
附錄B Python主題概覽 177
B.1 if __name__ == '__main__' 177
B.2 列表推導(dǎo)(List Comprehensions) 178
B.3 字典數(shù)據(jù)結(jié)構(gòu) 180
B.4 多個(gè)返回值(Multiple Return Values) 181
B.5 異常處理(Exception Handling) 183
指定多個(gè)異常類型 183
else代碼塊 184
B.6 在Python中讀取文件 185
一次性讀取所有行 186
指定一個(gè)文件名作為輸入 186
讀取文件時(shí)錯(cuò)誤的處理 186
B.7 代碼重用 189