You are here

Numerical Linear Algebra with Julia

Eric Darve and Mary Woolters
Publication Date: 
Number of Pages: 
[Reviewed by
Brian Borchers
, on
This is a textbook for an introductory course in numerical linear algebra at the advanced undergraduate or early graduate level.  textbooks in this area often include implementations of the methods in some programming language, which might have been Fortran in the distant past.  More recent textbooks in this area have mostly used MATLAB and Python.
In this book, the algorithms are implemented in the Julia programming language.  Julia was first introduced in 2012, so it is a relatively new programming language, but it has steadily been growing in popularity as a language for scientific computing.  Julia is well known for its high performance, parallel programming features, and numerous libraries for scientific computing.
The coverage of topics in numerical linear algebra is fairly standard for an introductory course.  The book discusses the LU and Cholesky factorizations for solving linear systems of equations.  Least squares problems are solved using the QR factorization.  The QR method is used to obtain eigenvalues.  There is a brief discussion of the Golub-Kahan algorithm for the SVD.  Classical and Krylov space iterative methods for the solution of linear systems of equations each get a chapter.  There is also a chapter on factorizations of sparse matrices.  The last chapter of the book is effectively an appendix introducing Julia. 
The Jupyter notebooks and Julia code that accompany the book include implementations of all of these methods.  Many of the exercises ask the reader to perform computational experiments or to implement extensions to the examples.
The focus of the book is on algorithms for numerical linear algebra rather than Julia programming.  It would be relatively straightforward to translate the code into MATLAB or Python.  I was disappointed that the book did not make a stronger case for the advantages of Julia over other scripting languages and that the book didn't explore the ecosystem of libraries in the Julia environment.
Instructors looking for a textbook for an introductory course in numerical linear algebra that uses Julia for its examples should definitely give consideration to this book.  However, it might be nearly as easy to prepare one's own Julia examples for use with other textbooks such as David S. Watkins' Fundamentals of Matrix Computations


Brian Borchers is a professor of mathematics at New Mexico Tech and the editor of MAA Reviews.