# Modules

Computational physics learning modules as IPython Notebooks.

#### Basic Plotting

Plotting a function in Python.

#### Discrete Fourier Transform

Brief introduction to Discrete Fourier Transform and the Fast Fourier Transform.

#### Introduction to NumPy and and matplotlib

Introduction to vectors in NumPy, ans line plots, scatter plots and figure parameters in matplotlib.

#### Linear Algebra in Python

Basic linear algebra in Python.

#### Numerical Integration

Numerical integration using the trapezoidal and Simpson's rules.

#### Monte Carlo Integration in One Dimension

Numerical integration in one dimension using the Monte Carlo method.

#### Monte Carlo Integration in D Dimensions

Numerical integration in D dimensions using the Monte Carlo method.

#### Bisection Method

Determining a root using the bisection method.

#### Newton-Raphson Method

Determining a root with the Newton-Raphson algorithm.

#### Fixed-Point Iteration

Solving fixed-point problems using the Fix-Point Iteration method.

#### Euler's Method

Solving a first-order ordinary differential equation with Euler's method.

#### Verlet Integration

Solving a second-order ordinary differential equation (Newton's second law) using Verlet integration.

#### Implicit Euler Method

Solving a first-order ordinary differential equation using the implicit Euler method (backward Euler method).

#### Runge-Kutta Methods

Solving a first-order ordinary differential equation using the Runge-Kutta method.

Solving a first-order ordinary differential equation using Runge-Kutta methods with adaptive step sizes.

#### Partial Differential Equations - Two Examples

This module shows two examples of how to discretize partial differential equations: the 2D Laplace equation and 1D heat equation.

#### Relaxation Methods for Solving PDE's

The Jacobi, Gauss-Seidel and Successive overrelaxation (SOR) methods are introduced and discussed with the Poisson equation as an example.

#### Iterative Gauss-Seidel Method

Solves a linear of system of equations using the iterative Gauss-Seidel method.

#### Polynomial Interpolation

Using polynomial interpolation to interpolate a set of points and to approximate a function or a curve.

#### Cubic Splines

Uses cubic splines to interpolate a given set of data points

#### Trigonometric Interpolation

Using trigonometric interpolation and the discrete Fourier transform to fit a curve to equally spaced data points.

#### Calling Fortran(95) Routines from a Python Script

Making use of the Fortran to Python package F2PY which enables creating and compiling a Fortran routine before converting it to a Python Module, which can be imported to any Python script.