Scientific computations 1000-712ONA
1. Representation of numbers, computer arithmetic, numerical stability of algorithms.
2. Vectors and matrices – simple operations (transposition, multiplication, inversion).
3. Vector functions, element-by-element operations, logical operations.
4. Graphs of one- and multidimensional functions.
5. Systems of linear equations, LU decomposition, condition number.
6. Nonlinear scalar equations.
7. Linear least squares problem. QR decomposition.
8. Eigenvalue problem.
9. Lagrange interpolation.
10. Spline functions.
11. Numerical differentiation (polynomials, arbitrary functions).
12. Numerical integration (quadratures).
Type of course
Prerequisites (description)
Course coordinators
Learning outcomes
Knowedge and abilities. The student:
- Knows the basic properties and limitations of floating-point arithmetic in a computer and possible calculation errors.
- Knows the methods of operating on matrices and vectors using Python libraries.
- Knows the method of directly solving systems of linear equations via the LU decomposition, understands the importance of matrix condition number in context of solving such systems and knows the appropriate practices.
- Knows the definition of the linear least squares problem and its solution via the QR decomposition, as well as applications in curve fitting.
- Knows the methods of approximate solution of nonlinear scalar equations and their limitations.
- Knows the power and inverse power methods for finding eigenvectors and knows under what assumptions these methods converge, knows examples of applications.
- Can approximate a function using Lagrange interpolation.
- Knows the definition of the spline space for fixed nodes; in particular, knows what the space of linear splines and the space of cubic splines are.
- Is able to determine in what situation the linear least squares problem should be applied, when spline interpolation, and when Lagrange interpolation should be applied.
- Knows the basic methods of processing and presenting numerical data on graphs: linear, bar, boxplot, heat maps, histograms, and libraries in Python for creating such plots.
- Knows the numerical methods of approximating the derivative of a real function and knows that the accuracy of the approximation depends not only on the method used, but also on the regularity of the function.
- Knows how to calculate the approximation of the definite integral of a real function using the trapezoidal method and the parabolic method.
Social competences. The student:
- Understands the importance of scientific calculations as a tool for solving tasks arising in the modeling of natural phenomena and technical challenges.
- Understands the ethical problems related to possible manipulations in the graphical presentation of data.
- Understands the limitations resulting from conducting calculations in finite precision arithmetic.
Assessment criteria
Test, homeworks/classroom exercises, exam.
Bibliography
A primer on scientific programming with python, Lagtangen
Scientific Programming, Barone, Marinari, Organtini, Ricci-Tersenghi
Numerical Recipes, Press Teukolsky, Veterling, Flannery
Additional information
Information on level of this course, year of study and semester when the course unit is delivered, types and amount of class hours - can be found in course structure diagrams of apropriate study programmes. This course is related to the following study programmes:
Additional information (registration calendar, class conductors, localization and schedules of classes), might be available in the USOSweb system: