Python 應用數值方法 — 解決工程和科學問題 Applied Numerical Methods with Python for Engineers and Scientists
[美]史蒂文·C.查布拉(Steven C. Chapra),[法]戴維·E.克盧(David E. Clough)著 張建廷 王一 呂亞飛 侯文君 譯
- 出版商: 清華大學
- 出版日期: 2024-01-01
- 售價: $948
- 貴賓價: 9.5 折 $901
- 語言: 簡體中文
- 頁數: 696
- 裝訂: 平裝
- ISBN: 7302645159
- ISBN-13: 9787302645153
-
相關分類:
Python、程式語言、工程數學 Engineering-mathematics
- 此書翻譯自: ISE Applied Numerical Methods with Python for Engineers and Scientists
立即出貨 (庫存 < 4)
買這商品的人也買了...
-
$450$351 -
$454Julia 機器學習核心編程:人人可用的高性能科學計算
-
$560$437 -
$490$417 -
$580$493 -
$580$493 -
$834$792 -
$780$616 -
$680$449 -
$474$450 -
$599$509 -
$890$703 -
$2,280$2,166 -
$894$849 -
$653Python asyncio 並發編程
-
$594$564 -
$714$678 -
$1,188$1,129 -
$505Python之光Python編程入門與實戰
-
$1,200$948 -
$862有限元方法基礎教程, 6/e (國際單位製版) (A First Course in the Finite Element Method, Enhanced Edition, SI Version, 6/e)
-
$403基於STM32F的嵌入式系統原理與應用
-
$980$647 -
$719$683 -
$539$512
相關主題
商品描述
《Python應用數值方法——解決工程和科學問題》是為想要學習和應用數值方法來解決工程和科學問題的學生撰寫的。書中提供了足夠豐富的理論知識。如果讀過本書的姊妹篇《工程與科學數值方法的MATLAB實現(第4版)》,就會發現過渡到Python程序是無縫的!不需要事先具有Python編程經驗。 本書以解決問題為導向,強調理論聯系實際。各章均引入實際的工程和科學問題,提供從相關概念定義、理論分析到算法實現的全套解決方案。每章末尾安排有課後習題,方便讀者在鞏固所學知識的同時,進一步提升自己編寫代碼和解決問題的水平。
目錄大綱
目 錄
第 I 部分 建模、電腦和誤差分析
第1章 數學建模、數值方法和問題
求解 3
1.1 一個簡單的數學模型 4
1.2 工程與科學中的守恆定律 9
1.3 本書所涉及的數值方法 11
1.4 案例研究:自由落體 12
習題 14
第2章 Python基礎 24
2.1 Spyder/IPython運行環境 25
2.2 賦值 26
2.2.1 標量 26
2.2.2 數組、向量和矩陣 27
2.2.3 下標和下標的範圍 30
2.2.4 arange、linspace和logspace函數 30
2.2.5 字符串 31
2.3 數學運算 33
2.4 使用內置函數 37
2.5 制圖 41
2.6 其他資源 47
2.7 案例研究:探索性數據分析 48
習題 51
第3章 Python編程 57
3.1 Python腳本文件 58
3.1.1 Python腳本 58
3.1.2 Python函數 59
3.1.3 變量作用域 61
3.2 輸入和輸出 63
3.3 結構化編程 66
3.3.1 決策流程 66
3.3.2 關於參數的更多信息 70
3.3.3 循環 71
3.4 嵌套和縮進 76
3.5 帶有函數名稱參數的Python函數 79
3.5.1 lambda函數 79
3.5.2 函數-函數 80
3.5.3 參數傳遞 83
3.6 案例研究:蹦極者的速度計算 85
習題 88
第4章 舍入和截斷誤差 100
4.1 誤差 100
4.1.1 準確度和精確度 101
4.1.2 誤差定義 101
4.1.3 迭代計算的電腦算法 104
4.2 舍入誤差 106
4.2.1 電腦中數字的表示法 106
4.2.2 電腦中數字的算術運算 111
4.3 截斷誤差 113
4.3.1 泰勒級數 113
4.3.2 泰勒級數式的餘數 116
4.3.3 使用泰勒級數估計截斷誤差 118
4.3.4 數值微分 118
4.4 總數值誤差 122
4.4.1 數值微分的誤差分析 122
4.4.2 數值誤差的控制 125
4.5 錯誤、模型誤差和數據不確定性 125
4.5.1 錯誤 125
4.5.2 模型誤差 126
4.5.3 數據不確定性 126
習題 126
第Ⅱ部分 求根和最優化
第5章 求根:交叉法 133
5.1 工程和科學應用中的求根問題 133
5.2 圖形和試錯法 134
5.3 交叉法和初步猜測 137
5.4 二分法 140
5.5 試位法 146
5.6 案例研究:溫室氣體和雨水 148
習題 152
第6章 根:開型法 159
6.1 不動點迭代 160
6.2 韋格斯坦法 164
6.3 牛頓-拉夫遜法 168
6.4 正割法 174
6.5 布倫特法 175
6.5.1 逆二次插值法 175
6.5.2 布倫特法的算法 177
6.6 Python SciPy函數:brentq 179
6.7 多項式 180
6.8 案例研究:管道摩擦 183
習題 188
第7章 優化 198
7.1 背景介紹 199
7.2 一維優化 201
7.2.1 黃金分割搜索 201
7.2.2 拋物線插值 207
7.2.3 Python的SciPy函數:
minimize_scalar 208
7.3 多維優化 210
7.4 案例研究:平衡和最小勢能 212
習題 214
第Ⅲ部分 線性方程組
第8章 線性代數方程與矩陣 226
8.1 矩陣代數概述 227
8.1.1 矩陣符號 228
8.1.2 矩陣運算規則 229
8.1.3 用矩陣形式表示線性代數方程 237
8.2 用Python求解線性代數方程 238
8.3 案例研究:電路中的電流和
電壓 240
習題 243
第9章 高斯消元法 249
9.1 求解少量方程 249
9.1.1 圖解法 250
9.1.2 行列式和克萊默法則 251
9.1.3 消除未知數法 253
9.2 樸素高斯消元法 254
9.2.1 Python函數:gaussnaive 256
9.2.2 運算計數 258
9.3 主元 260
9.3.1 Python函數:gausspivot 261
9.3.2 用高斯消元法求行列式 262
9.4 三對角方程組 263
9.5 案例研究:加熱棒模型 265
習題 268
第10章 LU因式分解法 275
10.1 LU分解法概述 275
10.2 LU分解的高斯消元 276
10.2.1 涉及主元消元的LU分解 279
10.2.2 應用Python的LU分解法 281
10.3 喬裡斯基分解法 282
10.4 Python的np.linalg.solve函數 284
習題 285
第11章 矩陣的逆和條件 287
11.1 矩陣的逆 287
11.1.1 計算逆矩陣 287
11.1.2 刺激-響應計算 289
11.2 錯誤分析和系統狀態 290
11.2.1 向量和矩陣範數 291
11.2.2 矩陣條件數 292
11.2.3 用Python計算範數和
條件數 293
11.3 案例研究:室內空氣污染 294
習題 297
第12章 迭代法 302
12.1 線性方程組:高斯-賽德爾法 302
12.1.1 收斂性和對角優勢 304
12.1.2 Python函數:gaussseide1 304
12.1.3 鬆弛 306
12.2 非線性系統 307
12.2.1 逐次代換法 307
12.2.2 牛頓-拉夫遜法 309
12.2.3 Python SciPy函數:root 313
12.3 案例研究:化學反應 314
習題 316
第13章 特徵值 321
13.1 特徵值和特徵向量——
基礎知識 322
13.2 特徵值和特徵向量的應用 324
13.2.1 二階微分方程的一階等價
方程 325
13.2.2 特徵值和特徵向量在微分
方程解中的作用 325
13.2.3 特徵值和純振盪的常微分
方程 326
13.3 物理場景-質量-彈簧系統 329
13.4 冪法 331
13.5 Python NumPy函數:eig和
eigvals 333
13.6 案例研究:特徵值與地震 334
習題 338
第Ⅳ部分 曲線擬合
第14章 直線線性回歸 346
14.1 統計學回顧 347
14.1.1 描述性統計 347
14.1.2 正態分佈 351
14.1.3 使用Python進行描述性統計 354
14.2 隨機數和模擬 357
14.2.1 均勻分佈中的隨機數 357
14.2.2 正態分佈中的隨機數 359
14.3 直線最小二乘回歸 361
14.3.1 “最佳”擬合的標準 362
14.3.2 直線的最小二乘擬合 363
14.3.3 繪制直線的“荒島”法 365
14.3.4 線性回歸誤差的量化 365
14.4 非線性關系的線性化 370
14.5 電腦應用 375
14.5.1 Python函數:strlinregr 375
14.5.2 Python NumPy函數:
polyfit和polyval 378
14.6 案例研究:酶動力學 379
習題 382
第15章 一般線性回歸和非線性回歸 393
15.1 多項式回歸 393
15.2 多元線性回歸 397
15.3 一般線性最小二乘回歸 399
15.4 回歸中的模型建立與選擇 403
15.5 非線性回歸 409
15.6 案例研究:擬合實驗數據 414
習題 417
第16章 傅里葉分析 424
16.1 用正弦函數進行曲線擬合 425
16.2 連續傅里葉級數 430
16.3 頻域和時域 432
16.4 傅里葉積分和變換 435
16.5 離散傅里葉變換(DFT) 435
16.5.1 快速傅里葉變換(FFT) 436
16.5.2 Python SciPy函數:fft 437
16.6 功率譜 439
16.7 案例研究:太陽黑子 440
習題 442
第17章 多項式插值法 446
17.1 插值法簡介 447
17.1.1 確定多項式系數 447
17.1.2 Python NumPy函數:
polyfit和polyval 449
17.2 牛頓插值多項式 449
17.2.1 線性插值 449
17.2.2 二次插值 451
17.2.3 牛頓插值多項式的一般形式 452
17.2.4 Python函數Newtint 454
17.3 拉格朗日插值多項式 455
17.4 逆插值 458
17.5 外推法和振盪 458
17.5.1 外推法 458
17.5.2 振盪 461
習題 463
第18章 樣條和分段插值 469
18.1 樣條簡介 469
18.2 線性樣條 471
18.3 二次樣條 477
18.4 三次樣條 478
18.4.1 三次樣條的推導 479
18.4.2 末端條件 482
18.5 Python中的分段插值 483
18.5.1 Python SciPy模塊的interpolate
函數:CubicSpline 485
18.5.2 附加的Python SciPy插值函數:
interp1d和PchipInterpolator 487
18.6 多維插值 488
18.6.1 雙線性插值 489
18.6.2 Python中的多維插值 490
18.7 數據序列的平滑 491
18.7.1 三次樣條平滑 491
18.7.2 LOESS平滑法 494
18.8 案例研究:湖中的熱傳導 499
習題 501
第Ⅴ部分 微積分
第19章 數值積分方程 511
19.1 背景簡介 512
19.1.1 什麽是積分 512
19.1.2 工程與科學中的積分 512
19.2 牛頓-科特斯方程 514
19.3 梯形法則 516
19.3.1 梯形法則的誤差 516
19.3.2 復合梯形法則 517
19.3.3 Python函數:trap 520
19.4 辛普森法則 521
19.4.1 辛普森1/3 法則 521
19.4.2 復合辛普森1/3法則 522
19.4.3 辛普森3/8法則 524
19.5 高階牛頓-科特斯方程 526
19.6 不等段積分 526
19.6.1 Python函數:trapuneq 527
19.6.2 Python函數:trapz和
trap_cumulative 528
19.7 開放式方法 530
19.8 多重積分 531
19.9 案例研究:數值積分的計算 533
習題 536
第20章 函數的數值積分 543
20.1 簡介 543
20.2 Romberg積分 544
20.2.1 Richardson外推 544
20.2.2 Romberg積分算法 546
20.3 高斯求積法 548
20.3.1 待定系數法 548
20.3.2 兩點高斯-勒讓德公式的推導 550
20.3.3 高點公式 552
20.4 自適應求積法 553
20.4.1 Python函數:quadadapt 553
20.4.2 Python SciPy積分函數:
quad 555
20.5 案例研究:均方根電流 556
習題 559
第21章 數值導數 565
21.1 背景簡介 566
21.1.1 什麽是導數 566
21.1.2 工程與科學的導數 567
21.2 高精度導數公式 568
21.3 Richardson 外推法 571
21.4 不等間距數據的導數 572
21.5 有誤差數據的導數和積分 573
21.6 偏導數 574
21.7 Python數值求導 574
21.7.1 Python NumPy函數:diff 574
21.7.2 Python NumPy函數:
gradient 577
21.8 案例研究:場的可視化 579
習題 580
第Ⅵ部分 常微分方程
第22章 初值問題 594
22.1 概述 595
22.2 歐拉法 595
22.2.1 歐拉法的誤差分析 597
22.2.2 歐拉法的穩定性 598
22.2.3 Python函數:eulode 599
22.3 改進歐拉法 601
22.3.1 Heun方法 601
22.3.2 中點法 604
22.4 Runge-Kutta方法 605
22.4.1 二階Runge-Kutta法 605
22.4.2 經典四階 Runge-Kutta法 606
22.5 方程組 608
22.5.1 歐拉法 609
22.5.2 Runge-Kutta法 610
22.5.3 Python 函數:rk4sys 611
22.6 案例研究:捕食者—獵物
模型和變體 614
習題 618
第23章 自適應方法和剛性系統 625
23.1 自適應Runge-Kutta方法 625
23.1.1 RKF 4/5算法的Python函數:
rkf45 626
23.1.2 求解IVP ODE的Python函數:
SciPy solve_ivp積分函數 630
23.1.3 事件 633
23.2 多步法 636
23.2.1 非自啟動Heun方法 636
23.2.2 誤差估計 638
23.3 剛度 639
23.4 Python 應用:帶繩的蹦極者 644
23.5 案例研究:普林尼的間歇噴泉 646
習題 649
第24章 邊值問題 659
24.1 背景簡介 660
24.1.1 什麽是邊值問題 660
24.1.2 工程和科學中的邊值問題 660
24.2 打靶法 663
24.2.1 導數邊界條件 665
24.2.2 非線性常微分方程的打靶法 667
24.3 有限差分法 669
24.3.1 導數邊界條件 671
24.3.2 非線性 ODE 的有限差分
方法 673
24.4 Python函數:solve_bvp 674
習題 676
—掃封底二維碼下載以下內容—
附錄A Matplotlib 685
附錄B 三次樣條平滑 705
附錄C Python內置關鍵字:函數、方法、
操作符、類型 710
附錄D 書中用到的Python函數和腳本 713
參考文獻 715