Chapter 13. Sparse matrices

 

This chapter covers

  • Accessing sparse matrix data from NIST’s Matrix Market files
  • Solving sparse matrix systems with the method of steepest descent
  • Solving sparse matrix systems with the conjugate gradient method

The popular MATLAB toolset contains functions coded specifically to process sparse matrices, but as I used MATLAB during my college years, I never understood why. I knew that most of the elements in a sparse matrix are zero, but I didn’t see why these matrices deserve special treatment. What’s the big deal?

When I entered the ranks of working engineers, however, I came to understand why sparse matrices get so much attention. These matrices arise when scientists and engineers need to solve complex systems modeled using differential equations. These equations play a vital role in analyzing real-world dynamic systems. NASA engineers solve differential equations to put rockets into space, and financial traders solve them to gauge the volatility of stock prices. If a quantity changes over time or space, the odds are that an applied mathematician has derived differential equations to model the change.

Sparse matrices are vital in analyzing complex systems, and this chapter will present a number of methods for solving equations with sparse matrices. But before we get into the heavy math, it’s important to understand the relationship between differential equations and sparse matrices. This is the topic of the first section.

13.1. Differential equations and sparse matrices

13.2. Sparse matrix storage and the Harwell-Boeing collection

13.3. The method of steepest descent

13.4. The conjugate gradient method

13.5. Summary