|
|
1 | (14) |
|
1.1 Getting Started with Coding |
|
|
1 | (2) |
|
1.2 Getting To Know The Linux Command Line |
|
|
3 | (3) |
|
1.3 Bonjour Tout Le Monde |
|
|
6 | (6) |
|
|
12 | (3) |
|
Chapter 2 Getting Comfortable |
|
|
15 | (20) |
|
2.1 Computers: What You Should Know |
|
|
15 | (9) |
|
|
15 | (2) |
|
|
17 | (2) |
|
2.1.3 Number Representation and Precision |
|
|
19 | (5) |
|
2.2 Some Important Mathematics |
|
|
24 | (8) |
|
|
25 | (2) |
|
2.2.2 Matrices: A Brief Overview |
|
|
27 | (5) |
|
|
32 | (3) |
|
Chapter 3 Interpolation and Data Fitting |
|
|
35 | (20) |
|
|
35 | (10) |
|
3.1.1 Linear Interpolation |
|
|
35 | (3) |
|
3.1.2 Polynomial Interpolation |
|
|
38 | (5) |
|
|
43 | (2) |
|
|
45 | (8) |
|
3.2.1 Regression: Illustrative Example |
|
|
45 | (3) |
|
3.2.2 Linear Least Squares: Matrix Form |
|
|
48 | (2) |
|
3.2.3 Realistic Example: Millikan's Experiment |
|
|
50 | (3) |
|
|
53 | (2) |
|
Chapter 4 Searching for Roots |
|
|
55 | (26) |
|
|
55 | (7) |
|
|
56 | (2) |
|
|
58 | (2) |
|
|
60 | (2) |
|
|
62 | (3) |
|
4.2.1 Bisection--Newton--Raphson |
|
|
62 | (2) |
|
|
64 | (1) |
|
4.3 What's The Point of Root Searching? |
|
|
65 | (12) |
|
4.3.1 The Infinite Square Well |
|
|
65 | (4) |
|
4.3.2 The Finite Square Well |
|
|
69 | (3) |
|
4.3.3 Programming the Root Finder |
|
|
72 | (5) |
|
|
77 | (4) |
|
Chapter 5 Numerical Quadrature |
|
|
81 | (14) |
|
|
82 | (3) |
|
5.1.1 The Mid-Ordinate Rule |
|
|
82 | (1) |
|
5.1.2 The Trapezoidal Rule |
|
|
83 | (1) |
|
|
84 | (1) |
|
|
85 | (8) |
|
5.2.1 Euler--Maclaurin Integration |
|
|
85 | (1) |
|
5.2.2 Adaptive Quadrature |
|
|
86 | (4) |
|
5.2.3 Multidimensional Integration |
|
|
90 | (3) |
|
|
93 | (2) |
|
Chapter 6 Ordinary Differential Equations |
|
|
95 | (24) |
|
6.1 Classification of Differential Equations |
|
|
96 | (3) |
|
6.1.1 Types of Differential Equations |
|
|
96 | (2) |
|
6.1.2 Types of Solution and Initial Conditions |
|
|
98 | (1) |
|
6.2 Solving First-Order ODEs |
|
|
99 | (9) |
|
6.2.1 Simple Euler Method |
|
|
99 | (3) |
|
6.2.2 Modified and Improved Euler Methods |
|
|
102 | (2) |
|
6.2.3 The Runge--Kutta Method |
|
|
104 | (3) |
|
6.2.4 Adaptive Runge--Kutta |
|
|
107 | (1) |
|
6.3 Solving Second-Ordered ODEs |
|
|
108 | (9) |
|
6.3.1 Coupled 1st Order ODEs |
|
|
108 | (2) |
|
|
110 | (6) |
|
6.3.3 More Than One Dimension |
|
|
116 | (1) |
|
|
117 | (2) |
|
Chapter 7 Fourier Analysis |
|
|
119 | (18) |
|
|
120 | (4) |
|
|
124 | (3) |
|
7.3 The Discrete Fourier Transform |
|
|
127 | (2) |
|
7.4 The Fast Fourier Transform |
|
|
129 | (6) |
|
7.4.1 Brief History and Development |
|
|
129 | (1) |
|
7.4.2 Implementation and Sampling |
|
|
130 | (5) |
|
|
135 | (2) |
|
Chapter 8 Monte Carlo Methods |
|
|
137 | (22) |
|
8.1 Monte Carlo Integration |
|
|
137 | (11) |
|
|
137 | (6) |
|
8.1.2 General Integration Using Monte Carlo |
|
|
143 | (3) |
|
8.1.3 Importance Sampling |
|
|
146 | (2) |
|
8.2 Monte Carlo Simulations |
|
|
148 | (8) |
|
|
148 | (6) |
|
|
154 | (2) |
|
|
156 | (3) |
|
Chapter 9 Partial Differential Equations |
|
|
159 | (44) |
|
9.1 Classes, Boundary Values, and Initial Conditions |
|
|
160 | (4) |
|
9.2 Finite Difference Methods |
|
|
164 | (10) |
|
9.2.1 Difference Formulas |
|
|
165 | (3) |
|
9.2.2 Application of Difference Formulas |
|
|
168 | (6) |
|
9.3 Richardson Extrapolation |
|
|
174 | (4) |
|
9.4 Numerical Methods to Solve PDEs |
|
|
178 | (21) |
|
9.4.1 The Heat Equation with Dirichlet Boundaries |
|
|
178 | (12) |
|
9.4.2 The Heat Equation with Neumann Boundaries |
|
|
190 | (3) |
|
9.4.3 The Steady-State Heat Equation |
|
|
193 | (3) |
|
|
196 | (3) |
|
9.5 Pointers To The Finite Element Method |
|
|
199 | (1) |
|
|
200 | (3) |
|
Chapter 10 Advanced Numerical Quadrature |
|
|
203 | (18) |
|
|
203 | (4) |
|
10.2 Orthogonal Polynomials |
|
|
207 | (3) |
|
10.3 Gauss--Legendre Quadrature |
|
|
210 | (4) |
|
10.4 Programming Gauss--Legendre |
|
|
214 | (3) |
|
10.5 Gauss---Laguerre Quadrature |
|
|
217 | (2) |
|
|
219 | (2) |
|
Chapter 11 Advanced ODE Solver and Applications |
|
|
221 | (30) |
|
11.1 Runge--Kutta--Fehlberg |
|
|
221 | (4) |
|
|
225 | (2) |
|
11.3 Van Der Pol Oscillator |
|
|
227 | (3) |
|
11.3.1 Van der Pol in Phase Space |
|
|
227 | (1) |
|
|
228 | (2) |
|
11.4 The "Simple" Pendulum |
|
|
230 | (5) |
|
|
231 | (2) |
|
|
233 | (2) |
|
|
235 | (2) |
|
11.6 To Infinity and Beyond |
|
|
237 | (5) |
|
11.7 To The Infinitesimal and Below |
|
|
242 | (5) |
|
|
247 | (4) |
|
Chapter 12 High-Performance Computing |
|
|
251 | (24) |
|
12.1 Indexing and Blocking |
|
|
252 | (11) |
|
|
252 | (3) |
|
|
255 | (2) |
|
|
257 | (2) |
|
|
259 | (3) |
|
|
262 | (1) |
|
12.2 Parallel Programming |
|
|
263 | (9) |
|
12.2.1 Many (Hello) Worlds |
|
|
264 | (2) |
|
|
266 | (2) |
|
12.2.3 Overheads: Amdahl versus Gustafson |
|
|
268 | (4) |
|
|
272 | (3) |
Bibliography |
|
275 | (4) |
Appendix: A Crash Course in C++ Programming |
|
279 | (54) |
Index |
|
333 | |