This booklet is not a numerical linear algebra course. It assumes that the basic notions and algorithms are known (Gaussian elimination, LU and QR factorization, least squares solution, generalized inverse, eigenvalues, singular value decomposition (SVD), etc.). It only adds to this the particular aspects of the computations when the algorithms are implemented in finite arithmetic. Obviously, the use of Matlab or the likes is necessary for a proper assimilation of the material, but it does not introduce the code either. What it does contain are the notions and the formulas to write good software, or rather to analyse existing software and understand why it is implemented as it is. The first chapters are devoted to generalities like floating point arithmetic, numerical stability of a method and ill conditioning of a problem, complexity by counting flops, and the importance of row or column oriented processing of a matrix. After that the particularities of the algorithms are analysed. Gaussian elimination and the solution of linear systems, (generalized) linear least squares (QR, Gram-Schmidt, Householder, Givens), eigenvalues (double-shift QR), and the Golub-Kahan-Reinsch SVD algorithm. For the latter more advanced algorithms, the reader is referred to the literature for further details, but the basics are given together with an analysis of the condition (perturbation analysis). Of particular interest is the statistical condition estimation, as opposed to worst case conditioning. The book ends with some applications; computing a matrix function, in particular $e^A$, and the solution of some matrix equations (Lyapunov, Sylvester, Riccati). Because the analysis is never very deep, it should be accessible to many students from mathematics, sciences, and engineering. It stays on a basic level throughout, so there is no discussion of large-scale problems, sparsity, advanced structured matrices, etc. This lines up with the detailed step-by-step treatment of the first chapters illustrating the steps with numerical examples. However, in the more advanced algorithms of the later chapters, many of these details are skipped and the reader should spend some time looking up the literature for further details, which seems to be a bit in disproportion with the start of the booklet. Each chapter has some exercises. The text is not suitable for a stand-alone course. It is best used to interlace with or to accompany some (numerical) linear algebra course (from basic to more advanced), with computer assignments for the students to fully assimilate the yeast of it.

Reviewer:

Adhemar Bultheel (Leuven)