标签
内容简介
本书是 Springer「Texts in Computational Science and Engineering」系列第 6 卷,作者 Hans Petter Langtangen 是奥斯陆大学计算机科学教授、Simula 研究中心生物医学计算中心(Centre for Biomedical Computing)主任,长期从事计算科学与 Python 应用研究。全书以实例与问题驱动的方式,带领没有编程基础的读者用 Python 完成科学计算入门。第 3 版修订于 2012 年出版,正文约 798 页,内容包括:用公式计算、循环与列表、函数与分支、输入数据与错误处理、数组计算与曲线绘图、文件/字符串/字典、类的初阶、随机数与简单博弈、面向对象编程;书末还附有序列与差分方程、离散微积分入门、微分方程入门、一个完整的微分方程项目、微分方程的程序实现、调试技巧、从 Python 迁移到编译型语言等技术专题。书中示例取自数学、数值微积分、统计、物理、生物与金融等领域,几乎每个例子都配有完整可运行代码,并特别强调「Matlab 风格」的过程式写法与面向对象写法的对照,说明 Python 可以作为 Matlab 在科学计算中的替代方案。作者在前言中说明读者只需具备高中数学基础,若同时学习经典与现代一元微积分则效果更佳。
编辑推荐
很多「Python 科学计算」书是从工具库讲起:先装 NumPy、SciPy、Matplotlib,再依次演示 API。Langtangen 这本书走的是另一条路:从最朴素的公式计算和循环写起,让读者先用语言本身把数值过程写明白,再自然过渡到数组计算、类与面向对象,最后落到差分方程与微分方程求解。这种「先造轮子、再用轮子」的编排,对理解科学计算为什么这样写代码极有帮助,也解释了为何它能成为 Springer 计算科学系列中流传最广的教材之一。第 3 版补充了输入数据与错误处理、调试与向编译型代码迁移等工程性专题,全书的示例都配有完整代码,可直接改参数做实验。数学门槛不高,只需要高中数学,但作者反复提示最好同时学一元微积分,说明这本书的野心不止于教语法,而是让读者在编程、数学与具体科学问题三者之间建立联系。若你打算长期做数值计算,这本约 800 页的厚书值得当作案头参考,而不是速成读物。
适合谁读
适合
- 理工科本科高年级或研究生,需要把课程作业与科研计算用 Python 落地的人
- 从 Matlab 转向 Python、希望理解两种写法差异的科研人员与工程师
- 准备开设「科学计算导论/计算物理」类课程、需要现成案例与习题的教师
- 已会 Python 语法,但想系统补齐数值方法与面向对象写法自学者
不适合
- 零基础且只想快速学会用 pandas 做数据分析的读者,本书不涉及数据清洗与可视化库
- 希望直接学习 NumPy、SciPy、Matplotlib 等库 API 速查的手册型读者
- 英语阅读吃力且需要中文讲解的入门者(本书原文为英文,无官方中文版)
阅读建议
- 按章顺序推进,每章的示例代码亲手敲一遍并改参数,比只读讲解收获大得多。
- 同步补一元微积分与线性代数基础,遇到差分方程与微分方程章节时才不会被数学卡住。
- 把书末的调试与迁移到编译型代码两章当作工程实践手册,做项目时再回头细读。
- 书中代码基于 Python 2 时代环境,练习时注意改成 Python 3 写法,并使用当前版本的 NumPy。
目录
- 前言(Preface)
- 用公式计算(Computing with Formulas)
- 循环与列表(Loops and Lists)
- 函数与分支(Functions and Branching)
- 输入数据与错误处理(Input Data and Error Handling)
- 数组计算与曲线绘图(Array Computing and Curve Plotting)
- 文件、字符串与字典(Files, Strings, and Dictionaries)
- 类简介(Introduction to Classes)
- 随机数与简单游戏(Random Numbers and Simple Games)
- 面向对象编程(Object-Oriented Programming)
- 序列与差分方程(Sequences and Difference Equations)
- 离散微积分入门(Introduction to Discrete Calculus)
- 微分方程入门(Introduction to Differential Equations)
- 一个完整的微分方程项目(A Complete Differential Equation Project)
- 微分方程的程序实现(Programming of Differential Equations)
- 调试(Debugging)
- 把 Python 迁移到编译型代码(Migrating Python to Compiled Code)
- 技术专题(Technical Topics)
- 参考文献(Bibliography)
- 索引(Index)
常见问题
这本书有中文译本吗?
据检索,该书未见正式出版的中文译本,市面流传的多为英文原版 PDF 或影印本。若在合集中看到中文标题,通常是自行翻译的书名,正文仍为英文。
第 3 版和最新的第 5 版有什么区别?
第 3 版出版于 2012 年,正文约 798 页、共 9 章主体加若干技术专题。后续版本在此基础上不断修订,补充更新的 Python 写法与内容。若只求系统学习,第 3 版的主体框架仍适用,但代码风格偏旧。
需要先学 Python 语法再读吗?
不需要。作者明确面向编程新手,从公式计算、循环与列表讲起,逐步引入函数、类与面向对象。具备高中数学基础即可开始,但需注意书中代码多为 Python 2 写法。
书里的数学要求有多高?
作者要求高中数学基础,并建议同时学习经典与现代一元微积分。后半部分的差分方程、离散微积分和微分方程章节会涉及微积分与数值方法概念,数学准备越充分越顺畅。
适合当作课堂教学用书吗?
适合。该书属 Springer 的 TCSE 教材系列,示例与习题丰富,多数高校用作一学期「科学计算/计算物理导论」课程教材,也可作为自学与参考书。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。