This book provides a fundamental introduction to numerical analysis suitable for undergraduate students in mathematics, computer science, physical sciences, and engineering. It is assumed that the reader is familiar with calculus and has taken a structured programming course. Emphasis is placed on understanding why numerical methods work and their limitations. An error analysis for each method is presented and a mathematical derivation for each method is given. Examples are provided throughout the text with MATLAB, and complete MATLAB programs are given in each section. In addition, an introduction to MATLAB is included in an appendix.