The use of computation and simulation has become an essential part of the scientific process. Being able to transform a theory into an algorithm requires significant theoretical insight, detailed physical and mathematical understanding, and a working level of competency in programming. This upper-division text provides an unusually broad survey of the topics of modern computational physics from a multidisciplinary, computational science point of view. Its philosophy is rooted in learning by doing (assisted by many model programs), with new scientific materials as well as with the Python programming language. Python has become very popular, particularly for physics education and large scientific projects. It is probably the easiest programming language to learn for beginners, yet is also used for mainstream scientific computing, and has packages for excellent graphics and even symbolic manipulations. The text is designed for an upper-level undergraduate or beginning graduate course and provides the reader with the essential knowledge to understand computational tools and mathematical methods well enough to be successful. As part of the teaching of using computers to solve scientific problems, the reader is encouraged to work through a sample problem stated at the beginning of each chapter or unit, which involves studying the text, writing, debugging and running programs, visualizing the results, and the expressing in words what has been done and what can be concluded. Then there are exercises and problems at the end of each chapter for the reader to work on their own (with model programs given for that purpose). The text could be used for a one-semester course on scientific computing. The relevant topics for that are covered in the first third of the book. The latter two-thirds of the text includes more physics and can be used for a two-semester course in computational physics, covering nonlinear ODEs, Chaotic Scattering, Fourier Analysis, Wavelet Analysis, Nonlinear Maps, Chaotic systems, Fractals and Parallel Computing. The e-book extends the paper version by including many codes, visualizations and applets, as well as links to video lectures. * A table at the beginning of each chapter indicates video lectures, slides, applets and animations. * Applets illustrate the results to be expected for projects in the book, and to help understand some abstract concepts (e.g. Chaotic Scattering) * The eBook's figures, equations, sections, chapters, index, table of contents, code listings, glossary, animations and executable codes (both Applets and Python programs) are linked, much like in a Web document. * Some equations are linked to their xml forms (which can be imported into Maple or Mathematica for manipulation). * The e-book will link to video-based lecture modules, held by principal author Professor Rubin Landau, that cover most every topic in the book.
Autorentext
Rubin H. Landau is Professor Emeritus in the Department of Physics at Oregon State University in Corvallis. He has been teaching courses in computational physics for over 25 years, was a founder of the Computational Physics Degree Program and the Northwest Alliance for Computational Science and Engineering, and has been using computers in theoretical physics research ever since graduate school. He is author of more than 90 refereed publications and has also authored books on Quantum Mechanics, Workstations and Supercomputers, the first two editions of Computational Physics, and a First Course in Scientific Computing.
Manuel J. Paez is a professor in the Department of Physics at the University of Antioquia in Medellin, Colombia. He has been teaching courses in Modern Physics, Nuclear Physics, Computational Physics, Mathematical Physics as well as programming in Fortran, Pascal and C languages. He and Professor Landau have conducted pioneering computational investigations in the interactions of mesons and nucleons with nuclei.
Cristian C. Bordeianu teaches Physics and Computer Science at the Military College "?tefan cel Mare" in Campulung Moldovenesc, Romania. He has over twenty years of experience in developing educational software for high school and university curricula. He is winner of the 2008 Undergraduate Computational Engineering and Science Award by the US Department of Energy and the Krell Institute. His current research interests include chaotic dynamics in nuclear multifragmentation and plasma of quarks and gluons.
Klappentext
The important aspects of computational modelling is the combination of science, mathematics and computation. Programming is part of that, and in this book the authors employ Python, which is considered as one of the easiest and most accessible language for beginning programming, and commonly used for interactive and exploratory computations in scientific research.
From the contents:
Computing software basics and Python libraries
Errors and uncertainties in computations
Monte Carlo: Randomness, walks, decays, thermodynamics
Differentiation, integration, matrix computing
Trial-and-error searching and data fitting
Solving ordinary differential equations with applications
High-performance hardware and programming
Fourier, wavelet and principal component analyses
Nonlinear dynamics
Fractals and Statistical growth models
Molecular dynamics
Partial Differential Equations: heat, waves, E-M, quantum wavepackets
Electrostatics via finite elements
Shock waves, solitons and fluid dynamics
Feynman path integrals and integral equations of quantum mecha
Inhalt
Dedication V
Preface XIX
1 Introduction 1
1.1 Computational Physics and Computational Science 1
1.2 This Book's Subjects 3
1.3 This Book's Problems 4
1.4 This Book's Language: The Python Ecosystem 8
1.5 Python's Visualization Tools 13
1.6 Plotting Exercises 30
1.7 Python's Algebraic Tools 31
2 Computing Software Basics 33
2.1 Making Computers Obey 33
2.2 ProgrammingWarmup 35
2.3 Python I/O 39
2.4 Computer Number Representations (Theory) 40
2.5 Problem: Summing Series 51
3 Errors and Uncertainties in Computations 53
3.1 Types of Errors (Theory) 53
3.2 Error in Bessel Functions (Problem) 58
3.3 Experimental Error Investigation 62
3.3.1 Error Assessment 65
4 Monte Carlo: Randomness, Walks, and Decays 69
4.1 Deterministic Randomness 69
4.2 Random Sequences (Theory) 69
4.3 RandomWalks (Problem) 75
4.4 Extension: Protein Folding and Self-Avoiding RandomWalks 79
4.5 Spontaneous Decay (Problem) 80
4.6 Decay Implementation and Visualization 84
5 Differentiation and Integration 85
5.1 Differentiation 85
5.2 Forward Difference (Algorithm) 86
5.3 Central Difference (Algorithm) 87
5.4 Extrapolated Difference (Algorithm) 87
5.5 Error Assessment 88
5.6 Second Derivatives (Problem) 90
5.7 Integration 91
5.8 Quadrature as Box Counting (Math) 91
5.9 Algorithm: Trapezoid Rule 93
5.10 Algorithm: Simpson's Rule 94
5.11 Integration Error (Assessment) 96
5.12 Algorithm: Gaussian Quadrature 97
5.13 Higher Order Rules (Algorithm) 103
5.14 Monte Carlo Integration by Stone Throwing (Problem) 104
5.15 Mean Value Integration (Theory and Math) 105
5.16 Integration Exercises 106
5.17 Multidimensional Monte Carlo Integration (Problem) 108
5.18 Integrating Rapidly Varying Functions (Problem) 110
5.19 Variance Reduction (Method) 110
5.20 Importance Sampling (Method) 111
5.21 von Neumann Rejection (Method) 111
…