In Chapter 3 we developed the theory of linear systems of hyperbolic equations, in which case the general Riemann problem can be solved by decomposing the jump in states into eigenvectors of the coefficient matrix. Each eigenvector corresponds to a wave traveling at one of the characteristic speeds of the system, which are given by the corresponding eigenvalues of the coefficient matrix.
In Chapter 11 we explored nonlinear scalar problems, and saw that when the wave speed depends on the solution, then waves do not propagate unchanged, but in general will deform as compression waves or expansion waves, and that shock waves can form from smooth initial data. The solution to the Riemann problem (in the simplest case where the flux function is convex) then consists of a single shock wave or centered rarefaction wave.
In this chapter we will see that these two theories can be melded together into an elegant general theory for nonlinear systems of equations. As in the linear case, solving the Riemann problem for a system of m equations will typically require splitting the jump in states into m separate waves. Each of these waves, however, can now be a shock wave or a centered rarefaction wave.
We will develop this general theory using the one-dimensional shallow water equations as a concrete example. The same theory will later be illustrated for several other systems of equations, including the Euler equations of gas dynamics in Chapter 14. The shallow water equations are a nice example to consider first, for several reasons. It is a system of only two equations, and hence the simplest step up from the scalar case.