This repository contains all material pertinent to FYS3150/4150 at the University of Oslo, Norway and PHY480/905 at Michigan State University.
This material gives an introduction to several of the most used algorithms from numerical analysis to solve problems in the Sciences. These algorithms cover topics such as advanced numerical integration using Gaussian quadrature, Monte Carlo methods with applications to random processes, Markov chains, integration of multidimensional integrals and applications to problems in statistical physics and quantum mechanics. Other methods which are presented are eigenvalue problems, from the simple Jacobi method to iterative Krylov methods. Popular methods from linear algebra such as the LU-decomposition method and spline interpolation are also discussed as well as regression methods and simple neural networks. A large fraction of the course is also devoted to solving ordinary differential equations with or without boundary conditions and finally methods for solving partial differential equations. The student will thus develop a familiarity with some of the most used algorithms in Science.
The course is project based and through the various projects, normally four to five, the participants will be exposed to fundamental research problems in these fields, where, if possible, we aim at reproducing state of the art scientific results. The students will learn to develop and structure codes for studying these systems, develop a critical understanding of the capabilities and limits of the various numerical methods, get acquainted with supercomputing facilities and parallel computing and learn to handle scientific projects. The students will have to choose between C++, Python or Fortran as programming languages. In the lectures we show mainly codes written in C++, although codes in Python and Fortran (2008 Ansi standard) are also provided.