Salta ai contenuti. | Salta alla navigazione

Strumenti personali


Academic year and teacher
If you can't find the course description that you're looking for in the above list, please see the following instructions >>
Versione italiana
Academic year
Didactic period
Primo Semestre

Training objectives

The goal of the course is to provide the students with the basic tools to face some of the main scientific computing problems and to analyze stability and effectiveness of the related software.
Main knowledge learned:
- knowledge of the different difficulties concerning numerical computations, mainly related to finite arithmetic and computational complexity in terms of space and time;
- knowledge of the main numerical methods for solving some of the most common scientific computing problems (solution of linear systems, data interpolation and approximation, solution of nonlinear equations) and of the related analysis techniques, in terms of both complexity and stability.
The key abilities gained are:
- the ability to solve some of the main scientific computing problems by using interactive computing and scientific visualization environments and the ability to analyze the obtained results;
- the ability to use the tools of Numerical Computing and Discrete Mathematics for software development.


The following concepts are required:
- Linear Algebra (vector spaces, linear applications, matrix computing, Euclidean spaces, eigenvalues and eigenvectors, quadratic forms)
- Real numbers, functions, sequences, limits of sequences and functions, derivatives, integrals, basics of complex numbers.
- Basic skills of structured programming.
For Computer Science students, these knowledge and abilities are provided by the courses of “Matematica Discreta" (Discrete Mathematics), “Istituzioni di Matematica" (Basics of Calculus) and "Programmazione e laboratorio” (Computer Programming and Lab.). For students coming from other fields (such as Engineering), these knowledge and abilities are provided by the Mathematical Analysis and Geometry courses, and by modules where Matlab or other computer programming laguages are used.

Course programme

- Computer arithmetic: finite numbers representation and related operations, problem conditioning and algorithm stability; error propagation (about 10 hrs).
- Matlab: usage and main functions, programming M-scripts and M-functions (about 18 hrs).
- Linear systems: triangular systems, direct methods (LU factorization, Choleski factorization, QR factorization); methods for sparse matrices (about 14 hrs).
- Linear systems: perturbation analysis and condition number (about 4 hrs).
- Linear systems: iterative methods (about 6 hrs).
- Polynomial interpolation: Lagrange polynomial, Newton polynomial, Hermite polynomial; interpolation error; Chebyshev knots; interpolation by spline functions (about 10 hrs).
- Approximation of data and functions via the least squares method (about 4 hrs).
- Methods for solving nonlinear equations (about 6 hrs).
Notice: the time plan can possibly change, dependent on the averaged abilities of the students attending the lectures and the lab.

Didactic methods

For the course, 72 hours are scheduled, divided into lectures and exercises. In particular, about 54 hours are dedicated to the lectures and about 18 hours are dedicated to guided tutorial in computing lab.
The course is organized as follows:
- lectures on all the course topics, given at classroom and/or in streaming (synchronous modality), possibly with additional video material (asynchronous modality);
- programming exercises, aimed to get skills on Matlab environment as well as on the implementation of the main methods studied during the classes. Those exercise sessions will be given at computing laboratory and/or in streaming, in synchronous modality. Just in case, those sessions will possibly be supported by or substituted by guiding video material, for the implementation of small individual projects, in asynchronous modality.
To support the practical part, additional assisted activity can be scheduled on demand, for further exercises and/or programming, to strengthen the concepts acquired during the lectures.

Learning assessment procedures

The final exam is aimed at verifying the knowledge level the student has acquired on the concepts and the abilities taught in the lectures.
The final exam consists in a written+practical test, containing both theoretical and practical questions.
The theoretical questions are aimed to test knowledge and comprehension of the main topics of the course.
The practical exercises are problems whose solution must be obtained by implementing Matlab code, and the results must be properly commented.
The final test lasts at most 4 hours.
For the practical part, the students are provided with a PC equipped with Matlab; the code and related results and comments have to be reported.

Students are not allowed to consult texts. The answers to theoretical questions are scored on the basis of their correctness, completeness and exposition clarity.
The answers to practical questions are scored by considering
- syntactic and semantic correctness of the code
- effectiveness and efficiency of the selected methods for finding the required solution
- ability in analyzing the results.
A mark is assigned to each question. The test is passed if at least 9 points are gained in the theoretical part and at least 9 points are obtained in the practical part. The final mark ranges between 18 and 30, depending on the number and on the quality of the provided answers.

Reference texts

Burden R.L., Faires J.D., "Numerical Analysis", Brooks/Cole Pub Co, 10th ed. (Feb. 5, 2015);
Mazzia A., "Laboratorio di calcolo numerico. Applicazioni con Matlab e Octave", Pearson Ed. (January 2014);
Quarteroni A., Saleri F., Gervasio P., "Calcolo Scientifico: Esercizi e problemi risolti con MATLAB e Octave", Springer Verlag, 6th ed. (Aug. 1, 2017);
Brugnano L., Magherini C, Sestini A., "Calcolo Numerico", Masterbooks, 6th ed. (Sept. 1, 2019).
Approfondimenti: Quarteroni A., Saleri F., Sacco R., "Matematica numerica", Springer Verlag, 4^ ed. (Mar. 13, 2014);
Galligani I., "Elementi di Analisi Numerica", Calderini Editrice, Bologna, 1986.