The book mixes together algebra, analysis, complexity theory and numerical analysis. As such, this book will provide many scientists, not just mathematicians, with a useful and reliable reference. It is intended for advanced undergraduate and graduate students with either applied or theoretical goals. This book is based on a course given by the author at the Ecole Normale Supérieure de Lyon.