This textbook is written for the first introductory course on scientific computing. It covers elementary numerical methods for linear systems, root finding, interpolation, numerical integration, numerical differentiation, least squares problems, initial value problems and boundary value problems. It includes short Matlab and Python tutorials to quickly get students started on programming. It makes the connection between elementary numerical methods with advanced topics such as machine learning and parallel computing.
This textbook gives a comprehensive and in-depth treatment of elementary numerical methods. It balances the development, implementation, analysis and application of a fundamental numerical method by addressing the following questions.
•Where is the method applied?
•How is the method developed?
•How is the method implemented?
•How well does the method work?
The material in the textbook is made as self-contained and easy-to-follow as possible with reviews and remarks. The writing is kept concise and precise. Examples, figures, paper-and-pen exercises and programming problems are deigned to reinforce understanding of numerical methods and problem-solving skills.
Table of Contents
1. Overview of Scientific Computing
2. Taylor’s Theorem
3. Roundoff Errors and Error Propagation
4. Direct Methods for Linear Systems
5. Root Finding for Nonlinear Equations
7. Numerical Integration
8. Numerical Differentiation
9. Initial Value Problems and Boundary Value Problems
10. Basic Iterative Methods for Linear Systems
11. Discrete Least Squares Problems
12. Monte Carlo Methods and Parallel Computing
Appendix A. An Introduction of Matlab for Scientific Computing
Appendix B. An Introduction of Python for Scientific Computing
Sheng Xu is an Associate Professor of Mathematics at Southern Methodist University in Dallas, TX. His research areas are in the field of fluid mechanics and scientific computing, with specialization in computational fluid dynamics (CFD). He has written a few CFD packages to simulate fluid-solid interactions using the immersed interface method.