This course teaches numerical computational techniques that are used universally throughout all branches of natural sciences and engineering. We teach the fundamental principles and derive central computational methods from scratch. Students will see how such algorithms can be invented using simple principles, and will themselves program them and apply them to problems from biology, physics, nanoscience, and chemistry.
Rather than simply teaching how to use or write down numerical algorithms in a formulaic manner, the course teaches how and why they work from the ground up, and how to understand and bound their errors. The goal is to provide students with the tools they need to understand the modern computational methods they will need for solving problems in their respective scientific fields.
MSc Programme in Climate Change
MSc Programme in Nanoscience
MSc Programme in Physics
MSc Programme in Physics with minor subject
At course completion, the student should be able to:
- Choose an appropriate numerical method for the solution of the problem or sub-problem. The numerical method is selected among the methods presented in the course and it should be chosen with respect to the requirements of the model.
- Evaluate the numerical method with respect to potential accuracy, computational efficiency, robustness and memory requirements.
- Understand and program the numerical method from scratch in Python/Numpy, and solve the problem using their own programs.
- Calculate the quality of the solution with respect to the accuracy obtained and the sensitivity to model parameter variations.
- Estimate whether the quality of the solution is adequate relative to the desired use of the model.
- Analyse the reasons of a possible total failure of a method applied to a concrete problem.
The student will be able to use the methods presented in the course to perform numerical analysis for concrete problems in science, choose and program computational methods to solve them, and quantitatively bound the errors of the results obtained.
The solutions will be programmed in Python/Numpy.
The student will know about
- ideas behind and motivation for fundamental numerical methods for the solution of: linear and nonlinear equations, linear and nonlinear optimization, eigenvalue problems, initial value problems for ordinary differential equations, partial differential equations and the fast Fourier transform.
- simple mathematical models from science and numerical analysis of them.
- methods for expressing mathematical models concisely as efficient, correct program code.
Lectures, exercises and 4 small projects. Duration 9 weeks.
See Absalon for final course material. The following is an example of expected course literature.
Michael T. Heath: Scientific computing. An introductory survey (SIAM Classics in Applied Mathematics), http://heath.cs.illinois.edu/scicomp/
It can be purchased from Academic Books here: https://www.academicbooks.dk/da/content/scientific-computing-12
The course assumes programming experience in a language like
Python/NumPy, Matlab, Julia, or C/C++.
It is recommended that the student has knowledge of mathematics corresponding to the contents of the B.Sc. in physics, chemistry, mathematics, nanoscience, or computer science. In particular, linear algebra and calculus is used extensively in the course.
Academic qualifications equivalent to a BSc degree is recommended.
It is expected that the student brings a laptop with the
appropriate software installed.
Linux is the recommended work environment for code development.
Windows or Mac will work with extra software installed.
See how at http://www.nbi.dk/~avery/teaching/scicomp/how-to-prepare.html
- 7,5 ECTS
- Type of assessment
Continuous assessment, during course
- Type of assessment details
- Independent evaluation of 4 projects. The final grade is the average of the grades of each of the 4 projects.
- All aids allowed
- Marking scale
- 7-point grading scale
- Censorship form
- No external censorship
More internal examiners
Criteria for exam assessment
See learning outcome
Single subject courses (day)
- Practical exercises
- Project work
- Course number
- 7,5 ECTS
- Programme level
- Full Degree Master
- Block 1
- No restriction
The number of seats may be reduced in the late registration period
- Study Board of Physics, Chemistry and Nanoscience
- The Niels Bohr Institute
- Department of Chemistry
- Faculty of Science
- James Emil Avery (7-6d31647968757c4371656c316e7831676e)
Kurt Mikkelsen, e-mail: firstname.lastname@example.org, tlf.nr.: 3532 0251
James Emil Avery, e-mail: email@example.com
Are you BA- or KA-student?
Courseinformation of students