没有合适的资源?快使用搜索试试~ 我知道了~
首页Python科学编程入门:实战解题与计算科学基础
"A Primer on Scientific Programming with Python" 是一本专为初学者设计的书籍,旨在教授高级Python语言在科学应用程序中的应用。它强调实例导向和问题解决方法,涵盖数学(包括经典和数值一元微积分)、数字微积分、统计学、物理学、生物学以及金融学等多个领域的实际问题。书中不仅教导读者使用MATLAB风格的命令式编程和面向对象编程技巧,还深入介绍了如何利用数值方法和编程来解决科学和工程领域中的复杂数学问题。 对于读者来说,具备高中水平的数学知识是基础前提,因为书中的内容会涉及到数学概念和算法。作者Hans Petter Langtangen来自Simula Research Laboratory,他在挪威奥斯陆大学的计算机科学系工作,目前处于学术休假期间。本书作为《计算科学与工程》系列的一部分,被归类为"计算方法",适合对编程和科学应用有兴趣的学生、研究人员和工程师使用。 此书第三版特别强调编程与数学的结合,旨在为实践计算科学奠定扎实的理论基础。书中包含了丰富的代码示例和详细解释,帮助读者逐步掌握如何编写高效、可维护的科学程序。版权信息显示,本书受到严格的版权保护,未经许可不得进行翻译、复制或任何形式的商业使用。 通过阅读这本书,读者不仅可以提升编程技能,还能了解如何将这些技能应用于解决实际的科学问题,从而推动科技进步和创新。无论是希望在科研领域开展计算工作的专业人士,还是对科学编程感兴趣的学生,这本书都是一个理想的学习资源。
资源详情
资源推荐
xiv Contents
5.2 Arraysin Python Programs ........................ 193
5.2.1 Using Lists for Collecting Function Data . . . . . . . . 193
5.2.2 Basics of Numerical Python Arrays . . . . . . . . . . . . 194
5.2.3 Computing Coordinates and Function Values . . . . 195
5.2.4 Vectorization................................ 196
5.3 CurvePlotting.................................... 198
5.3.1 Matplotlib;Pylab............................ 198
5.3.2 Matplotlib;Pyplot........................... 202
5.3.3 SciToolsandEasyviz......................... 204
5.3.4 MakingAnimations.......................... 209
5.3.5 CurvesinPureText ......................... 214
5.4 PlottingDifficulties................................ 215
5.4.1 Piecewisely Defined Functions . . . . . . . . . . . . . . . . . 216
5.4.2 RapidlyVaryingFunctions.................... 218
5.5 More Advanced Vectorization of Functions . . . . . . . . . . . 219
5.5.1 Vectorizing StringFunction Objects . . . . . . . . . . . . 220
5.5.2 Vectorization of the Heaviside Function . . . . . . . . . 221
5.5.3 VectorizationofaHat Function ............... 224
5.6 Moreon Numerical PythonArrays .................. 226
5.6.1 CopyingArrays ............................. 226
5.6.2 In-PlaceArithmetics ......................... 227
5.6.3 AllocatingArrays............................ 228
5.6.4 GeneralizedIndexing......................... 228
5.6.5 TestingfortheArray Type ................... 229
5.6.6 Compact Syntax for Array Generation. . . . . . . . . . 230
5.6.7 ShapeManipulation.......................... 230
5.7 Higher-DimensionalArrays ......................... 231
5.7.1 MatricesandArrays ......................... 231
5.7.2 Two-DimensionalNumericalPythonArrays..... 232
5.7.3 ArrayComputing............................ 235
5.7.4 Two-Dimensional Arrays and Functions of Two
Variables ................................... 235
5.7.5 MatrixObjects.............................. 236
5.8 Summary ........................................ 237
5.8.1 ChapterTopics.............................. 237
5.8.2 Example:AnimatingaFunction ............... 239
5.9 Exercises......................................... 243
6 Files, Strings, and Dictionaries ...................... 257
6.1 ReadingData from File ............................ 257
6.1.1 ReadingaFileLine by Line................... 258
6.1.2 Reading a Mixture of Text and Numbers . . . . . . . 261
6.1.3 WhatIsa File, Really?....................... 262
6.2 Dictionaries ...................................... 266
6.2.1 MakingDictionaries.......................... 266
Contents xv
6.2.2 DictionaryOperations........................ 267
6.2.3 Example: Polynomials as Dictionaries . . . . . . . . . . 269
6.2.4 Dictionaries with Default Values and Ordering . . 271
6.2.5 Example: File Data in Dictionaries . . . . . . . . . . . . . 273
6.2.6 Example: File Data in Nested Dictionaries . . . . . . 274
6.2.7 Example:ComparingStockPrices ............. 278
6.3 Strings........................................... 282
6.3.1 CommonOperationsonStrings ............... 282
6.3.2 Example:ReadingPairsofNumbers ........... 286
6.3.3 Example:ReadingCoordinates ................ 288
6.4 ReadingData fromWebPages...................... 291
6.4.1 AboutWebPages ........................... 291
6.4.2 How to Access Web Pages in Programs . . . . . . . . . 292
6.4.3 Example:ReadingPureText Files ............. 293
6.4.4 Example: Extracting Data from HTML . . . . . . . . . 295
6.5 WritingData to File............................... 296
6.5.1 Example:WritingaTable to File .............. 296
6.5.2 Standard Input and Output as File Objects . . . . . 298
6.5.3 Reading and Writing Spreadsheet Files . . . . . . . . . 300
6.6 Examplesfrom Analyzing DNA ..................... 305
6.6.1 ComputingFrequencies....................... 305
6.6.2 AnalyzingtheFrequencyMatrix............... 312
6.6.3 FindingBaseFrequencies..................... 315
6.6.4 TranslatingGenesintoProteins ............... 317
6.6.5 Some Humans Can Drink Milk, While Others
Cannot..................................... 322
6.7 Summary ........................................ 323
6.7.1 ChapterTopics.............................. 323
6.7.2 Example:AFileDatabase .................... 325
6.8 Exercises......................................... 329
7 Introduction to Classes ............................. 341
7.1 SimpleFunctionClasses............................ 342
7.1.1 Problem: Functions with Parameters . . . . . . . . . . . 342
7.1.2 RepresentingaFunctionas aClass............. 344
7.1.3 AnotherFunctionClassExample .............. 350
7.1.4 Alternative Function Class Implementations . . . . . 351
7.1.5 Making Classes Without the Class Construct . . . . 353
7.2 MoreExamples on Classes.......................... 356
7.2.1 BankAccounts.............................. 356
7.2.2 PhoneBook................................. 358
7.2.3 ACircle.................................... 359
7.3 SpecialMethods .................................. 360
7.3.1 TheCallSpecialMethod ..................... 361
7.3.2 Example: Automagic Differentiation . . . . . . . . . . . . 361
xvi Contents
7.3.3 Example: Automagic Integration . . . . . . . . . . . . . . . 364
7.3.4 TurninganInstanceintoa String.............. 366
7.3.5 Example: Phone Book with Special Methods . . . . 367
7.3.6 AddingObjects ............................. 369
7.3.7 Example:ClassforPolynomials ............... 369
7.3.8 Arithmetic Operations and Other Special
Methods.................................... 373
7.3.9 Special Methods for String Conversion. . . . . . . . . . 374
7.4 Example:Classfor Vectors inthePlane.............. 375
7.4.1 Some Mathematical Operations on Vectors . . . . . . 376
7.4.2 Implementation ............................. 376
7.4.3 Usage ...................................... 378
7.5 Example:Classfor Complex Numbers ............... 379
7.5.1 Implementation ............................. 380
7.5.2 IllegalOperations............................ 381
7.5.3 MixingComplexandReal Numbers............ 382
7.5.4 Special Methods for “Right” Operands . . . . . . . . . 384
7.5.5 InspectingInstances ......................... 386
7.6 StaticMethodsand Attributes...................... 387
7.7 Summary ........................................ 388
7.7.1 ChapterTopics.............................. 388
7.7.2 Example:IntervalArithmetics................. 389
7.8 Exercises......................................... 395
8 Random Numbers and Simple Games ............... 413
8.1 DrawingRandomNumbers......................... 414
8.1.1 TheSeed ................................... 414
8.1.2 Uniformly Distributed Random Numbers . . . . . . . 415
8.1.3 VisualizingtheDistribution................... 416
8.1.4 Vectorized Drawing of Random Numbers . . . . . . . 417
8.1.5 Computing the Mean and Standard Deviation . . . 418
8.1.6 The Gaussian or Normal Distribution . . . . . . . . . . 419
8.2 DrawingIntegers.................................. 420
8.2.1 RandomIntegerFunctions.................... 421
8.2.2 Example:ThrowingaDie..................... 422
8.2.3 Drawing a Random Element from a List . . . . . . . . 422
8.2.4 Example: Drawing Cards from a Deck . . . . . . . . . . 423
8.2.5 Example: Class Implementation of a Deck . . . . . . 425
8.3 Computing Probabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
8.3.1 Principles of Monte Carlo Simulation . . . . . . . . . . . 428
8.3.2 Example:ThrowingDice ..................... 429
8.3.3 Example: Drawing Balls from a Hat . . . . . . . . . . . . 432
8.3.4 RandomMutationsofGenes .................. 434
8.3.5 Example: Policies for Limiting Population Growth 439
8.4 SimpleGames .................................... 442
Contents xvii
8.4.1 GuessingaNumber .......................... 442
8.4.2 Rolling Two Dice . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
8.5 MonteCarlo Integration ........................... 446
8.5.1 StandardMonteCarloIntegration ............. 446
8.5.2 Area Computing by Throwing Random Points . . . 448
8.6 RandomWalk inOneSpaceDimension .............. 450
8.6.1 BasicImplementation ........................ 451
8.6.2 Visualization................................ 452
8.6.3 Random Walk as a Difference Equation . . . . . . . . . 452
8.6.4 Computing Statistics of the Particle Positions . . . 453
8.6.5 VectorizedImplementation.................... 454
8.7 RandomWalk inTwoSpaceDimensions ............. 456
8.7.1 BasicImplementation ........................ 456
8.7.2 VectorizedImplementation.................... 457
8.8 Summary ........................................ 459
8.8.1 ChapterTopics.............................. 459
8.8.2 Example:RandomGrowth.................... 460
8.9 Exercises......................................... 466
9 Object-Oriented Programming ...................... 483
9.1 Inheritanceand Class Hierarchies ................... 483
9.1.1 AClassfor Straight Lines .................... 484
9.1.2 A First Try on a Class for Parabolas . . . . . . . . . . . 485
9.1.3 A Class for Parabolas Using Inheritance . . . . . . . . 485
9.1.4 CheckingtheClassType ..................... 487
9.1.5 AttributeVersusInheritance .................. 488
9.1.6 Extending Versus Restricting Functionality . . . . . 489
9.1.7 Superclass for Defining an Interface . . . . . . . . . . . . 490
9.2 Class Hierarchy for Numerical Differentiation . . . . . . . . . 492
9.2.1 ClassesforDifferentiation..................... 493
9.2.2 AFlexibleMainProgram..................... 496
9.2.3 Extensions.................................. 497
9.2.4 Alternative Implementation via Functions . . . . . . . 500
9.2.5 Alternative Implementation via Functional
Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
9.2.6 Alternative Implementation via a Single Class . . . 502
9.3 ClassHierarchy for Numerical Integration ............ 504
9.3.1 NumericalIntegrationMethods................ 504
9.3.2 ClassesforIntegration........................ 505
9.3.3 UsingtheClass Hierarchy .................... 509
9.3.4 About Object-Oriented Programming . . . . . . . . . . 511
9.4 ClassHierarchy for MakingDrawings ................ 513
9.4.1 UsingtheObjectCollection................... 514
9.4.2 Example of Classes for Geometric Objects . . . . . . 523
9.4.3 Adding Functionality via Recursion . . . . . . . . . . . . 528
xviii Contents
9.4.4 Scaling, Translating, and Rotating a Figure . . . . 531
9.5 Classesfor DNA Analysis .......................... 534
9.5.1 Classfor Regions ........................... 534
9.5.2 Classfor Genes............................. 534
9.5.3 Subclasses ................................. 539
9.6 Summary ........................................ 541
9.6.1 ChapterTopics............................. 541
9.6.2 Example: Input Data Reader . . . . . . . . . . . . . . . . . 542
9.7 Exercises......................................... 548
A Sequences and Difference Equations ................. 557
A.1 Mathematical Models Based on Difference Equations . . 558
A.1.1 InterestRates.............................. 559
A.1.2 The Factorial as a Difference Equation . . . . . . . . 561
A.1.3 FibonacciNumbers ......................... 562
A.1.4 Growthofa Population ..................... 563
A.1.5 LogisticGrowth ............................ 564
A.1.6 Paybackofa Loan.......................... 566
A.1.7 The Integral as a Difference Equation . . . . . . . . . 567
A.1.8 TaylorSeriesasa Difference Equation......... 569
A.1.9 MakingaLiving from aFortune.............. 571
A.1.10 Newton’sMethod........................... 571
A.1.11 TheInverseofa Function.................... 575
A.2 Programming with Sound . . . . . . . . . . . . . . . . . . . . . . . . . . 577
A.2.1 WritingSoundto File ....................... 578
A.2.2 ReadingSoundfrom File .................... 579
A.2.3 PlayingManyNotes ........................ 580
A.2.4 Musicofa Sequence ........................ 580
A.3 Exercises......................................... 583
B Introduction to Discrete Calculus ................... 593
B.1 DiscreteFunctions................................. 593
B.1.1 TheSineFunction .......................... 594
B.1.2 Interpolation............................... 596
B.1.3 EvaluatingtheApproximation ............... 596
B.1.4 Generalization ............................. 597
B.2 Differentiation Becomes Finite Differences . . . . . . . . . . . . 599
B.2.1 DifferentiatingtheSineFunction ............. 600
B.2.2 Differencesona Mesh....................... 600
B.2.3 Generalization ............................. 602
B.3 Integration Becomes Summation . . . . . . . . . . . . . . . . . . . . 603
B.3.1 Dividing into Subintervals . . . . . . . . . . . . . . . . . . . 604
B.3.2 Integration on Subintervals . . . . . . . . . . . . . . . . . . 605
B.3.3 Adding the Subintervals . . . . . . . . . . . . . . . . . . . . . 606
B.3.4 Generalization ............................. 607
剩余831页未读,继续阅读
weiyang_tang
- 粉丝: 49
- 资源: 23
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 前端面试必问:真实项目经验大揭秘
- 永磁同步电机二阶自抗扰神经网络控制技术与实践
- 基于HAL库的LoRa通讯与SHT30温湿度测量项目
- avaWeb-mast推荐系统开发实战指南
- 慧鱼SolidWorks零件模型库:设计与创新的强大工具
- MATLAB实现稀疏傅里叶变换(SFFT)代码及测试
- ChatGPT联网模式亮相,体验智能压缩技术.zip
- 掌握进程保护的HOOK API技术
- 基于.Net的日用品网站开发:设计、实现与分析
- MyBatis-Spring 1.3.2版本下载指南
- 开源全能媒体播放器:小戴媒体播放器2 5.1-3
- 华为eNSP参考文档:DHCP与VRP操作指南
- SpringMyBatis实现疫苗接种预约系统
- VHDL实现倒车雷达系统源码免费提供
- 掌握软件测评师考试要点:历年真题解析
- 轻松下载微信视频号内容的新工具介绍
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功