//Aarhus University / Physics / Subatomic / Theory >

Practical Programming and Numerical Methods 2020.
[ book.pdf | Wiki | ./lectures | ./exercises | ./problems | ./matlib | ./solutions | examination projects | old homepage ]
[http://80.251.205.75/~fedorov/prog/repos]
[https://aarhusuniversity.zoom.us/j/4106164110]
NB
Schedule
FOnsdag12 - 15Auditorium D4 (1531-219) uge 5-14, 16-20
FFredag13 - 16Auditorium G1 (1532-116) uge 5-14, 16-20
Plan
  1. [] Introduction: POSIX/UNIX systems; Programming languages; Free/Open software.
  2. [] Compiling, linking, and running programs with C#-mono; POSIX make utility and makefiles;
  3. [] Structure of a C#-program; Main method; Primitive types; Conditionals and loops; Scope of variables; Simple output.
  4. [] Arrays; Classes and structs; Vector class.
  5. [] Input/output: standard streams, redirections, piping; file streams; command-line arguments. Distributed version control systems; git.
  6. [] Scientific plots with gnuplot.
  7. [] Functional programming: passing functions as parameters (delegates, anonymous delegates, generic delegate System.Func, lambda expressions); Closures; Numerical integration routine quad.o8av;
  8. [] Passing functions as parameters part 2: ordinary differential equations (ODE): A Runge-Kutta ODE integration routine ode.rk23;
  9. [] Making scientific reports with LaTeX and Gnuplot: LaTex basics: math, figures; Gnuplot's cairolatex terminal.
  10. Interpolation 1 [chapter.pdf] [problem "interpolation"]
    • Polynomial interpolation;
    • Spline interpolation: linear, quadratic, cubic splines;
    • Object-oriented and functional programming styles.
  11. Interpolation 2
    • Sub-splines: Akima and monotone;
    • Other forms of interpolation;
    • Multivariate interpolation;
  12. Linear equations [chapter.pdf] [problem "linear-equations"]
    • Triangular systems, back-substitution, forward-substitution;
    • QR-decomposition: modified Gram-Schmidt algorithm, Householder reflection algorithm, Givens rotation algorithm;
    • LU-decomposition: Doolittle algorithm;
    • Cholesky decomposition;
    • Determinant of a matrix;
    • Matrix inverse.
  13. Ordinary least-squares problem [chapter.pdf] [problem "least-squares"]
    • Least-squares problem;
    • Least-squares solution with QR-decomposition;
    • Ordinary least-squares fit; fit errors and covariance matrix.
  14. Eigenvalue decomposition [chapter.pdf] [problem "eigenvalues"]
    • Eigenvalues and eigenvectors;
    • Eigenvalue decomposition;
    • QR/QL algoritm;
    • Jacobi eigenvalue algorithm;
    • Rank-1 and Rank-2 updates of symmetric eigenvalue problem;
    • Singular value decomposition;
  15. Ordinary differential equations (ODE) - 1 [chapter.pdf] [problem "ODE"]
    • One-step (Runge-Kutta) methods;
    • Error estimate;
    • Adaptive step-size strategy;
  16. Ordinary differential equations (ODE) - 2
    • Implicit, multi-step, and predictor-corrector methods;
  17. Numerical integration (quadratures) - 1 [chapter.pdf] [problem "numerical integration"]
    • Riemann sums: rectangle and trapezium rules;
    • Quadratures with equally spaced abscissas (Newton-Cotes quadratures);
    • Adaptive algorithms with equally spaced abscissas;
  18. Numerical integration (quadratures) - 2
    • Quadratures with optimized nodes (Gauss quadratures);
    • Variable transformation quadratures;
  19. Nonlinear equations / root-finding [chapter.pdf] [problem "Roots"]
    • Modified Newton's method with backtracking linesearch;
    • Quasi-Newton methods: Broyden update;
  20. Minimization - 1/2 [chapter.pdf] [problem "Minimization"]
    • Modified Newton's method with backtracking linesearch;
    • Quasi-Newton methods: Broyden and SR1 updates;
  21. Minimization - 2/2
    • Dowhill simplex method (Nelder-Mead);
    • Globally convergent methods;
  22. Monte Carlo integration [chapter.pdf] [problem "Monte Carlo"]
    • Plain Monte Carlo sampling;
    • Stratified and Importance sampling;
    • Quasi-random sequences;
  23. Multiprocessing [chapter.pdf] [System.Threading] [dotnet parallel programming]
    • Programs and threads; Multithreading;
    • Symmetric multiprocessing;
    • Parallel computing;
    • Csharp tools for multiprocessing;
  24. Artificial Neural Networks [Wikibook "Artificial Neural Networks"] [problem "Neural Network"]
    • Artificial neurons and neural networks;
    • Three-layer feed-forward neural networks; input, output, and hidden neurons;
    • Network training;
  25. Power methods and Kryslov subspaces (linear algebra) [chapter "Power methods"] [chapter "Eigenvalues"]
    • Power and inverse iteration methods;
    • Arnoldi and Lanczos methods;
    • GMRES (Generalized Minimum RESidual) method for solving systems of linear equations.;
    • Matrix updates;
  26. Fast Fourier transform and applications [chapter "FFT"]
    • Discrete Fourier Transform and applications
    • Fast Fourier Transform: Danielson-Lanczos lemma and Cooley-Tukey algorithm;
References
  1. D.V.Fedorov, Introduction to numerical methods, [1M pdf file].
  2. Howto install mono on macOS [];
  3. Csharp syntax [];
  4. Csharp documentation from Microsoft [];
  5. Gnuplot documentation [];
  6. LATEX wikibook [];