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