Scientific Computing

Course objectives

General goals: to acquire the basic skills for the numerical treatment of ordinary and partial differential equations related to the study of mathematical models for some applications such as traffic, image processing and vision. Specific goals Knowledge and understanding: Students who have passed the exam will have a good basic knowledge of the numerical methods studied both from a theoretical point of view and from the implementation side and will be able to understand how to structure basic algorithms for the simulation of mathematical differential models. Applying knowledge and understanding: at the end of the course the student will be able to perform simulations on stationary and evolutionary differential problems obtaining quantitative results for the problems treated. He will also be able to design and implement codes that interact appropriately with a potential user through graphics. Critical and judgment skills: the student will have the theoretical basis to analyze the mathematical algorithms treated from the point of view of computational efficiency, stability and accuracy. On the one hand, he will be able to apply the skills acquired in the courses of Linear Algebra, Mathematical Analysis to analyze elementary numerical methods and on the other hand he will be able to solve numerically problems proposed in several application fields. Communication skills: ability to explain and motivate the proposed solution for some problems chosen during the term, in classroom / laboratory practice sessions and in the oral exam scheduled at the end of the course. Learning skills: the acquired knowledge will allow individual or guided study in an advanced course of numerical analysis for differential problems, related to more specialized aspects that require further mathematical knowledge. Furthermore, the student will be familiar with different IT elements such as the programming language, libraries, compilers, the different software available on the net offering an integrated development environment under different operating systems. These skills will certainly allow him to learn more easily the use of other software of interest for scientific computing and on the job.

Channel 1
DAVIDE TORLO Lecturers' profile

Program - Frequency - Exams

Course program
The course studies partial differential equations (PDEs) and some numerical methods for approximating their solutions. The course is divided into: - review of ODEs [2h]; - introduction to PDEs [6h]; - finite difference methods [8h = 4h class + 4h lab]; - finite element methods [22h = 14h classes + 8h lab]; - finite volume methods [10h = 8h classes + 2h lab]. At first, we will introduce PDEs with some examples from various physical problems, the concept of weak derivatives and Sobolev spaces. For some classes of PDEs, we will verify the existence, uniqueness and/or regularity of PDEs' solution (transport equation, Poisson equation, heat equation, Stokes problem for incompressible fluids, conservation laws, Burgers equations, Euler for fluid dynamics). We will see different types of discretization of PDEs starting from finite differences (FD). We will define finite difference discretization, their consistency, their accuracy, and we will apply it to 1D, 2D, time-independent, and time-dependent problems. We will see how to implement and solve these problems in Python by defining sparse matrix structures. We will study the stability of these methods and derive the CFL conditions. Subsequently, we will study finite element methods (FEM) starting from the definition of the approximation spaces and their properties, the quadratures and a priori estimates for some problems. We will study the convergence of methods for coercive linear problems and for linear problems in saddle point formulations. Finally, we will see the onset of instabilities due to advection-dominated problems and some stabilization techniques. We will implement finite elements for 1D and 2D problems. Moreover, we will use the FEniCS library for problems with more complicated geometries. Finally, we will study the finite volume method for conservation laws, introducing the discretization and the concept of consistency for numerical fluxes. We will study the stability of the method and see different types of reconstructions and numerical fluxes. Moreover, we will implement the method on nonlinear problems.
Prerequisites
* Basic concepts of analysis 2 (derivatives and integrals in two dimensions) and linear algebra * Theory of ordinary differential equations (ODEs) and of few numerical methods for ODEs * Basic knowledge of python
Books
Notes of the course will be published along the semester at the website https://github.com/accdavlo/calcolo-scientifico . The books on which the course is based are the following. * Evans, Lawrence C. Partial differential equations. Vol. 19. American Mathematical Society, 2010. [Introduction to PDEs] * LeVeque, Randall J. Finite difference methods for ordinary and partial differential equations: steady-state and time-dependent problems. Society for Industrial and Applied Mathematics, 2007. [Finite Difference Methods] * Quarteroni, Alfio, and Alberto Valli. Numerical approximation of partial differential equations. Vol. 23. Springer Science & Business Media, 2008. [Finite Element Methods] * LeVeque, Randall J. Finite volume methods for hyperbolic problems. Vol. 31. Cambridge university press, 2002. [Finite Volume Methods] * Langtangen, Hans Petter, and Anders Logg. Solving PDEs in python: the FEniCS tutorial I. Springer Nature, 2017. [FEniCS manual]
Frequency
There's no mandatory presence, but it is warmly suggested to interact and communicate with the teacher during theoretical classes and to interact with other students during the practical sessions.
Exam mode
The exam consists of a project and an oral exam. The grade is based for the 50% on the project and for the 50% on the oral exam. The project can be developed in groups of up to 3 people and should be presented in the same date for all the participants. The projects consist in developing and analyzing some numerical methods for a given differential problem. The project will end up with a summary document of maximum 5 pages and with a presentation where all the participants will explain their project. The project is meant to evaluate the ability of the student of developing pieces of codes for the numerical solution of PDEs, using the knowledge learned in class and applying it to new problems. The oral exam can be taken after the project presentation and it will assess the knowledge of the students on the theoretical topics presented in the classes and their ability in critically choose the best fit between problems and numerical method.
Lesson mode
The course consists of two types of classes: theoretical frontal classes and laboratory ones. * In the theoretical classes, we will introduce some partial differential problems (PDEs), we will study the theory of the numerical methods to solve them, their discretization and their analysis. * In the laboratory classes, students will implement on their laptops the various methods studied in class and they will test them on some problems. The codes will be in python.
  • Lesson code10603357
  • Academic year2025/2026
  • CourseMathematical Sciences for Artificial Intelligence
  • CurriculumSingle curriculum
  • Year3rd year
  • Semester2nd semester
  • SSDMAT/08
  • CFU6