This textbook is a comprehensive introduction to computational mathematics and scientific computing suitable for undergraduate and postgraduate courses. It presents both practical and theoretical aspects of the subject, as well as advantages and pitfalls of classical numerical methods alongside with computer code and experiments in Python. Each chapter closes with modern applications in physics, engineering, and Computer Science.
The choice of programming language for scientific computations is a rather difficult task. One may choose among classical programming languages such as C/C++ and Fortran, or languages such as Python, Julia and MATLAB. In this book, we present all the material in Python. Python is a free programming language with a wide variety of extensions. These include extensions to Data Science and Machine Learning, as well as more traditional areas, such as the numerical solution of differential equations. Python comes with functions for almost every method we present in this book, which makes Python a great pedagogical tool. The computer code you will find in this book is written in such a simple way that experts in Python will find my coding style very naive. However, I believe that this style helps students to learn programming. Each programmer can follow their own programming style or standards, like those suggested by the official “style guide for Python code” PEP. To ensure the validity of our code, we produced the output presented in this book with PythonTex. In the text, we also test the majority of methods and codes using the so-called method of manufactured solutions. Specifically, we present experiments using simple problems with known solutions, and we verify experimentally the properties and accuracy of the numerical solutions. This is a common practice for experimental justification of numerical methods.
The book is organized into three parts. The first part contains a presentation of tools that we use to develop and study numerical methods. Chapters 1 and 2 briefly introduce Python, NumPy and SciPy and are dedicated to readers without previous experience in Python or those who want to refresh basic knowledge. Chapter 2 serves as a revision of linear algebra matters. It also introduces advanced methods, such as methods for special matrices. Chapter 3 is recommended to readers who are not familiar with floating point arithmetic and its consequences.
In the second part, we present the theory and implementation details of important and commonly used numerical methods in science. More precisely, Chapter 5 presents methods for the approximation of roots of nonlinear equations such as the bisection and Newton’s method.
The third part contains more advanced numerical methods. Some of them can be characterized as the pillars of scientific Machine Learning and neural networks.
Features:
- No previous experience in Python is required.
- Includes simplified computer code for fast-paced learning and transferable skills development.
- Includes practical problems ideal for project assignments and distance learning.
- Presents both intuitive and rigorous faces of modern scientific computing.
- Provides an introduction to neural networks and Machine Learning.
About the Author
Dimitrios Mitsotakis received a PhD in Mathematics in 2007 from the University of Athens. His experience with high-performance computing started while at the Edinburgh Parallel Computing Center at the University of Edinburgh. Dimitrios worked at the University Paris-Sud as a Marie Curie fellow, at the University of Minnesota as an associate postdoc and at the University of California, Merced as a Visiting Assistant Professor. Dimitrios is currently an associate professor/reader at the School of Mathematics and Statistics of Victoria University of Wellington. He has published his work in journals of numerical analysis and in more general audience journals in physics, coastal engineering, waves sciences, and in scientific computing. He develops numerical methods for the solution of equations for water waves, and he studies real-world applications such as the generation of tsunamis. Some of his main contributions are in the theory and numerical analysis of Boussinesq systems for nonlinear and dispersive water waves.
Відгуки про Computational Mathematics: An introduction to Numerical Analysis and Scientific Computing with Python