Designed for use by first-year graduate students from a variety of engineering and scientific disciplines, this comprehensive textbook covers the solution of linear systems, least squares problems, eigenvalue problems, and the singular value decomposition. The author, who helped design the widely-used LAPACK and ScaLAPACK linear algebra libraries, draws on this experience to present state-of-the-art techniques for these problems, including recommendations of which algorithms to use in a variety of practical situations. Algorithms are derived in a mathematically illuminating way, including condition numbers and error bounds. Direct and iterative algorithms, suitable for dense and sparse matrices, are discussed. Algorithm design for modern computer architectures, where moving data is often more expensive than arithmetic operations, is discussed in detail, using LAPACK as an illustration. There are many numerical examples throughout the text and in the problems at the ends of chapters, most of which are written in Matlab and are freely available on the Web. Demmel discusses several current research topics, making students aware of both the lively research taking place and connections to other parts of numerical analysis, mathematics, and computer science. Some of this material is developed in questions at the end of each chapter, which are marked Easy, Medium, or Hard according to their difficulty. Some questions are straightforward, supplying proofs of lemmas used in the text. Others are more difficult theoretical or computing problems. Questions involving significant amounts of programming are marked Programming. The computing questions mainly involve Matlab programming, and others involve retrieving, using, and perhaps modifying LAPACK code from NETLIB.