Programs (Fortran)

Simple programs
# Quadratic equation ax^2 + bx + c = 0
# Fibonacci numbers
# Legendre polynomials Pn(x)

Real roots of non-linear equations
# Bisectional method Bisection.f90
# Closed Domain (Bisectional or False position selected by a key) CDomain.f90
# Open Domain: Newton's method Newton1.f90
# Open Domain: The method of secants Secant.f90
# Brute force method for multiple roots BForce.f90
# Solutions of a system of two nonlinear equations f(x,y) = 0, g(x,y) = 0 Newton2.f90

Integration of a single variable function f(x)
# Simpson rule on n intervals (simpson.f90)
# Integration based based on Gauss 8 points or 16 points (gauss.f90)
# Automatic adaptive integration based on Simpson rule (simpson2.f90)
# Automatic adaptive integration based on Gauss quaratures (gauss2.f90)
# Automatic adaptive integration - Gauss quaratures + recursive calls (gaussA.f90)
# Trapezoid approximation for n intervals (int_trap.f)
# Automatic adaprive integration - Newton-Cotes quadrature (program quanc8.f)
# Driver program for int_trap.f, quanc8.f

Integration of a function of two variables f(x,y)
# Integration of a function f(x,y) using cubature trapezoid rule (trap_2Dc.f90)
# Automatic adaptive Integration of a function f(x,y) using Simpson rule (simpson2D.f90)

Interpolation (single variable)
# Polinomial (Lagrange) interpolation Lagint.f90
# Polinomial (Divided differences) interpolation DDint.f90
# Spline interpolation Spline.f90

Differentiation (single variable)
# Divided differences for equally spaced points (deriv_dd.f90)
# Derivative calculated on three-point Lagrange interpolation (deriv_Lg.f90)

Ordinary differential equations (initial value problem)
# First-oder single ODE: Euler, Predictor-Corrector, Runge-Kutta 4th order (Ode11.f90)
# Second-order singel ODE: Predictor-Corrector, Runge-Kutta 4th order (Ode12.f90)
# System of N first-oder or N/2 second-order ODEs: Runge-Kutta 4th order (Rk4n.f90) with examples for a projectile motion in the (x,y) plane and the predator-prey model with rabbits and foxes (Lotka-Volterra model)

Ordinary differential equations (boundary value problem)
# Second-order singel ODE: The shooting method (shoot2.f90)

Random numbers
# Random number generator based on Linear Congruent Method (random1.f)
# Driver program (random2.f) for two random number generator, i.e. rand and urand.f
# Integration using Monte-Carlo method (int_rand.f) (should be compiled with urand.f)
# N-dimension integration: example of 5-dimension integration (int_rand2.f)

Minimum of a single variable function f(x)
# Golden section search with parabolic interpolation (fmin.f)
# Driver program for fmin.f

Systems of linear equations
# Simple Gaussian elimination Gauss_1.f90
# Gaussian elimination with scaling and pivoting Gauss_2.f90
# Evaluate the condition number of matrix: C(A) = norm(A*A^{-1}) C_number.f90
# The successive-over-relaxation (SOR) GS_sor.f90
# Inverse matrix: Method - Doolittle LU factorization for Ax=b Inverse.f90
# A system of tridiagonal linear equations C*x=b (the Thomas method) Thomas.f90
# Gaussian elimination with pivoting and a condition number (decom.f)

Eigenvalue problem
# Eigenvalues and eigenvectors of a real symmetric matrix Jacobi.f90
# Evaluate the largest eigenvalue by the power method Power.f90
# Eigenvalues of real symmetric matrix by the basic QR method QRbasic.f90
# Eigenvalues and eigenvectors of a general matrix Geigen.f


Physics programs:

Projectile motion with air resustance (proj02a.f). The program can run calculations in one of the following methods: modified Euler, Runge-Kutta 4th order, and Fehlberg fourth-fifth order Runge-Kutta method. To run the code following programs should be included: euler22m.f, rk4_d22.f, rkf45.f. All initial data are in the file cannon.ini.

Random walk in 2D: The program rwalk01.f90 computes three cases 1) Simple random walk 2) Random walk in 2D city (n*n blocks) 3) Random walk in 2D city with a trap

Synchronized random walks: (see the description of the problem in project 3, problem 3)
The program rwalk5.f calculates the mean time when both walkers are at the same site)

2D Polymer simulation: random walk models that corresponds to the self-avoiding walk (SAW). This model consists of the set of all N-step walks starting from the origin subject to the global constrain that no lattice site can be visited more than once in each walk: rwalk4.f

The gambler's ruin problem: gamble.f

Motion of a planet around a star: planet1.for with initial data planet1.ini

1D Schrodinger ODE y"(x)+2[E-V(x)]y(x)=0 (energies and wavefunctions) numerov.f90