This book provides an elegant mathematical introduction to numerical analysis summarizing some of the required knowledge from linear algebra, Fourier analysis, functional analysis and partial differential equations. It covers many basic ideas of modern numerical computing, with an emphasis on methods and algorithms. The book is divided into four parts. Part I starts with a guided tour on floating number systems and machine arithmetic. The exponential and logarithms are constructed from scratch to present a new point of view on well-known questions. Part II consists of 5 chapters. It starts with polynomial approximation (polynomial interpolation, mean-square approximation, splines). It deals moreover with Fourier series, providing the trigonometric version of least-square approximations, and with one of the most important numerical algorithms, the fast Fourier transform. Part III (Chapters 9-12) relates to numerical linear algebra. This part is important because operation counts are the limiting factor for any serious computation. Chapters 9-11 deal with direct and iterative methods for the solution of linear systems of equations, with an emphasis on operation counts. Chapter 12 presents orthogonality methods for the solution of linear systems and introduces the QR decomposition. Part IV (Chapters 13-18) treats a selection of non-linear complex problems: the numerical computation of eigenvalues and eigenvectors of a square matrix (the power method, the QR method), solution of nonlinear equations and systems, ordinary differential equations (single-step and linear multistep schemes), and the numerical analysis of some partial differential equations. Each chapter contains several exercises. The examples are carefully selected and illustrate many important ideas in the field. The book does not assume any previous knowledge of numerical methods and is written for advanced undergraduate students in mathematics. It will also be useful for scientists and engineers wishing to learn whether mathematics can explain why their numerical methods work - or fail.