注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件與程序設計科學計算基礎編程(第五版 Python版 )

科學計算基礎編程(第五版 Python版 )

科學計算基礎編程(第五版 Python版 )

定 價:¥128.00

作 者: 漢斯.佩特.蘭坦根 著
出版社: 清華大學出版社
叢編項:
標 簽: 暫缺

ISBN: 9787302549437 出版時間: 2020-06-01 包裝: 平裝
開本: 16開 頁數(shù): 752 字數(shù):  

內(nèi)容簡介

  本書通過數(shù)學和自然科學中的計算例子來講授計算機程序設計。選擇語法簡單緊湊且功能強大的Python語言作為編程語言。本書關注于問題的計算求解過程,而不是程序語言細節(jié),書中使用了大量的案例,并專注問題定義、分析和程序求解以及程序正確性驗證。通過本書的學習,讀者將能使用程序員的方式進行思考,并能寫出正確優(yōu)質(zhì)的程序。

作者簡介

  張春元,國防科技大學計算機學院副院長,博士,教授,博士生導師,計算機體系結(jié)構(gòu)專家,學術帶頭人,著有《計算機體系結(jié)構(gòu)》等教材。 毛曉光,國防科技大學計算機學院計算機系副主任,博士,教授,博士生導師,著有《離散數(shù)學》等教材。

圖書目錄

目錄
第1章公式的計算1
1.1編程計算: 個公式1
1.1.1用程序作計算器1
1.1.2程序和編程2
1.1.3編寫程序的工具2
1.1.4個Python程序3
1.1.5輸入程序文本時的警告3
1.1.6驗證結(jié)果4
1.1.7變量4
1.1.8變量名4
1.1.9Python中的保留字5
1.1.10注釋5
1.1.11指定文字和數(shù)字的輸出格式6
1.2計算機專業(yè)術語9
1.3計算另一個公式: 攝氏度與華氏度的轉(zhuǎn)換12
1.3.1容易被忽略的錯誤: 整數(shù)除法12
1.3.2Python中的對象13
1.3.3避免整數(shù)除法14
1.3.4算術運算符和優(yōu)先級15
1.4求標準數(shù)學函數(shù)的值15
1.4.1示例: 使用平方根函數(shù)15
1.4.2示例: 計算sinh x17
1.4.3初窺舍入誤差17
1.5交互式計算18
1.5.1使用Python shell18
1.5.2類型轉(zhuǎn)換19
1.5.3IPython20
1.6復數(shù)23
1.6.1Python中的復數(shù)運算23
1.6.2Python中的復函數(shù)24
1.6.3實數(shù)函數(shù)與復數(shù)函數(shù)的統(tǒng)一處理25
1.7符號計算26
1.7.1基本的微分和積分26
1.7.2方程求解27
1.7.3泰勒級數(shù)和其他28
1.8本章小結(jié)28
1.8.1本章主題28
1.8.2示例: 球的軌跡31
1.8.3關于本書中的排版約定32
1.9習題33
第2章循環(huán)與列表41
2.1while循環(huán)41
2.1.1直接的方法41
2.1.2while循環(huán)42
2.1.3布爾表達式43
2.1.4示例: 累加求和45
2.2列表46
2.2.1列表的基本操作46
2.2.2for循環(huán)48
2.3列表和循環(huán)的替代實現(xiàn)50
2.3.1用while循環(huán)實現(xiàn)for循環(huán)50
2.3.2Range結(jié)構(gòu)50
2.3.3用for循環(huán)對列表索引進行迭代51
2.3.4修改列表元素52
2.3.5列表推導式53
2.3.6同時遍歷多個列表53
2.4嵌套列表54
2.4.1表格: “行”或“列”構(gòu)成的列表54
2.4.2打印對象55
2.4.3提取子列表56
2.4.4遍歷嵌套列表58
2.5元組60
2.6本章小結(jié)61
2.6.1本章主題61
2.6.2示例: 分析列表數(shù)據(jù)64
2.6.3如何找到更多的Python信息66
2.7習題67
第3章函數(shù)與分支74
3.1函數(shù)74
3.1.1數(shù)學函數(shù)作為Python函數(shù)74
3.1.2了解程序執(zhí)行過程75
3.1.3局部變量和全局變量76
3.1.4多參數(shù)78
3.1.5使用函數(shù)參數(shù)還是全局變量79
3.1.6非數(shù)學函數(shù)79
3.1.7返回多個值80
3.1.8求和81
3.1.9無返回值82
3.1.10關鍵字參數(shù)84
3.1.11文檔字符串85
3.1.12函數(shù)作為函數(shù)的參數(shù)87
3.1.13主程序89
3.1.14lambda函數(shù)89
3.2分支90
3.2.1ifelse語句90
3.2.2內(nèi)嵌if語句92
3.3混合循環(huán)、分支、函數(shù)的生物信息學應用示例93
3.3.1DNA字符串中的字母計數(shù)93
3.3.2效率評估96
3.3.3驗證實現(xiàn)98
3.4本章小結(jié)99
3.4.1本章主題99
3.4.2示例: 數(shù)值積分100
3.5習題104
第4章用戶輸入和錯誤管理120
4.1提出問題和讀入應答120
4.2從命令行讀取121
4.2.1在命令行上提供輸入121
4.2.2可變數(shù)量的命令行參數(shù)122
4.2.3關于命令行參數(shù)的進一步理解123
4.3將用戶文本轉(zhuǎn)換為活躍對象123
4.3.1神奇的eval函數(shù)124
4.3.2神奇的exec函數(shù)127
4.3.3將字符串表達式轉(zhuǎn)換為函數(shù)129
4.4命令行上的參數(shù)名值對130
4.4.1argparse模塊的基本用法130
4.4.2將數(shù)學表達式作為值131
4.5從文件中讀取數(shù)據(jù)133
4.5.1逐行讀取文件134
4.5.2其他讀取文件的方法135
4.5.3讀取文本和數(shù)字的混合文件137
4.6將數(shù)據(jù)寫入文件138
4.6.1示例: 將表格寫入文件139
4.6.2標準輸入和輸出作為文件對象140
4.6.3文件到底是什么142
4.7錯誤處理144
4.7.1異常處理145
4.7.2產(chǎn)生異常148
4.8圖形化的用戶界面150
4.9制作模塊151
4.9.1示例: 銀行存款利息152
4.9.2將函數(shù)收集在模塊文件中153
4.9.3測試塊153
4.9.4驗證模塊代碼155
4.9.5獲取輸入數(shù)據(jù)156
4.9.6模塊中的文檔字符串158
4.9.7使用模塊158
4.9.8發(fā)布模塊161
4.9.9使軟件在互聯(lián)網(wǎng)上可用161
4.10Python 2和Python 3的代碼162
4.10.1Python 2和Python 3的基本差異162
4.10.2將Python 2代碼轉(zhuǎn)換為Python 3代碼163
4.11本章小結(jié)165
4.11.1本章主題165
4.11.2示例: 二分查找168
4.12習題175
第5章數(shù)組計算和曲線繪圖182
5.1向量182
5.1.1向量的概念182
5.1.2向量的數(shù)學運算183
5.1.3向量算術和向量函數(shù)184
5.2Python程序中的數(shù)組185
5.2.1用列表來收集函數(shù)數(shù)據(jù)185
5.2.2Numerical Python的數(shù)組基礎186
5.2.3計算坐標和函數(shù)值187
5.2.4向量化188
5.3繪制函數(shù)曲線190
5.3.1用Matplotlib實現(xiàn)MATLAB風格的繪圖190
5.3.2Matplotlib和Pyplot前綴194
5.3.3SciTools和Easyviz195
5.3.4制作動畫200
5.3.5制作視頻204
5.3.6用文本字符繪制曲線205
5.4繪制高難度函數(shù)206
5.4.1分段定義函數(shù)206
5.4.2快速變化函數(shù)208
5.5更高級的函數(shù)向量化209
5.5.1StringFunction對象向量化209
5.5.2Heaviside函數(shù)向量化210
5.5.3帽狀函數(shù)向量化213
5.6Numerical Python數(shù)組深入剖析215
5.6.1復制數(shù)組215
5.6.2原地運算216
5.6.3數(shù)組分配217
5.6.4廣義索引217
5.6.5數(shù)組類型檢測218
5.6.6數(shù)組生成的緊湊語法219
5.6.7形狀操作219
5.7數(shù)組的高性能計算219
5.7.1標量實現(xiàn)方式220
5.7.2向量化實現(xiàn)方式221
5.7.3節(jié)省內(nèi)存的實現(xiàn)方式221
5.7.4內(nèi)存使用分析222
5.7.5CPU時間分析223
5.8高維數(shù)組224
5.8.1矩陣與數(shù)組224
5.8.2Python的二維數(shù)值數(shù)組225
5.8.3數(shù)組計算228
5.8.4矩陣對象228
5.9一些常見的線性代數(shù)運算229
5.9.1逆、行列式和特征值229
5.9.2乘積230
5.9.3范數(shù)230
5.9.4和與極值230
5.9.5索引232
5.9.6轉(zhuǎn)置和上/下三角部分232
5.9.7求解線性方程組233
5.9.8矩陣的行列操作233
5.9.9計算矩陣的秩234
5.9.10符號化線性代數(shù)235
5.10繪制標量和向量場237
5.10.1安裝237
5.10.2曲面繪圖238
5.10.3參數(shù)化曲線239
5.10.4等高線239
5.10.5梯度向量場240
5.11Matplotlib240
5.11.1曲面繪圖241
5.11.2等高線繪圖241
5.11.3向量場繪圖243
5.12Mayavi243
5.12.1曲面繪圖244
5.12.2等高線繪圖245
5.12.3向量場繪圖247
5.12.4一個3D標量場及其梯度場247
5.12.5動畫249
5.13本章小結(jié)249
5.13.1本章主題249
5.13.2示例: 動畫函數(shù)251
5.14習題254
第6章字典與字符串269
6.1字典269
6.1.1創(chuàng)建字典269
6.1.2字典操作270
6.1.3示例: 多項式作為字典271
6.1.4具有默認值和排序的字典273
6.1.5示例: 在字典中存儲文件數(shù)據(jù)276
6.1.6示例: 在嵌套字典中存儲文件數(shù)據(jù)277
6.1.7示例: 讀取和繪制在特定日期記錄的數(shù)據(jù)281
6.2字符串285
6.2.1字符串常見操作285
6.2.2示例: 讀取數(shù)值對289
6.2.3示例: 讀取坐標292
6.3從網(wǎng)頁讀取數(shù)據(jù)294
6.3.1關于網(wǎng)頁294
6.3.2如何編程訪問網(wǎng)頁295
6.3.3示例: 讀取純文本文件296
6.3.4示例: 從HTML提取數(shù)據(jù)298
6.3.5處理非英文文本298
6.4讀寫電子表格文件301
6.4.1CSV文件301
6.4.2讀取CSV文件302
6.4.3處理電子表格數(shù)據(jù)303
6.4.4寫入CSV文件303
6.4.5用Numerical Python數(shù)組表示數(shù)值單元格304
6.4.6使用更高級的Numerical Python功能305
6.5分析DNA的示例306
6.5.1計算頻率306
6.5.2分析頻率矩陣313
6.5.3尋找堿基頻率315
6.5.4將基因轉(zhuǎn)換成蛋白質(zhì)318
6.5.5有的人可以喝牛奶,而有的人則不能323
6.6編寫兼容Python 2和Python 3的代碼324
6.6.1Python 2和Python 3之間更多的差異324
6.6.2將Python 2代碼轉(zhuǎn)換成Python 3代碼325
6.7本章小結(jié)325
6.7.1本章主題325
6.7.2示例: 文件數(shù)據(jù)庫328
6.8習題331
第7章Python類簡介337
7.1簡單函數(shù)類337
7.1.1挑戰(zhàn): 帶參數(shù)的函數(shù)337
7.1.2將函數(shù)表示為類339
7.1.3self 變量343
7.1.4另一個函數(shù)類的例子344
7.1.5另一種函數(shù)類的實現(xiàn)345
7.1.6無構(gòu)造方法的類347
7.1.7閉包349
7.2更多關于類的例子350
7.2.1銀行賬戶350
7.2.2電話簿352
7.2.3圓354
7.3特殊方法355
7.3.1call特殊方法355
7.3.2示例: Automagic差分356
7.3.3示例: Automagic積分360
7.3.4將實例轉(zhuǎn)換為字符串362
7.3.5使用特殊方法的電話簿363
7.3.6支持加法的對象364
7.3.7示例: 多項式的類364
7.3.8多項式的精美打印367
7.3.9算術運算和其他特殊方法369
7.3.10字符串轉(zhuǎn)換的特殊方法369
7.4示例: 平面中向量的類371
7.4.1對向量的一些數(shù)學運算371
7.4.2實現(xiàn)371
7.4.3用法373
7.5示例: 復數(shù)類374
7.5.1實現(xiàn)374
7.5.2非法操作376
7.5.3復數(shù)與實數(shù)混合運算376
7.5.4動態(tài)類型、靜態(tài)類型、強類型、弱類型和Duck類型377
7.5.5應用于右操作數(shù)的特殊方法378
7.5.6檢查實例379
7.6靜態(tài)方法和屬性380
7.7本章小結(jié)381
7.7.1本章主題381
7.7.2示例: 區(qū)間運算383
7.8習題387
第8章隨機數(shù)和簡單的游戲401
8.1生成隨機數(shù)401
8.1.1種子401
8.1.2均勻分布的隨機數(shù)402
8.1.3可視化分布情況402
8.1.4隨機數(shù)生成的向量化403
8.1.5計算平均值和標準差404
8.1.6高斯或正態(tài)分布406
8.2生成整數(shù)407
8.2.1隨機整數(shù)函數(shù)407
8.2.2示例: 投擲骰子408
8.2.3根據(jù)列表生成隨機數(shù)410
8.2.4示例: 從整副牌中選牌411
8.2.5示例: 牌的類實現(xiàn)413
8.3計算概率416
8.3.1蒙特卡羅模擬的原理416
8.3.2示例: 投擲骰子416
8.3.3示例: 從帽子中取球419
8.3.4基因的隨機變異421
8.3.5示例: 限制人口增長的政策426
8.4簡單游戲428
8.4.1猜數(shù)字428
8.4.2擲兩個骰子429
8.5蒙特卡羅積分432
8.5.1蒙特卡羅積分的推導432
8.5.2標準蒙特卡羅積分的實現(xiàn)433
8.5.3通過隨機點來計算區(qū)域面積437
8.6單維度的隨機游走438
8.6.1基本實現(xiàn)438
8.6.2可視化439
8.6.3以差分方程表示隨機游走439
8.6.4計算粒子位置的統(tǒng)計量440
8.6.5向量化實現(xiàn)440
8.7兩維度的隨機游走442
8.7.1基本實現(xiàn)442
8.7.2向量化實現(xiàn)443
8.8本章小結(jié)444
8.8.1本章主題444
8.8.2示例: 隨機增長446
8.9習題451
第9章面向?qū)ο缶幊?63
9.1繼承與類層次 463
9.1.1Line類463
9.1.2初試Parabola類464
9.1.3使用繼承的Parabola類464
9.1.4檢查類之類型466
9.1.5屬性與繼承: hasa與isa關系467
9.1.6將超類作為接口468
9.2數(shù)值微分類470
9.2.1計算微分的類470
9.2.2驗證472
9.2.3構(gòu)建靈活的主程序474
9.2.4擴展475
9.2.5基于函數(shù)的實現(xiàn)478
9.2.6基于函數(shù)式編程的實現(xiàn)478
9.2.7由單個類實現(xiàn)的數(shù)值微分方法479
9.3數(shù)值積分類481
9.3.1數(shù)值積分方法481
9.3.2用于積分的類481
9.3.3驗證485
9.3.4使用類層次486
9.3.5關于面向?qū)ο缶幊?88
9.4用于繪圖的類489
9.4.1使用對象集合489
9.4.2幾何對象的類的例子497
9.4.3通過遞歸增強功能501
9.4.4對圖形進行縮放、平移和旋轉(zhuǎn)504
9.5用于DNA分析的類506
9.5.1表示區(qū)域的類506
9.5.2表示Gene的類507
9.5.3子類512
9.6本章小結(jié)513
9.6.1本章主題513
9.6.2示例: 輸入數(shù)據(jù)讀取器514
9.7習題519
附錄A數(shù)列和差分方程526
A.1用差分方程構(gòu)建數(shù)學模型526
A.1.1利息計算527
A.1.2用差分方程處理階乘問題529
A.1.3斐波那契數(shù)529
A.1.4生物群體的增長531
A.1.5邏輯增長531
A.1.6償還貸款532
A.1.7使用差分方程來求積分533
A.1.8使用差分方程計算泰勒級數(shù)535
A.1.9投資與生活536
A.1.10牛頓迭代法537
A.1.11反函數(shù)539
A.2對聲音編程541
A.2.1將聲音寫入文件542
A.2.2從文件讀取聲音542
A.2.3播放多個單音543
A.2.4數(shù)列產(chǎn)生的音樂544
A.3習題546
附錄B離散微積分簡介555
B.1離散函數(shù)555
B.1.1正弦函數(shù)555
B.1.2插值557
B.1.3求近似值557
B.1.4概括558
B.2用有限差分來實現(xiàn)微分559
B.2.1正弦函數(shù)微分559
B.2.2網(wǎng)格上的差分560
B.2.3歸納561
B.3用求和實現(xiàn)積分562
B.3.1子區(qū)間劃分563
B.3.2子區(qū)間積分564
B.3.3子區(qū)間求和564
B.3.4歸納565
B.4泰勒級數(shù)567
B.4.1函數(shù)在某一點附近的近似值567
B.4.2指數(shù)函數(shù)近似567
B.4.3更高精度的展開567
B.4.4近似的精度569
B.4.5再論導數(shù)571
B.4.6更準確的差分近似572
B.4.7二階導數(shù)574
B.5習題576
附錄C微分方程計算簡介579
C.1入門案例579
C.2指數(shù)增長581
C.3邏輯增長585
C.4單擺585
C.5疾病傳播模型588
C.6習題589
附錄D一個完整的微分方程工程591
D.1問題描述: 物理中的運動和力591
D.1.1物理問題591
D.1.2求解算法592
D.1.3數(shù)學模型推導592
D.1.4算法推導594
D.2程序編寫及測試594
D.2.1算法實現(xiàn)594
D.2.2回調(diào)函數(shù)597
D.2.3制作模塊599
D.2.4驗證600
D.3可視化602
D.3.1同步計算及繪圖602
D.3.2若干應用604
D.3.3關于Δt的選取606
D.3.4在子圖中對若干量進行
比較606
D.3.5比較近似解與精確解607
D.3.6誤差隨Δt減小而變化的情況608
D.4習題610
附錄E編程求解微分方程612
E.1標量常微分方程612
E.1.1右手邊函數(shù)示例613
E.1.2前向歐拉方法613
E.1.3函數(shù)實現(xiàn)614
E.1.4驗證實現(xiàn)615
E.1.5從離散解到連續(xù)解616
E.1.6轉(zhuǎn)換數(shù)值方法617
E.1.7類實現(xiàn)方式617
E.1.8邏輯增長的函數(shù)方法實現(xiàn)621
E.1.9邏輯增長的類方法實現(xiàn)622
E.2常微分方程組624
E.2.1數(shù)學問題624
E.2.2常微分方程組示例625
E.2.3函數(shù)實現(xiàn)626
E.2.4類實現(xiàn)628
E.3ODESolver類層次結(jié)構(gòu)629
E.3.1數(shù)值方法629
E.3.2求解器層次結(jié)構(gòu)的構(gòu)造630
E.3.3后向歐拉方法633
E.3.4驗證635
E.3.5示例: 指數(shù)衰減636
E.3.6示例: 具有問題類和求解器類的Logistic方程638
E.3.7示例: 振蕩系統(tǒng)645
E.3.8應用: 球的軌跡647
E.3.9ODESolver的進一步開發(fā)649
E.4習題649
附錄F調(diào)試672
F.1使用調(diào)試器672
F.2如何調(diào)試675
F.2.1程序編寫和調(diào)試的方法675
F.2.2應用實例677
F.2.3從代碼分析器獲取幫助688
附錄G提高Python運行效率的技術690
G.1用Python編寫蒙特卡羅模擬的代碼690
G.1.1計算問題690
G.1.2Python實現(xiàn)的標量版本690
G.1.3Python實現(xiàn)的向量化版本691
G.2將標量Python代碼移植到
Cython692
G.2.1直接的Cython實現(xiàn)692
G.2.2改良的Cython實現(xiàn)695
G.3將Python/Cython代碼移植到
C代碼中697
G.3.1編寫C程序697
G.3.2通過f2py將循環(huán)移植到C代碼中697
G.3.3通過Cython將循環(huán)移植到C代碼中699
G.3.4效率比較699
附錄H技術主題701
H.1獲取Python701
H.1.1需要的軟件701
H.1.2在MacOS X和Windows平臺上安裝軟件702
H.1.3Anaconda與Spyder702
H.1.4VMWare Fusion虛擬機703
H.1.5Windows雙重啟動705
H.1.6Vagrant虛擬機705
H.2如何編寫和運行Python程序706
H.2.1文本編輯器706
H.2.2終端窗口707
H.3Web服務: SageMathCloud與Wakari 708
H.3.1SageMathCloud簡介708
H.3.2Wakari簡介708
H.3.3安裝自己的Python包708
H.4IPython Notebook的使用709
H.4.1啟動IPython Notebook709
H.4.2混編文本、數(shù)學、代碼和圖形709
H.5運行Python程序的不同方式 710
H.5.1在IPython中運行Python程序711
H.5.2在UNIX中運行Python程序711
H.5.3在Windows中運行Python程序712
H.5.4在MacOS X中運行Python程序713
H.5.5制作完整的獨立可執(zhí)行文件713
H.6在Python中執(zhí)行操作系統(tǒng)命令713
H.7可變數(shù)量的函數(shù)參數(shù)716
H.7.1可變數(shù)量的位置參數(shù)717
H.7.2可變數(shù)量的關鍵字參數(shù)719
H.8評估程序執(zhí)行效率721
H.8.1測量時間721
H.8.2分析Python程序性能722
H.9軟件測試723
H.9.1測試函數(shù)需要遵循的約定724
H.9.2編寫測試函數(shù)及預先計算數(shù)據(jù)724
H.9.3編寫測試函數(shù)以及獲得精確數(shù)值解725
H.9.4測試函數(shù)魯棒性726
H.9.5自動執(zhí)行測試728
參考文獻730s

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.dappsexplained.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號