Jeffrey Humpherys and Tyler J. Jarvis
SIAM 2020, 788 PAGES
PRICE (HARDBACK) £86.50 ISBN 978-1-61197-605-2
As technology and science have become an influential part of modern life, the necessity to approximately represent many complex real-life problems in an ‘exact’ way is essential. The right choice of an optimisation algorithm can be crucially important in finding the prime solution to such complex problems. Powerful mathematical tools are necessary to overcome this hurdle. This book, the second of four volumes, gives the fundamental computational tools used in applied and computational mathematics and provides the foundations of algorithms, approximation, and optimisation. As the authors state, the book’s content is intended for an upper-division undergraduate or first-year graduate level in mathematics.
The book covers a wide range of topics that are vital for the intended audience to be able to understand the foundations of algorithms, approximation, and optimisation. The topics included in this almost 800-page book are split into four distinct parts. The longest first part (Algorithms), which consists of seven chapters, initially starts with some gentle introduction to algorithms that covers fundamental concepts of algorithms including tools for managing complicated sums, key tools for counting, divisibility properties of integers and modular arithmetic. It then moves to data structures, combinatorial optimisation including dynamical programming and Huffman encoding, and finishes with central limit theorem and hashing, which is the fundamental tool for producing efficient data structures.
The first chapter in the second part (Approximation) tackles the field of harmonic analysis that concerns the representation and approximation of functions as linear combinations of basic waves. In particular, Fourier analysis and wavelet analysis are covered extensively. The second chapter of this part is about approximating continuous functions on bounded intervals with polynomials. The third part (Interlude) briefly reviews derivatives in multiple dimensions and covers fundamental concepts of numerical computation. The last part (Optimization) constitutes, in my opinion, the most interesting part of the book. This part focuses on optimisation problems and provides algorithms that are derived from principals of differential calculus for solving these problems. It covers unconstrained optimisation, linear optimisation, dynamic programming and stochastic dynamic optimisation.
To make best use of the text, the authors provide supplementary labs that the reader must use in conjunction with theory, thus imparting useful technical skills to the student.
Although in some cases the text may seem a little bit dense, it is engaging and captured my attention from the beginning. Throughout the book there is evidence that the authors’ intention is to cover all aspects of algorithms, approximation, and optimisation and they have reflected on the material deeply. Overall, it is an enjoyable, approachable and very well written book. The material is thoughtfully presented in a meaningful sequence, the chapters are self-contained, full of extensive explanation and complemented with an extensive number of exercises. The exercises at the end of each chapter are well-chosen to appeal to the intended audience and material. I would recommend some more examples in each chapter and I would urge the authors to provide some fully-worked solutions to some of the more advanced exercises. Some treatment of numerical solutions of differential equations would probably be helpful in this volume.
That said, all in all I like this book for its clear writing and it will be of great interest to the intended reader. This is overall an extensive and advanced book, the material of which is, in my opinion, not suitable for most undergraduate students. The reader will need a good background in various mathematical concepts for the theoretical part of the text and some computational skills to be able to cover the applications and computations in the provided labs. I would recommend it mostly for new graduate students in pure and applied mathematics, software engineering and data science. I think the book is worth consideration and will doubtlessly prove an invaluable resource for optimisation and numerical mathematics courses.
Stephanos Panayides AMIMA
Book review first published in Mathematics Today December 2021



