The purpose of this book is to provide the mathematical foundations of numerical methods, to analyze their basic theoretical properties and to demonstrate their performances on examples and counterexamples. Within any specific class of problems, the most appropriate scientific computing algorithms are reviewed, their theoretical analyses are carried out and the expected results are verified using the MATLAB software environment. Each chapter contains examples, exercises and applications of the theory discussed to the solution of real-life problems. While addressed to senior undergraduates and graduates in engineering, mathematics, physics and computer sciences, this text is also valuable for researchers and users of scientific computing in a large variety of professional fields.