/ Aarhus University / Physics / Subatomic Physics / Nuclear Theory >

Numeriske Metoder / Numerical methods. F10

[ FAQ | Homeworks | F09 home-page ]

NB:
  • The project has to include a report in PDF format, together with the source code of your programs, and the makefile. The comments in the code are not obligatory, by they certainly help. An example of a project can be found here.
  • The deadline for the project is midday July 5th, 2010. There should be a "project" subdirectory in your "numeric" directory, where I expect to be able to find your project.
  • Remember 'chmod a+xr your-files-to-show-off'
  • When you are finished with the exercise check that everything builds and remember to actually make all the exercise targets!
  • Schedule:
    Lectures: Monday, 09:15 and Wednesday, 12:15, Fys.Aud.
    Exercises: Thursday, 14:15 11:15 and Friday, 13:15, aud. 1525-319.
    Exercises:
    Hello World, Interpolation, Adaptive integration, Monte Carlo integration, ODEs, QR-decomposition, Least-Squares fit, Eigenvalues, RootFinding and Optimization, FFT,
    Weekly notes:
    1. Introduction: Numerical computations in physics; servers and clusters; POSIX systems; free software; programming languages; programming in POSIX environment; The POSIX make utility;
    2. Interpolation
      [page1.png; page2.png; page3.png; page4.png; pdf; (June 25 2019)]
      Polynomial interpolation; spline interpolation: linear, quadratic, cubic; other forms of interpolation; multivariate interpolation.
    3. Exercises: structure: makefile, main.c, method.c, utils.c → output.txt, illustration.png, ...; Cubic splines.
    4. Numerical integration (quadratures)
      [page1.png; page2.png; page3.png; pdf (June 25 2019) ]
      Quadratures with equally spaced abscissas (Newton-Cotes); quadratures with optimized abscissas (Gauss); adaptive algorithms with equally spaced abscissas; Gauss-Kronrod quadratures.
    5. Monte Carlo integration
      [page1.png; page2.png; page3.png; page4.png; pdf (June 25 2019) ]
      Plain Monte Carlo sampling; importance sampling; stratified sampling; quasi-random sequences.
    6. Ordinary differential equations
      [page1.png; page2.png; page3.png; page4.png; pdf (June 25 2019) ]
      One-step (Runge-Kutta) methods; multi-step and predictor-corrector methods; error estimates; adaptive step-size strategy.
    7. Systems of linear equations
      [page1.png; page2.png; page3.png; pdf (June 25 2019) ]
      Triangular systems and back-substitution; LU-decomposition: Doolittle algorithm; QR-decomposition: modified Gram-Shmidt algorithm; determinant of a matrix; matrix inverse.
    8. Linear least-squares problem
      [page1.png; page2.png; pdf (June 25 2019) ]
      Least-squares solution with QR-method; ordinary least-squares fit; fit errors and covariance matrix.
    9. Eigenvalues and eigenvectors
      [page1.png; page2.png; page3.png; page4.png; pdf (June 25 2019) ]
      Jacobi eigenvalue algorithm; QR/QL algorithm; power method; inverse iteration method.
    10. Nonlinear equations and optimization
      [page1.png; page2.png; page3.png; page4.png; pdf (June 25 2019) ]
      modified Newton's method; Broyden's quasi-Newton's method; downhill simplex method.
    11. Fast Fourier transform and applications: (examples in C and Python (and C#))
      [page1.png; page2.png; pdf (June 25 2019) ]
      Danielson-Lanczos lemma and Cooley-Tukey algorithm.
    12. Krylov subspace methods:
      [page1.png; page2.png; pdf (June 25 2019) ]
      Arnoldi and Lanczos methods for finding few eigenvalues of a matrix; GMRES (Generalized Minimum RESidual) method for solving systems of linear equations.
    13. Ideas for projects:
      • Partial differential equations; finite-difference method; spectral method.
      • Schrodinger equation: eigen-functions: shooting method;
      • Schrodinger equation: eigen-functions: finite-difference method;
    14. Last bits:
      • The art of least-squares fitting: why do I get so big errors?
      • Calculations of the complex valued special functions. [ png, pdf]
    Literature:
    Numerical Recipes in ... , by W.H.Press et.al., available on-line
    D.V.Fedorov, Introduction to Numerical Methods, lecture notes [1M PS file].
    Evaluation:
    Only project, 7-scale grade. The project should be like a short article with the description of the problem, description of the way you solve it, and discussion of the results.
    Useful links:
    [ Linuxbog.dk | GNU scientific library | HTMLhelp | Computer Language Benchmarks ]
    Computers:
    We have a dedicated server, kecdac, which is a four-processor box running Ubuntu Karmic. You can only login into it from inside the local network. That is, from home you have to login first into lifa.phys.au.dk and then to kecdac. You can also use the IFA's servers lifa.phys.au.dk. However, kecdac is a bit more updated and has a lot more software installed.
    Program examples
    can be found here.
    Homeworks:
    array("numeric", "Dmitri Fedorov", "Javascript"), "ajs06" => array("numeric", "Anne Juhl Sørensen", "Python","","ok"), "jonas06" => array("numeric", "Jonas Bjerregaard Nielsen","Python","","ok"), "ng06" => array("numeric", "Natalia Golubeva","Python","","ok"), "nkc07" => array("numeric", "Nikolaj Kruse Christensen","Python","","later"), "jkblock" => array("numeric", "Jens Kusk Block Jacobsen","Python","","ok"), "hha07" => array("numeric", "Hans Harhoff Andersen","Python","","ok"), "rem07" => array("numeric", "Rune Elgaard Mikkelsen", "Python","","ok"), "velghe" => array("numeric", "Bob Velghe","Python","","ok"), "rhe" => array("numeric", "Rochus Herrmann","Python","","later"), "sdh06" => array("numeric", "Sidse Damgaard Hansen","Python","","ok"), "tjb06" => array("numeric", "Tue Boesen","Python","","ok"), "olf06" => array("numeric", "Ole Lund Frederiksen","Python","?","?"), "hjalte" => array("numeric", "Hjalte Kiefer","Python","","ok"), "mdj07" => array("numeric", "Morten Dahl Jeppesen", "C++","output?","ok"), "tuttoweb" => array("", "Mario Valerio Giuffrida","C++","","ok"), "irelj" => array("numeric", "Irene Lozano Jiménez","C++","","ok"), "mvl07" => array("numeric", "Morten Lund", "C++","","ok"), "gunvor" => array("numeric", "Gunvor Koldste Thinggaard","C++","project.pdf ?","ok"), "f031239" => array("numeric", "Martin Carlsen","C++","","ok"), "mln83" => array("numeric", "Michael Lindholm Nielsen","C++","?","?"), "sla06" => array("numeric", "Søren Lindholt Andersen","C++","","later"), "klj06" => array("numeric", "Kasper Lind Jensen","C++","?","?"), "swk07" => array("numeric", "Sarah Krog","C++","","ok"), "lfp06" => array("numeric", "Lars Fogt Paulsen","C++","?","?"), "tao05" => array("NumericalMethods", "Thomas Amby Ottosen","C++","","ok"), "kbm05" => array("numeric", "Kaare Mikkelsen","C++","","ok"), "fdj" => array("numeric", "Filip Drejer Johnsen","C++","","?"), "tb06" => array("numeric", "Tobias Basse","C++","","later"), "svest" => array("numeric", "Steffen Vestergaard","Java","","?"), ); $i=0; echo "
    "; echo ""; echo ""; $np=0; foreach($users as $user => $data){ $date=date("F d Y",filemtime("/usr/users/$user")); echo ""; $dir="$user/$data[0]"; echo ""; echo ""; for($k=2;$k$data[$k]"; if($data[4]=="ok"){echo "";} echo ""; $i++; } echo "
    mtimehelloproject
    $i$data[1]$date";echo ++$np;echo "
    "; ?>

    "Copyleft" © 2004-2009 D.V.Fedorov (fedorov at phys dot au dot dk)