FPF:UFDF005 Programming for Physicists - Course Information
UFDF005 Programming for Physicists
Faculty of Philosophy and Science in OpavaSummer 2021
- Extent and Intensity
- 0/0/0. 0 credit(s). Type of Completion: dzk.
- Guaranteed by
- doc. RNDr. Stanislav Hledík, Ph.D.
Centrum interdisciplinárních studií – Faculty of Philosophy and Science in Opava - Prerequisites
- Skills in the programming language C (in the scope of UF / BL124 "Programming in C language"), particularly in working with fields (both one- and two-dimensional) and pointers. Graduation in UF/W3601 "Programming for Physics" is an advantage. Working with a suitable IDE on which homeworks will be developed may be advantageous.
- Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
- fields of study / plans the course is directly associated with
- Theoretical Physics and Astrophysics (programme FPF, P1703 Fyz4) (2)
- Theoretical Physics and Astrophysics (programme FPF, P1703 Fyz4) (2)
- Course objectives
- One-semester course Programming for Physicists introduces intermediatelly advanced numerical methods used in physics. The programming language C is used.
- Syllabus
- 1. Introduction to the development environment I: Introduction to Unix-like aOS (Linux), shell, working with command line, text editor. IDE under Windows (Code::Blocks, Bloodshed Dev-C + +). Compiler, separated compiling, linking.
2. Recapitulation: Constructs of the C programming language important for numerics. Program organization and program flow structures. Working with the book by Press W. H. et al.
3. Representation of numbers by computers and computer arithmetic: decimal, binary, octal and hexadecimal representations. Integers signed and unsigned. Floating-point numbers. The IEEE standard. Rounding, arithmetic operations, exceptions. Error and accuracy. Stability of computation. Traps and pitfalls.
4. Solution of linear algebraic equations: Gauss-Jordan elimination. Gauss elimination with backsubstitution. LU decomposition.
5. Solution of nonlinear algebraic equations, finding extremes: Bracketing and bisection. Secant method. Newton-Raphson method.
6. Interpolation and extrapolation: polynomial interpolation and extrapolation. Rational interpolation and extrapolation.
7. Random numbers: Generators of uniform distribution, system generators vs. portable random number generators. Transformation and rejection method of generation of other distributions. Exponential and normal distributions.
8. Numerical integration: classical formulas (open, closed, semi-open) and algorithms (trapezoidal, Simpson's rule). Romberg integration. Improper integrals.
9. Ordinary differential equations: initial value problem vs. boundary values problem. Runge-Kutta method, and other methods.
- 1. Introduction to the development environment I: Introduction to Unix-like aOS (Linux), shell, working with command line, text editor. IDE under Windows (Code::Blocks, Bloodshed Dev-C + +). Compiler, separated compiling, linking.
- Literature
- recommended literature
- Press, W. H., Teukolsky, S. A., Vetterling, W. T., Flannery, B. Numerical Recipes in C: The Art of Scientific Computing. Cambridge University Press, Cambridge, 1997. ISBN 0-521-43108-5. URL info
- Vetterling, W. T., Teukolsky, S. A., Press, W. H., Flannery, B. Numerical Recipes Example Book (C). Cambridge University Press, Cambridge, 1993. ISBN 0-521-43720-2. URL info
- Teaching methods
- Lecturing
Lecture with a video analysis - Assessment methods
- Test
The analysis of student 's performance - Language of instruction
- Czech
- Further comments (probably available only in Czech)
- The course can also be completed outside the examination period.
- Teacher's information
- To get the credit the student must successfully defend credit project whose topic will be assigned during the course.
- Enrolment Statistics (Summer 2021, recent)
- Permalink: https://is.slu.cz/course/fpf/summer2021/UFDF005