没有合适的资源?快使用搜索试试~ 我知道了~
首页物理学计算入门:实战数值方法与参考书推荐
物理学计算入门:实战数值方法与参考书推荐
需积分: 31 28 下载量 34 浏览量
更新于2024-07-21
收藏 6.13MB PDF 举报
"计算物理是一门日益重要的学科,尤其对于物理专业的本科生来说,掌握一套核心的计算工具是必不可少的。随着物理学中的许多问题无法通过传统的数学分析得到精确解,数值计算方法的应用变得愈发广泛。《计算物理的方法》这本书旨在向学生介绍如何利用数值技术解决那些常规数学手段难以触及的物理问题。 该教材深入浅出地讲解了各种数值计算方法,注重逻辑的清晰性和方法的实用性。作者乔尔·弗兰克林是一位来自里德学院物理学系的副教授,他的研究重点在于数学和计算方法,特别关注它们在经典力学和量子力学等领域的应用。书中精心设计了超过250个章节末尾的习题,旨在帮助读者巩固所学知识并进行实践。 书中的例子和插图都基于作者维护的一个网站上的程序,这些程序不仅是教材内容的可视化呈现,也是进一步研究的良好起点。访问该书的配套资源网址(www.cambridge.org/9781107034303)可以获取这些实用工具和资源。通过对比不同数值方法在解决同一问题上的效果,读者可以更好地理解和选择最适合的计算策略。 《计算物理的方法》不仅提供了一套系统的学习框架,还提供了丰富的实践机会,使学生能够在理论与实践之间建立起坚实的联系,为他们在物理学领域的研究和未来职业生涯打下坚实的基础。对于任何希望深入了解和运用数值计算技术的物理专业学生或教师来说,这是一本不可或缺的参考书目。"
资源详情
资源推荐
Preface xv
value (Chapter 2) and boundary value form (Chapter 3). There are two chapters
on finite difference for PDEs: Chapter 4 covers static, linear operators (mainly
the Poisson problem), and in Chapter 5, we see time-dependent PDEs (both
linear, like Schr
¨
odinger’s equation, and nonlinear forms). Chapter 6 develops
integration methods from interpolating polynomials, and connects the statistical
Monte Carlo integration method to simple box sums. Finally, I count the chapter
on the FFT as an integration topic.
2. Numerical linear algebra. Chapters 9–12 discuss numerical techniques for
matrix inversion, least squares solution, and the eigenvalue problem. Some
of the material in these chapters is required by topics in the first section (for
example, solving Poisson’s problem in discretized form involves matrix inver-
sion) where we used canned routines. Now we come back and pick up these
topics, their motivation coming in part from previous discussions. Chapters 9
and 10 focus on “direct” solution of the matrix inverse and eigenvalue problem,
while Chapter 11 introduces iterative techniques (Jacobi, SOR, and Krylov sub-
space methods).
5
Chapter 12 is not, strictly speaking, a part of linear algebra –
but minimization is usefully applied in the nonlinear least squares problem, so
must come after the linear form of that problem.
3. Additional topics. The first two sections provide methods that cover many phys-
ical problems. The remaining chapters give interesting additional topics, but
are slightly different in their coverage from the rest of the book. Chapter 13:
“Chaos,” for example, has no numerical methods attached to it. The neural net-
work chapter (14) presents these models in terms of their predictive ability for
physical phenomena, with emphasis on the promise provided by the Cybenko
theorem rather than the physiological inspiration normally encountered. Chap-
ter 15 returns to PDEs and describes the Galerkin approach with some additional
nonlinear PDE targets.
Two of the chapters do not fall neatly into these categories – the first chapter provides
a review of the minimal programming tools that we need to use to implement
the methods presented in the other chapters – it also provides some orienting
Mathematica examples of these tools in action. The eighth chapter acts as a
pivot between the first and second sections, and is meant to set up our interest in
the eigenvalue problem.
The grouping above is informed by the course that inspired this book, and for
which it was written – in it, the students present a final project of their own design,
5
Divorcing the finite difference setup from the iterative solutions (Jacobi and SOR) to the matrix inverse problem
is not the traditional approach. Typically, authors will combine the discretization of the Laplacian with an
iterative update. But I believe that the two pieces are logically separate – discretizing the Laplace operator gives
us a matrix inverse problem to solve, how we go about solving it is a separate matter.
xvi Preface
and they begin working on this at about the middle of the semester. That is when we
have covered the bulk of item one above, so they have seen a number of different
kinds of problems and understand numerical methods for solving them. The section
on numerical linear algebra is interesting and informative, but students who need
to, for example, invert matrices for their final projects can use a built-in routine
(few students have made the process of matrix inversion the central idea of their
projects) until the relevant material is covered (and even after, in most cases). The
additional topics section has then come at a time when students can take advantage
of the information in them without relying on it for their project (coupled, driven
oscillators can be solved and studied numerically before the nonlinear analysis
tools that are typically used to describe them are introduced).
While I use a subset of the programming language of Mathematica both in
the book, and in the course, I have found that students can re-render the content in
other languages relatively easily, and have had students work out the lab problems
using python, Java, C, Sage, and matlab. For those students with less of a pro-
gramming background, I provide, for each chapter, a Mathematica “notebook”
that contains all the commands used to generate the figures and example solu-
tions for the chapter. Then much of the programming can be done by re-working
examples from the chapter notebook. My intention is for students who are not as
interested in programming to have a way of learning the methods, without wor-
rying about their implementation as much. The computational methods are based
on implementation-independent mathematical ideas, and those are the core targets.
For students who enjoy the implementation side (I always did, although I was never
particularly good at it): optimizing and ordering commands efficiently, don’t look
at the chapter notebooks, work out your own routines from scratch.
This course is one of my favorites to teach – there are limitless physical problems
to set up, so it’s a great place for me to learn about new physics. Then the extent to
which it is difficult to solve most problems (even simple ones) analytically is always
surprising. And, finally, the numerical solutions that allow progress are often simple
and fast. I usually cover each chapter in a week with three lectures: on Monday, we
just set up physical problems, ones that come from different physics, but all end
in a common, fundamental “problem.” On Wednesday, we develop a method that
solves that problem, and then, during “Friday potpourri,” we return to some of the
problems from Monday and solve them, and discuss limitations or extensions of
the method. The chapter structure mimics these lectures, with physical problems
presented first, then methods, then additional items, sometimes additional physics,
other times, more in-depth discussion of the method or its variants.
What is notably missing from the weekly lectures is any sort of implementation
discussion – in addition to the three lectures, I also run three-hour “labs” every
week. Students come to these to work on the lab problems (I assign three or four
Preface xvii
of these each week), and this is where implementation can be carefully discussed,
with the relevant programming ideas built up on an individual basis, or through
group discussion. Having a concrete problem to work on (the lab problems) gives
natural focus to the programming. This separation between physics, the idea behind
the method, and its implementation, is intentional. The goal is to help identify
points of confusion as arising from the statement of a physical problem, the proper
functioning of a numerical method, or its implementation. Keeping those three
separate makes clearing up the confusion easier.
Website and materials
The book has a website, and on it, students can find all of the chapter notebooks
(the Mathematica code that generated all the examples and figures in the book),
a few sample “lab notebooks,” and some project ideas that students have come up
with over the years. Some of the lab problems require mocked up data or other
information, and those are also available on the website.
Acknowledgements
It is a pleasure to thank my colleagues in the Reed College physics depart-
ment, especially Darrell Schroeter, who developed and taught an early version
of the computational methods class at Reed with me, Nelia Mann who con-
tributed useful comments and problems, David Latimer, a great sounding board,
and David Griffiths for his usual outstanding commentary, criticism and encour-
agement. Outside the department, Jim Fix gave me some great image rotation
advice, Olivia Schelly took the pictures that are used in Chapter 7, and Matt Sayre
wrote the Gravitea-Time song for filtering. Simon Capelin and Lindsay Barnes at
Cambridge University Press have once again made the publishing process enjoy-
able, and I thank them for their help at all stages of the project.
I would like to thank Sebastian Doniach and the Stanford University physics
department for their hospitality in the winter of 2012: aside from a nice change of
scene, and stimulating new environment, I got to teach this material to an entirely
new audience, for which I am very grateful. The Writer’s Bloc has provided a
wonderful setting for revising the manuscript. Finally, a special thanks to the Reed
College students who helped me during the process of editing and refining the
book: Tom Chartrand, Todd Garon, and Reuven Lazarus.
1
Programming overview
A programming language useful to this book must provide a minimal set of compo-
nents that can be used to combine numbers, compare quantities and act on the result
of that comparison, repeat operations until a condition is met, and contain functions
that we can use to input data, and output results. Almost any language will suffice,
but I have chosen to use Mathematica’s programming environment as the vehi-
cle. The reasoning is that 1. The input/output functions of Mathematica are easy
to use, and require little additional preparation
1
2. We will be focused on the ideas,
numerical and otherwise, associated with the methods we study, and I want to draw
a clear distinction between those ideas and issues of implementation. This book is
not meant to teach you everything you need to know about programming
2
– we will
discuss only the bare essentials needed to implement the methods. Instead, we will
focus on the physical motivation and tools of analysis for a variety of techniques.
My hope is that the use of Mathematica allows us to discuss implementation
in a homogeneous way, and our restriction to the basic programming structure
of Mathematica (as opposed to the higher-level functionality) allows for easy
porting to the language of your choice.
Here, we will review the basic operations, rendered in Mathematica, falling
into the broad categories: arithmetic operations, comparisons, loops, and input–
output routines. In addition, we must be able to use variable names that can be
assigned values, and there is a scoping for these constructions in Mathematica
similar to C (and many other languages). Functions, in the sense of C, exist in
Mathematica, and we will use a particular (safe) form, although depending
on the context, there are faster (and slower) ways to generate functions. We will
bundle almost every set of computations into a function, and this is to mimic
1
There are libraries to import audio and video, for example, in C, but the resulting internal representation can
be difficult to work with. The details of compiling with those libraries correctly linked is also specific to the
language and compiler, issues that I want to avoid.
2
Although, I will employ good programming practice in the examples and accompanying chapter notebooks.
1
剩余418页未读,继续阅读
baidu_31244433
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 构建Cadence PSpice仿真模型库教程
- VMware 10.0安装指南:步骤详解与网络、文件共享解决方案
- 中国互联网20周年必读:影响行业的100本经典书籍
- SQL Server 2000 Analysis Services的经典MDX查询示例
- VC6.0 MFC操作Excel教程:亲测Win7下的应用与保存技巧
- 使用Python NetworkX处理网络图
- 科技驱动:计算机控制技术的革新与应用
- MF-1型机器人硬件与robobasic编程详解
- ADC性能指标解析:超越位数、SNR和谐波
- 通用示波器改造为逻辑分析仪:0-1字符显示与电路设计
- C++实现TCP控制台客户端
- SOA架构下ESB在卷烟厂的信息整合与决策支持
- 三维人脸识别:技术进展与应用解析
- 单张人脸图像的眼镜边框自动去除方法
- C语言绘制图形:余弦曲线与正弦函数示例
- Matlab 文件操作入门:fopen、fclose、fprintf、fscanf 等函数使用详解
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功