Part V: Numerical Methods in Fortran
"The purpose of computing is insight, not numbers." — Richard Hamming
This is the part Fortran was born for. The language was designed, in 1957, to let scientists express numerical computation naturally, and seventy years of use have made it the default tongue of computational science. In Part V we finally do the thing the whole language points toward: solve real mathematical problems on real data — linear systems, integrals, differential equations — with methods that are used in production and code that is fast enough to matter.
We begin where every serious numerical programmer must, with the uncomfortable truth that computer
arithmetic is not the arithmetic you learned in school: floating-point numbers are finite, 0.1 + 0.2
is not quite 0.3, and understanding why is the difference between a result you can trust and one you
cannot. From there we build up through linear algebra (and the LAPACK libraries that no one should
reimplement), numerical differentiation and integration, ordinary differential equations, and finally
partial differential equations — where the running project's heat solver acquires its real numerical
core. By the end of Part V, the simulation you have been assembling since Chapter 2 actually simulates
something.
What You Will Learn
Chapter 20 — Floating-Point Arithmetic. IEEE 754, precision and kinds, machine epsilon, catastrophic cancellation, and numerical stability — why every scientific result rests on this.
Chapter 21 — Linear Algebra. Matrix operations, solving $A\mathbf{x}=\mathbf{b}$, and using LAPACK and BLAS — the Fortran libraries at the foundation of all numerical computing.
Chapter 22 — Integration and Differentiation. Finite differences, quadrature rules, and how to know your answer is converging.
Chapter 23 — Ordinary Differential Equations. Euler, Runge-Kutta, adaptive stepping, systems, and the method of lines that bridges to PDEs.
Chapter 24 — Partial Differential Equations. Finite-difference discretization, explicit and implicit stepping, the CFL stability condition, and boundary conditions — the heart of the heat solver.
How This Part Fits
Part V leans hardest on arrays (Chapter 5) and procedures (Chapter 6), and it puts to work the LAPACK you met in Chapter 16. Chapter 24 is a milestone: the project becomes a working simulation. The performance (Part VII) and parallel (Part VIII) parts then take that working simulation and make it fast.
Time Investment
| Chapter | Title | Difficulty | Est. hours |
|---|---|---|---|
| 20 | Floating-Point Arithmetic | Intermediate | 5 |
| 21 | Linear Algebra and LAPACK | Advanced | 6 |
| 22 | Integration and Differentiation | Intermediate | 5 |
| 23 | Ordinary Differential Equations | Intermediate | 5 |
| 24 | Partial Differential Equations | Advanced | 6 |
| Part V total | ~27 hours |
Begin with Chapter 20, and the reason 0.1 + 0.2 is not 0.3 — the fact every computational scientist
must make peace with.
Chapters in This Part
- Chapter 20: Floating-Point Arithmetic — Precision, Rounding, and Why 0.1 + 0.2 ≠ 0.3
- Chapter 21: Linear Algebra: Solving Ax=b, Matrix Operations, and Using LAPACK
- Chapter 22: Numerical Integration and Differentiation
- Chapter 23: Ordinary Differential Equations — Euler, Runge-Kutta, and Simulating Change
- Chapter 24: Partial Differential Equations — Finite Differences for Heat, Wave, and Flow