Preface ix About the Companion Website xiii 1 Introduction 1 1.1 What Is Computational Physics? 1 1.2 Modularizing and Reusing Code 4 1.3 Introduction to Computational Efficiency 7 1.4 Exercises 13 2 Precision Limits of Numerical Computation and Algorithms 15 2.1 Computer Numerical Representation 16 2.2 Roundoff Errors 22 2.3 Loss of Precision Errors 26 2.
4 Taylor''s Theorem 27 2.5 Truncation Errors 27 2.6 Introduction to Numerical C Programming 32 2.7 Exercises 34 3 C Programming Details 39 3.1 Structures and Pointers 39 3.2 Modularizing Code and Encapsulating Data in C 62 3.3 Common Coding Traps 67 3.4 Exercises 74 4 Visualization of Numerical Models 77 4.
1 Coding: Function Stepper Tool 78 4.2 Application: Damped Harmonic Oscillator 82 4.3 Coding: The gnuplot Plotting Tool 85 4.4 Application: The Helmholtz Coil 89 4.5 Application: The Maxwell-Boltzmann Distribution 93 4.6 Application: Rainbows 94 4.7 Application: Diffraction Patterns 98 4.8 Application: Collisions 104 4.
9 Application: Quantum Wave Packets 111 4.10 Application: Quantum Scattering 117 4.11 Application: Field Vectors 122 4.12 Application: The Thomson Problem 125 4.13 Coding: Generating Animated Graphics 126 4.14 Exercises 132 5 Roots of Nonlinear Functions 137 5.1 Algorithms: Root Finding 137 5.2 Coding: The Root Solver Tool 143 5.
3 Application: The Catenary 144 5.4 Application: Kirchoff''s Voltage Law 146 5.5 Application: Mechanics Problems 147 5.6 Application: Kepler''s Equation 148 5.7 Application: Gravitational Lagrange Points 153 5.8 Application: Planck''s Radiation Law 156 5.9 Application: Radioactive Decay 157 5.10 Coding: Finding Multiple Roots with Stepping 159 5.
11 Application: Quantum Energy Levels of Bound Particles 161 5.12 Application: Ideal Single-slit Diffraction 166 5.13 Exercises 167 6 Systems of Linear Equations 169 6.1 Algorithms: Gaussian Elimination 170 6.2 Algorithms: Pivoting Strategies 171 6.3 Algorithms: The Jacobi Eigenvalue Method 172 6.4 Coding: The Systems of Linear Equations Tool 173 6.5 Application: Modes of Coupled Oscillators 176 6.
6 Application: The Laplace Equation 185 6.7 Application: Kirchoff''s Current Law 193 6.8 Application: Determinate Structures 195 6.9 Coding: Animated Modes of Coupled Oscillators 199 6.10 Exercises 200 7 Systems of Nonlinear Equations 203 7.1 Algorithms: Multidimensional Newton-Raphson Method 204 7.2 Coding: The Systems of Nonlinear Equations Tool 205 7.3 Application: Statics Problems 206 7.
4 Application: Nonlinear Circuits 208 7.5 Application: Hyperbolic Radio Navigation 210 7.6 Algorithms: Numerical Estimates of the Jacobian Partial Derivatives 212 7.7 Application: The Covalent Bond 213 7.8 Exercises 219 8 Monte Carlo Simulation 221 8.1 Algorithms: Applications of Pseudorandom Numbers 221 8.2 Algorithms: Linear Congruential Method 223 8.3 Coding: The Pseudorandom Number Generator Tool 225 8.
4 Application: Monte Carlo Simulation of Î 226 8.5 Coding: The Linux /dev/random Device 227 8.6 Application: Random Walks 228 8.7 Application: Radioactive Decay Revisited 232 8.8 Application: Classical Scattering 235 8.9 Application: Corner Pocket Shots 237 8.10 Application: Olbers'' Paradox 240 8.11 Application: Ideal Gas Simulation 243 8.
12 Application: Integration of Gauss'' Law 247 8.13 Exercises 249 9 Interpolation of Sparse Data Points 251 9.1 Algorithms: Interpolation Methods 253 9.2 Coding: The Data File Reading Tool 258 9.3 Coding: The Interpolation Tools 260 9.4 Application: Estimating an Orbital Period 262 9.5 Application: Static Electric Potential 264 9.6 Application: The Light Spectrum of a Prism 267 9.
7 Algorithms: Inverse Interpolation 268 9.8 Application: Extraction of Local Gravitational Acceleration 268 9.9 Exercises 270 10 Numerical Integration 273 10.1 Algorithms: Integration Methods 273 10.2 Coding: The Integration Tool 277 10.3 Application: Gaussian Distribution 279 10.4 Application: Orbital Circumference 280 10.5 Application: Rotational Inertia 281 10.
6 Application: The Helmholtz Coil Revisited 282 10.7 Application: Field Vectors Revisited 286 10.8 Exercises 287 11 Function Minimization and Fitting 289 11.1 Algorithms: Single Variable Function Minimization 289 11.2 Algorithms: Multiple Variable Function Minimization 291 11.3 Coding: The Function Minimization Tool 294 11.4 Application: Optimizing the Helmholtz Coil 295 11.5 Application: Closest Approach of an Asteroid 295 11.
6 Coding: Linear Least Squares Fitting 297 11.7 Application: Fitting Radioactive Decay 299 11.8 Coding: Nonlinear Least Squares Fitting 299 11.9 Application: Fitting the Maxwell-Boltzmann Distribution 300 11.10 Application: Fitting Planck''s Radiation Law 303 11.11 Application: Fitting the Damped Harmonic Oscillator 303 11.12 Application: The Cavendish Experiment 306 11.13 Application: Fitting an Asteroid Orbit 306 11.
14 Exercises 307 12 Explicit Methods for Ordinary Differential Equations 311 12.1 Algorithms: Vector Fields 311 12.2 Algorithms: Explicit Methods for Differential Equations 313 12.3 Algorithms: Solving Higher-order Equations and Systems of Differential Equations 318 12.4 Coding: The Differential Equation Solver Tool 320 12.5 Application: The Large-angle Pendulum 321 12.6 Application: Forced Pendulum 328 12.7 Application: Chaotic Dynamics 330 12.
8 Application: Inverted Pendulum 330 12.9 Application: Double Pendulum 331 12.10 Application: The Electronic Oscillator 337 12.11 Application: Synchronized Oscillators 340 12.12 Application: Deflecting Charges in Magnetic Fields 343 12.13 Coding: Generating Audio Simulations 344 12.14 Exercises 345 13 More Extensive Systems with Ordinary Differential Equations 347 13.1 Application: Ballistic Trajectories 347 13.
2 Application: n-body Gravitational Systems 352 13.3 Application: n-body Collisions 355 13.4 Application: Classical Field Lines 360 13.5 Application: Quantum Scattering Revisited 364 13.6 Application: Solid State Physics 375 13.7 Exercises 385 14 Implicit Methods for Ordinary Differential Equations 389 14.1 Algorithms: Explicit Algorithm Instability 389 14.2 Algorithms: Implicit Methods for Differential Equations 398 14.
3 Coding: The Implicit Differential Equation Solver Tool 404 14.4 Application: Coupled Oscillators with the Implicit Solver 405 14.5 Application: Waves 406 14.6 Application: The Large-angle Pendulum with the Implicit Method 413 14.7 Application: n-body Gravitational Systems Revisited 418 14.8 Application: Magnetic Mirrors 421 14.9 Exercises 424 Bibliography 427 Index 429.