In scientific computing (also known as computational science), advanced computing capabilities are used to solve complex problems. This self-contained book describes and analyzes reported software failures related to the major topics within scientific computing: mathematical modeling of phenomena; numerical analysis (number representation, rounding, conditioning); mathematical aspects and complexity of algorithms, systems, or software; concurrent computing (parallelization, scheduling, synchronization); and numerical data (such as input of data and design of control logic).
Readers will find lists of related, interesting bugs, MATLAB examples, and “excursions” that provide necessary background, as well as an in-depth analysis of various aspects of the selected bugs. Illustrative examples of numerical principles such as machine numbers, rounding errors, condition numbers, and complexity are also included.
This book is intended for students, teachers, and researchers in scientific computing, computer science, and applied mathematics. It is also an entertaining and motivating introduction for those with a minimum background in mathematics or computer science. Bits and Bugs can be used for courses in numerical analysis, numerical methods in linear algebra/ODEs/PDEs, introductory software engineering, introductory scientific computing, and parallel programming.