Numerical Differential Equations: Theory and Technique, ODE Methods, Finite Differences, Finite Elements and Collocation