Numerical Methods for Engineers: With Software and Programming Applications