New Linear Algebra Textbook (downloadable) Has JULIA Companion

If this hasn’t already been posted, a new Linear Algebra textbook has a great JULIA companion, lecture slides, and additional exercises from Stephen Boyd out of Stanford and Lieven Vandenberghe, is available for download. I highly recommend this book as it includes real problems as exercises instead of the “toy” problems a lot of books contain. Also the focus on Least Squares is directly usable.

The JULIA companion is over a 170+ pages and a 1/3 of the way through has you working with the JULIA package DSP to find the coefficients of a polynomial using its Convolution function conv. And later, exercises such as writing “a function that solves the multi-objective least squares problem, with given positive weights.”

Downloads at http://vmls-book.stanford.edu/

Introduction to Applied Linear Algebra – Vectors, Matrices, and Least Squares
Stephen Boyd and Lieven Vandenberghe
Cambridge University Press

32 Likes

Boyd’s book is a great resource!

It only covers the QR factorization (not LU or eigenvalues or SVD), so I can’t use it exclusively for my linear-algebra course at MIT, but @alanedelman and I have been putting together a series of Julia notebooks that go along with Strang’s Introduction to Linear Algebra: https://github.com/stevengj/1806/blob/master/summaries.md

12 Likes

Are there any details about what was used to compile the book, was any kind of Jupyter notebook or other feature used to automatically generate the PDF, or was it manually typeset?

I’m asking because I am developing my own package, VerTeX.jl which is intended to be used to generate LaTeX documents using Julia, specifically mathematical papers, notes, documentation, etc.

7 Likes

@chakravala What’s explained in the Julia companion is:

“In these notes we write mathematical notation (as in VMLS) in
standard mathematics font, e.g., y = Ax. Julia code, expressions, and snippets
are written in a fixed-width typewriter font, e.g., y = A*x. We encourage you to
cut and paste our Julia code snippets into a Julia interactive session or notebook,
to test them out, and maybe modify them and run them again. You can also use
our snippets as templates for your own Julia code. At some point we will collect
the Julia snippets in this companion document into Julia notebooks that you can
easily run.”

“The code snippets in this compaion document are compatible with Julia 1.0,
which is not quite the same as earlier versions, like Julia 0.6. Some of the functions
we use are in the standard packages LinearAlgebra, SparseArrays, and Plots,
and a few others.”

1 Like

@stevengj What a fantastic resource you and @alanedelman have put together and made publicly available. I look forward to going through and referencing the comprehensive material in really well done notebooks that seem to perform more like workbooks to actually interact with and build upon the textbook/lecture concepts and equations.

The organizational format where resources are grouped by lecture then exams (with past exams and additional practice problems that include solutions), seems like the way all course corresponding git repositories should be created.

Again, thanks for the pointer and all the work you’ve done.

1 Like

There is a nice presentation by Randall J. LeVeque at PyData, Seattle 2017 on how to produce a LaTeX book from Jupyter (numerics of hyperbolic PDE solvers, using the Finite Volume Method, I think). If this process could be automated, that would be super. See Randall J. LeVeque - Writing a Book in Jupyter Notebooks - YouTube .

3 Likes

Thanks for sharing, my VerTeX document system will not be based on Jupyter notebooks, but it will instead be based on a new acyclic graph data format which I call VerTeX, which parses and generates LaTeX documents. I haven’t decided on a specification yet for how Julia computations will be included in the text of it. My current specifications are more concerned with how to construct new documents from theorems and definitions. It is not ready yet for consumption, but I intend to publicize a paper with it soon, to demonstrate it.

Theoretically, it should be possible to hook-in Jupyter notebooks also, but that is going to be much later.

1 Like