Recommendation for an introductory level book in computational physics?

I'm a physics undergrad, looking for a good introductory book on computational science, and numerical methods. Mostly I'm looking for applied books. (Simply because... in a theoretical book, if I can't see why I'm studying it, it's easy to lose motivation!)

Background

I have the following background:

• Strong background in programming (C++/Java/javascript/BASIC/introductory Mathematica)
• parallel computing (enough to compile/fiddle with CUDA samples, and to use mutexes/locks semi-competently)
• Mid-undergraduate physics (so, mechanics, waves, and special relativity, at a decent level, as well as introductory lagrangians)
• Introductory linear algebra
• Vector/tensor calculus (I 'learned' this material, but I really haven't applied it much)
• Proofs/intro real analysis (halfway through baby Rudin, for those familiar, so I'm decent with rigor)

Goals

I'm looking for an applied book, because the simulations I write to figure out a problem are sometimes insufficient! Several of these areas:

• Mechanics. My current method is to treat everything as a rigid sphere, with a spring force, and some damping on the plane of contact whenever a collision occurs. I don't think I've advanced from this in... maybe, three years? So, it would be very useful to learn a new method. Plus, with my own methods I sometimes run into bugs. Finite element analysis looks like a very interesting topic but the only books I've found on it are very rigorous and not very applied, so it's hard to be introduced to the material.
• Wave Motion. It's pretty straightforward to discretize $\nabla^2\phi=\frac{\partial^2\phi}{\partial t ^2}$ and just to use it, but whenever I run into some instability (large error in energy, or an unstable simulation, or anything else that I don't know how to solve), my only solution is to decrease the timestep/increase the resolution. I only find new things every once in a while (such as a decent method for a nonreflecting boundary condition!).
• Electromagnetism. I know vector calculus, so, why not?
• Fluid mechanics? It seems like parts of this aren't that complicated, but I'm not familiar with it.
• Others? Special relativity seems to necessitate electromagnetism, so that's off limits for now, and I'm not that knowledgeable in quantum mechanics. I'm not opposed to pure math things (attractors, etc) so long as there are interesting things computed, and not just several results proved and unused.

So, to clarify, I'm looking for an applied computational, possibly physics-based book, which starts at the introductory level (introductory not being synonymous with easy), and ideally provides a broad overview of multiple methods, with lots of applications, notably in the fields above.

I've looked quite a bit for books in these areas, but usually they turn out to either be way over my head, or theoretical to the point where I don't know what the purpose of what I'm proving/deriving is!

I understand that this is a very soft question, and I was hesitant posting it because of that, because I'm new to this corner of stackexchange, and because it might be seen as too localized. I don't think it's too localized, since I've found questions like these very useful in getting a grasp on a large field that I'm new in. Usually when I want to learn more about a topic I pick up a book, and to figure out what book to pick up I go to stackexchange, and usually the book recommendations on questions others have asked are great. I didn't find any questions applicable to my level on this site, so I think it's appropriate to ask one. Of course I'll take any objections into consideration.

One book that was recommended to me (not here) was "A First Course in Computational Physics" by Devries. The practice problems look especially good/interesting.

• NeuroFuzzy, welcome to SciComp. As you stated, your question seems soft, and somewhat open ended, however since you are looking for introductory texts, it may get a useful answer or two. I would still recommend splitting it into different question. For instance, your bullet point on the wave equation could be expanded into its own question with only a little extra research into solution techniques. Feb 11, 2013 at 3:17
• Many computational methods ultimately depend on the type of PDE you are solving (linear/nonlinear, elliptic,parabolic,hyperbolic, etc.). Focus on identifying types of PDE's, and learning the numerical methods for each type. While this can seem more "theoretical" at first, it will give you much more insight more quickly than examining the methods used in each physics application.
– Paul
Feb 11, 2013 at 16:22

Another suggestion is:

An Introduction to Scientific Computing. Twelve computational projects solved with MATLAB

http://www.ljll.math.upmc.fr/AI2SC/

The twelve projects cover many of the areas you mention in your post, are each in a separate chapter, and are more or less independent of each other.

Bill

• I'm worried this book will be too advanced, since that page says it's geared towards graduate level studies. Fortunately I found a not-too-expensive copy of it. At the very least I can pick apart the matlab code!
– user121
Feb 14, 2013 at 1:16

Look at the following

Simulating the Physical World: Hierarchical Modeling from Quantum Mechanics to Fluid Dynamics

Computational Physics - An Introduction

For notes based on the 2nd book by the author of the book himself see here. For more advanced stuff see

Computational Physics

There are plenty of other books too.

I'll give an update based on what I've done in the time since asking this question.

A First Course in Computational Physics - DeVries. This covers many fundamental topics (Root finding/interpolation/integration [incl. Monte Carlo methods], linear algebra methods, ODEs, PDEs, and Fourier analysis) in a conversational tone so that everything seems motivated, and was very interesting for starting out in numerical methods.

Computational Physics - An Introduction - Vesely. I've found that the bulk of this book covers the same things the DeVries book covers, but it does so a bit more formally and uses more powerful and general (specialized?) tools. There are too few practice problems, in my opinion. It also has a chapter on hydrodynamics.

An Introduction to Scientific Computing - Danaila. The projects in this are excellent and definitely complement the material in the other two books I mentioned. It discusses aspects of each problem more in depth and provides challenges. (meaning that the tools in DeVries and Vesely don't just trivially solve each problem)

I suggest you check out these books:

A.B. Shiflet and G.W. Shiflet, Introduction to Computational Science, Princeton University Press, 2006

R.H. Landau, M.J. Paez, and C.C. Bordeianu, A Survey of Computational Physics, Princeton University Press, 2008

Hope this helps.

Try Tveito, Langtangen, Nielsen, Cai: Elements of Scientific Computing. This is for beginners and pedagogically excellent.

• Welcome to SciComp! Could you expand on your answer a bit (e.g., what topics does the book cover, why do you recommend it over other books with a similar topic, how specifically does it relate to the OPs requirements)? (This holds for your other answers as well.) Oct 20, 2014 at 10:54
• Also, your name and the pattern of your answers leads me to suspect that you are in fact the Executive Editor for Mathematics at Springer. If this is the case, it's good to have you here, but you should disclose that fact in your answers -- they do look a bit like sneak advertisements otherwise... Oct 20, 2014 at 10:57
• Ok. The book was developed from a course on scientific computing at University of Oslo for undergraduate students of various backgrounds including physics. It does not assume much mathematical knowledge and teaches the mathematical parts from scratch. It includes programming techniques which is a must these days. It includes many examples which come from physics. The authors have taken into account several years of feedback from their students, which lead to a very polished book. Oct 20, 2014 at 11:02
• I am an Executive Editor for CSE and Mathematics at Springer. That is public information. Oct 20, 2014 at 11:05
• Of course (still, it might have been coincidence). All I'm saying is that this fact makes your recommendations (especially without any qualifying statements) look biased. The SE community's stance is pretty clear on that. Oct 20, 2014 at 11:35