66736 - Numerical Methods

Academic Year 2022/2023

  • Moduli: Damiana Lazzaro (Modulo 1) Damiana Lazzaro (Modulo 2)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
  • Campus: Cesena
  • Corso: First cycle degree programme (L) in Computer Science and Engineering (cod. 8615)

Learning outcomes

Knowledge of the fundamental aspects of numerical linear algebra and numerical analysis, that can be used in computer systems. Particular attention will be addressed to the acquisition of basic mathematical and computational tools typical of some applications such as signal and image processing and analysis of structured data.

Course contents

1. Numerical Calculus - Goals and problems in solving practical computer problems.

2. Finite numbers - Representation of real numbers. Finite numbers. Representation errors. Floating point arithmetic. Error analysis in elementary arithmetic operations. Error propagation: conditioning of a problem and stability of an algorithm.

3. Linear Algebra recalls on vectors, matrices and vector spaces. Vector norms and matrix norms.

4. Zeros of Functions - Problem formulation. Resolution Techniques. Iterative methods, convergence and order of methods. Local convergence and global convergence methods. Bisection method and other methods of the first order. A second-order method: the Newton method. Quasi-Newton methods: the secant method. Newton-Raphson method for the numerical solution of nonlinear systems.

5. Numerical solution of Linear Systems - Condition number of a matrix and conditioning of the problem. The Gauss elimination algorithm. LU factorization of a matrix. Stability of LU factorization. Pivoting. Cholesky factorization of symmetric and positive definite matrices. Householder method, QR factorization, SVD factorization  of non-square matrices. Properties.

6. Least Squares approximation - Normal equations and QRLS method (least squares solution using QR factorization), least squares solution using SVD factorization.

7. Interpolation - Polynomial interpolation. Existence and uniqueness of the interpolating polynomial. Lagrange's form and Newton's form of the interpolating polynomial. Error expression in polynomial interpolation. Convergence problems. Analysis of conditioning of the polynomial interpolation problem.

8. Data Analysis: Principal Component Analysis: SVD factorization of covariance matrix.

9. Numerical Integration - Newton-Cotes quadrature formulas. Simple and composite quadrature formulas. Error of simple and composite formulas.

Readings/Bibliography

It will be fundamental to use the notes taken during the lectures and the computer material made available at https://virtuale.unibo.it/

For further study we recommend:

[1] R. Johansson: Numerical Python - Scientific Computing and Data Science Applications with Numpy, SciPy and Matplotlib (2nd edition), Apress, 2019

[2] J. Kiusalaas: Numerical Methods in Engineering with Python 3, Cambridge University Press, 2013

[3] A. Quarteroni, R. Sacco, F. Saleri, P. Gervasio: Matematica Numerica (4th edition), Springer Verlag, 2014

[4] R. Bevilacqua, D. Bini, M. Capovani, O. Menchi: Metodi Numerici, Zanichelli, Bologna, 1992

[5] D. Bini, M. Capovani, O. Menchi: Metodi numerici per l'algebra lineare, Zanichelli, Bologna, 1996

Teaching methods

The course is structured in lectures and exercises in the computer laboratory. More precisely, the lectures on the basic numerical methods to solve classical mathematical problems through the use of a computer, are followed by laboratory exercises aimed at implementing these methods in Python and developing an adequate sensitivity and awareness of their use.

Assessment methods

The exam aims to verify the achievement of the following educational objectives:

- knowledge of the fundamental elements of numerical calculus, illustrated during the lectures;

- ability to use basic numerical methods to solve real problems using a computer.

The end-of-course exam (the evaluation of which is in thirtieths) will take place in a single test which includes both the development of Python codes for solving numerical problems, and the written answer to theoretical questions on the topics covered in the lessons.

Teaching tools

The course includes a laboratory activity in which the Python programming language is used. The corresponding teaching material will be made available to the student in electronic format and will be downloadable at https://virtuale.unibo.it/

Office hours

See the website of Damiana Lazzaro