Book Description
This book is assembled from lectures given by the author over a period of 10 years at the School of Computing of DePaul University. The lectures cover multiple classes, including Analysis and Design of Algorithms, Scientific Computing, Monte Carlo Simulations, and Parallel Algorithms. These lectures teach the core knowledge required by any scientist interested in numerical algorithms and by students interested in computational finance.
The algorithms you will learn can be applied to different disciplines. Throughout history, it is not uncommon that an algorithm invented by a physicist would find application in, for example, biology or finance.
This open book is licensed under a Creative Commons License (CC BY-NC-ND). You can download Annotated Algorithms in Python ebook for free in PDF format (4.6 MB).
Table of Contents
Chapter 1
Introduction
Main Ideas
About Python
Book Structure
Book Software
Chapter 2
Overview of the Python Language
About Python
Types of variables
Python control flow statements
Classes
File input/output
How to import modules
Chapter 3
Theory of Algorithms
Order of growth of algorithms
Recurrence relations
Types of algorithms
Timing algorithms
Data structures
Tree algorithms
Graph algorithms
Greedy algorithms
Artificial intelligence and machine learning
Long and infinite loops
Chapter 4
Numerical Algorithms
Well-posed and stable problems
Approximations and error analysis
Standard strategies
Linear algebra
Sparse matrix inversion
Solvers for nonlinear equations
Optimization in one dimension
Functions of many variables
Nonlinear fitting
Integration
Fourier transforms
Differential equations
Chapter 5
Probability and Statistics
Probability
Combinatorics and discrete random variables
Chapter 6
Random Numbers and Distributions
Randomness, determinism, chaos and order
Real randomness
Entropy generators
Pseudo-randomness
Parallel generators and independent sequences
Generating random numbers from a given distribution
Probability distributions for continuous random variables
Resampling
Binning
Chapter 7
Monte Carlo Simulations
Introduction
Error analysis and the bootstrap method
A general purpose Monte Carlo engine
Monte Carlo integration
Stochastic, Markov, Wiener, and processes
Option pricing
Markov chain Monte Carlo (MCMC) and Metropolis
Simulated annealing
Chapter 8
Parallel Algorithms
Parallel architectures
Parallel metrics
Message passing
mpi4py
Master-Worker and Map-Reduce
pyOpenCL
Appendix A
Math Review and Notation