Numerical Methods for Hyperbolic Equations