Python 數學編程 (Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More! )

[澳] 阿米特·薩哈(Amit Saha)

立即出貨 (庫存=1)

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

商品描述

本書將程序設計和數學巧妙地結合起來,從簡單的項目開始,應用Python解決高中和大學低年級的數學問題,比如幾何、概率、統計以及微積分等,為進一步學習更復雜的數學內容以及Python編程語言打下堅實的基礎。本書也可作為Python初學者的入門讀物,通過學習書中的示例程序和完成那些編程挑戰,讀者可以提高自己的編程能力和技巧。

作者簡介

關於作者
Amit Saha是一位曾在Red Hat和Sun Microsystems公司工作過的軟件工程師。他創辦並維護著Fedora Scientific,一個為科學和教育用戶服務的Linux發行版。他也是Prentice Hall出版社《寫下你的第一個程序》(Write Your First Program)一書的作者。

關於譯者
許楊毅,現任商湯智慧城市事業群產品總監,曾是京東雲高級總監,百度系統部和新浪業務運維負責人,UCloud運營平台部總監和產品市場部副總裁,資深的業務架構師、SRE專家、大數據工程和雲計算架構顧問。曾翻譯《貝葉斯思維:統計建模的Python學習法》一書。
劉旭華,現為中國農業大學理學院應用數學系副教授,北京理工大學博士,美國北卡羅來納大學教堂山分校訪問學者,主要從事數理統計、數據科學、數學與統計軟件等領域的教學與科研工作,主持和參與多項國家自然科學基金、北京市自然科學基金項目。曾翻譯《R語言統計入門(第2版)》《數據科學實戰手冊(第2版)》等圖書。
 

目錄大綱

 

第1章處理數字1

1.1基本數學運算1

1.2標籤:給數字命名3

1.3不同類型的數字4

1.3.1分數的操作4

1.3.2複數5

1.4獲取用戶輸入6

1.4.1處理異常和無效輸入8

1.4.2將分數和復數作為輸入9

1.5編寫一個數學計算程序10

1.5.1計算整數因子10

1.5.2生成乘法表12

1.5.3轉換測量單位14

1.5.4求二次方程的根16

1.6本章內容小結18

1.7編程挑戰19

#1:偶數奇數自動售貨機19

# 2:增強型乘法表生成器19

#3:增強型單位轉換器19

#4:分數計算器19

#5:為用戶設置退出選項20

 

第2章數據可視化23

2.1了解笛卡兒坐標平面23

2.2使用列表和元組24

2.3用matplotlib繪圖26

2.3.1圖上的標記28

2.3.2繪製紐約市的年平均氣溫29

2.3.3比較紐約市的月平均氣溫31

2.3.4自定義圖形34

2.3.5保存圖形37

2.4用公式繪圖37

2.4.1牛頓萬有引力定律38

2.4.2拋物運動39

2.5本章內容小結44

2.6編程挑戰44

#1:溫度如何變化45

#2:探索二次函數的可視化45

#3:增強型拋物軌跡比較程序46

#4:可視化你的支出46

#5:探索斐波那契序列與黃金比例48

 

第3章數據的統計學特徵50

3.1計算均值50

3.2計算中位數52

3.3計算眾數並創建頻數表54

3.3.1尋找最常見的元素54

3.3.2計算眾數55

3.3.3創建頻數表57

3.4測量離散度59

3.4.1計算一組數字的極差59

3.4.2計算方差和標準差60

3.5計算兩個數據集之間的相關性62

3.5.1計算相關係數63

3.5.2高中成績和大學入學考試成績64

3.6散點圖67

3.7從文件中讀取數據68

3.7.1從文本文件中讀取數據69

3.7.2從CSV文件中讀取數據70

3.8本章內容小結73

3.9編程挑戰73

#1:更好的相關係數計算程序73

#2:統計計算器73

#3:用其他CSV數據做實驗73

#4:計算百分位數74

#5:創建分組頻數表74

 

第4章用SymPy包解代數和符號數學問題76

4.1定義符號和符號運算76

4.2使用表達式78

4.2.1分解和展開表達式78

4.2.2使表達式整齊輸出79

4.2.3輸出級數80

4.2.4用值替代符號81

4.2.5將字符串轉換為數學表達式84

4.2.6表達式乘法85

4.3解方程86

4.3.1解二次方程86

4.3.2用其他變量求解一個變量87

4.3.3解線性方程組88

4.4用SymPy包繪圖88

4.4.1繪製用戶輸入的表達式91

4.4. 2多函數圖形繪製92

4.5本章內容小結94

4.6編程挑戰94

#1:尋找因子94

#2:圖形方程求解器94

#3:級數求和94

#4:解單變量不等式95

 

第5章集合與概率98

5.1什麼是集合?98

5.1.1構建集合99

5.1.2子集、超集與冪集100

5.1.3集合運算102

5.2概率106

5.2.1事件A或事件B發生的概率108

5.2.2事件A與事件B同時發生的概率109

5.2.3生成隨機數109

5.2.4非均勻隨機數112

5.3本章內容小結114

5.4編程挑戰114

#1:使用文氏圖來可視化集合之間的關係114

#2:大數定律117

#3:擲多少次硬幣會輸光你的錢?117

#4:洗牌118

#5:估計一個圓的面積118

 

第6章繪製幾何圖形和分形120

6.1使用matplotlib的patches繪製幾何圖形120

6.1.1繪製一個圓122

6.1.2創建動畫圖形123

6.1. 3拋物軌跡動畫演示125

6.2繪製分形127

6.2.1平面上點的變換127

6.2.2繪製Barnsley蕨類植物131

6.3本章內容小結134

6.4編程挑戰134

#1:在正方形中填充圓形134

#2:繪製Sierpiński三角136

#3:探索Hénon函數137

#4:繪製Mandelbrot集138

 

第7章解微積分問題142

7.1什麼是函數?142

7.1.1函數的定義域和值域143

7.1.2常用數學函數概述143

7.2 SymPy中的假設144

7.3計算函數極限145

7.3.1連續複利147

7.3.2瞬時變化率147

7.4函數求導148

7.4.1求導計算器149

7.4.2求偏導數150

7.5高階導數和最大最小值點150

7.6用梯度上升法求全局最大值153

7.6.1梯度上升法的通用程序156

7.6.2關於初始值的附加說明157

7.6.3步長和epsilon的角色158

7.7求函數積分160

7.8概率密度函數162

7.9本章內容小結164

7.10編程挑戰164

#1:證明函數在一點處的連續性165

#2:梯度下降法的實現165

#3:兩條曲線圍成的面積165

#4:計算曲線的長度166

 

後記168

下一步可以探索的事情168

歐拉項目168

Python文檔168

參考書169

獲取幫助169

附錄A軟件安裝170

A.1 Microsoft Windows 171

升級SymPy 172

安裝matplotlib-venn 172

啟動Python Shell 172

A.2 Linux 172

升級SymPy 173

安裝matplotlib-venn 173

啟動Python Shell 173

A.3 Mac OS X 173

升級SymPy 176

安裝matplotlib-venn 176

啟動Python Shell 176

附錄B Python主題概覽177

B.1 if __name__ == '__main__' 177

B.2列表推導(List Comprehensions) 178

B.3字典數據結構180

B.4多個返回值(Multiple Return Values) 181

B.5異常處理(Exception Handling) 183

指定多個異常類型183

else代碼塊184

B.6在Python中讀取文件185

一次性讀取所有行186

指定一個文件名作為輸入186

讀取文件時錯誤的處理186

B.7代碼重用189