Numerical Methods for Solving Partial Differential Equations: A Comprehensive Introduction for Scientists and Engineers