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

科學(xué)計算基礎(chǔ)編程(第五版 Python版 )

科學(xué)計算基礎(chǔ)編程(第五版 Python版 )

定 價:¥128.00

作 者: 漢斯.佩特.蘭坦根 著
出版社: 清華大學(xué)出版社
叢編項:
標(biāo) 簽: 暫缺

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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

目錄
第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è)術(shù)語9
1.3計算另一個公式: 攝氏度與華氏度的轉(zhuǎn)換12
1.3.1容易被忽略的錯誤: 整數(shù)除法12
1.3.2Python中的對象13
1.3.3避免整數(shù)除法14
1.3.4算術(shù)運算符和優(yōu)先級15
1.4求標(biāo)準(zhǔn)數(shù)學(xué)函數(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復(fù)數(shù)23
1.6.1Python中的復(fù)數(shù)運算23
1.6.2Python中的復(fù)函數(shù)24
1.6.3實數(shù)函數(shù)與復(fù)數(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關(guān)于本書中的排版約定32
1.9習(xí)題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列表推導(dǎo)式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習(xí)題67
第3章函數(shù)與分支74
3.1函數(shù)74
3.1.1數(shù)學(xué)函數(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ù)學(xué)函數(shù)79
3.1.7返回多個值80
3.1.8求和81
3.1.9無返回值82
3.1.10關(guān)鍵字參數(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ù)的生物信息學(xué)應(yīng)用示例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習(xí)題104
第4章用戶輸入和錯誤管理120
4.1提出問題和讀入應(yīng)答120
4.2從命令行讀取121
4.2.1在命令行上提供輸入121
4.2.2可變數(shù)量的命令行參數(shù)122
4.2.3關(guān)于命令行參數(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ù)學(xué)表達式作為值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標(biāo)準(zhǔn)輸入和輸出作為文件對象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習(xí)題175
第5章數(shù)組計算和曲線繪圖182
5.1向量182
5.1.1向量的概念182
5.1.2向量的數(shù)學(xué)運算183
5.1.3向量算術(shù)和向量函數(shù)184
5.2Python程序中的數(shù)組185
5.2.1用列表來收集函數(shù)數(shù)據(jù)185
5.2.2Numerical Python的數(shù)組基礎(chǔ)186
5.2.3計算坐標(biāo)和函數(shù)值187
5.2.4向量化188
5.3繪制函數(shù)曲線190
5.3.1用Matplotlib實現(xiàn)MATLAB風(fēng)格的繪圖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復(fù)制數(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標(biāo)量實現(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繪制標(biāo)量和向量場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標(biāo)量場及其梯度場247
5.12.5動畫249
5.13本章小結(jié)249
5.13.1本章主題249
5.13.2示例: 動畫函數(shù)251
5.14習(xí)題254
第6章字典與字符串269
6.1字典269
6.1.1創(chuàng)建字典269
6.1.2字典操作270
6.1.3示例: 多項式作為字典271
6.1.4具有默認(rèn)值和排序的字典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示例: 讀取坐標(biāo)292
6.3從網(wǎng)頁讀取數(shù)據(jù)294
6.3.1關(guān)于網(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習(xí)題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更多關(guān)于類的例子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算術(shù)運算和其他特殊方法369
7.3.10字符串轉(zhuǎn)換的特殊方法369
7.4示例: 平面中向量的類371
7.4.1對向量的一些數(shù)學(xué)運算371
7.4.2實現(xiàn)371
7.4.3用法373
7.5示例: 復(fù)數(shù)類374
7.5.1實現(xiàn)374
7.5.2非法操作376
7.5.3復(fù)數(shù)與實數(shù)混合運算376
7.5.4動態(tài)類型、靜態(tài)類型、強類型、弱類型和Duck類型377
7.5.5應(yīng)用于右操作數(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習(xí)題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計算平均值和標(biāo)準(zhǔn)差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蒙特卡羅積分的推導(dǎo)432
8.5.2標(biāo)準(zhǔn)蒙特卡羅積分的實現(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習(xí)題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關(guān)系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關(guān)于面向?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習(xí)題519
附錄A數(shù)列和差分方程526
A.1用差分方程構(gòu)建數(shù)學(xué)模型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習(xí)題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再論導(dǎo)數(shù)571
B.4.6更準(zhǔn)確的差分近似572
B.4.7二階導(dǎo)數(shù)574
B.5習(xí)題576
附錄C微分方程計算簡介579
C.1入門案例579
C.2指數(shù)增長581
C.3邏輯增長585
C.4單擺585
C.5疾病傳播模型588
C.6習(xí)題589
附錄D一個完整的微分方程工程591
D.1問題描述: 物理中的運動和力591
D.1.1物理問題591
D.1.2求解算法592
D.1.3數(shù)學(xué)模型推導(dǎo)592
D.1.4算法推導(dǎo)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若干應(yīng)用604
D.3.3關(guān)于Δt的選取606
D.3.4在子圖中對若干量進行
比較606
D.3.5比較近似解與精確解607
D.3.6誤差隨Δt減小而變化的情況608
D.4習(xí)題610
附錄E編程求解微分方程612
E.1標(biāo)量常微分方程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ù)學(xué)問題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應(yīng)用: 球的軌跡647
E.3.9ODESolver的進一步開發(fā)649
E.4習(xí)題649
附錄F調(diào)試672
F.1使用調(diào)試器672
F.2如何調(diào)試675
F.2.1程序編寫和調(diào)試的方法675
F.2.2應(yīng)用實例677
F.2.3從代碼分析器獲取幫助688
附錄G提高Python運行效率的技術(shù)690
G.1用Python編寫蒙特卡羅模擬的代碼690
G.1.1計算問題690
G.1.2Python實現(xiàn)的標(biāo)量版本690
G.1.3Python實現(xiàn)的向量化版本691
G.2將標(biāo)量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技術(shù)主題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服務(wù): 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ù)學(xué)、代碼和圖形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ù)量的關(guān)鍵字參數(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ù)及預(yù)先計算數(shù)據(jù)724
H.9.3編寫測試函數(shù)以及獲得精確數(shù)值解725
H.9.4測試函數(shù)魯棒性726
H.9.5自動執(zhí)行測試728
參考文獻730s

本目錄推薦

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