- Esperimentazioni di Fisica Computazionale
- Introduzione
Syllabus del corso
Obiettivi
Apprendere le basi del calcolo scientifico numerico e dello studio di problemi di interesse per la Fisica con il computer.
Contenuti sintetici
Introduzione e concetti base della programmazione al computer. Metodi per la soluzione numerica di integrali, equazione differenziali ordinarie, sistemi lineari di equazioni e loro applicazioni, inclusa un'introduzione ai metodi Monte Carlo.
Programma esteso
Introduzione e concetti base
- Rappresentazione dei numeri su un computer, aritmetica floating-point ed errori di round-off
- Propagazione degli errori, Condition Numbers, e stabilità
Interpolazione/Ottimizzazione
- Interpolazione tramite polinomi, (opzionale) interpolazione con funzioni razionali
- (opzionale) Interpolazione con funzioni trigonometriche: Fast Fourier Transform
Integrazione numerica
- La formula di integrazione di Newton e Cotes: regola dei trapezi, metodo di Simpson, Composite methods etc..
- Metodi di integrazione Gaussiana. Analisi degli errori
- Applicazione ad integrali semplici
Sistemi di equazioni lineari
- Teniche e algoritmi per la soluzione di sistemi lineari
- Data Fitting: problema lineare dei minimi quadrati e l'equazione normale
Ricerca degli zeri e punti di minimo tramite metodi iterativi
- Sviluppo dei metodi iterativi e studio della loro convergenza
- Metodi e algoritmi: bisezione, Newton-Raphson, etc.
- Applicazioni: Radici di polinomi, (opzionale) sistemi non lineari dei minimi quadrati
Problema degli autovalori
- Introduzione e nozione sugli autovalori
- Metodi per la determinazione degli autovalori e autovettori di una matrice
- (opzionale) calcolo dei valori singolari di una matrice e decomposizione ai valori singolari
Equazioni differenziali ordinarie
- Alcuni teoremi sulla teoria delle equazioni differenziali ordinarie
- Tecniche per la soluzione numerica di un'equazione differenziale: metodo di Eulero, Runge-Kutta, (opzionale) integratori simplettici
- Applicazione: dinamica classica, equazione di Schroedinger etc.
Metodi Monte Carlo
- Basi del metodo Monte Carlo. Generatori di numeri random
- Importance sampling. Algoritmo di Metropolis-Hastings
- Applicazioni a integrali semplici
Prerequisiti
Insegnamenti degli anni precedenti. Non sono richiesti prerequisiti particolari a livello di programmazione oltre alla conoscenza dei concetti base del linguaggio C: struttura di un codice, definizione di una variabile, di un array, di una funzione e di un ciclo.
Modalità didattica
L'attività si svolge esclusivamente in presenza nel laboratorio di informatica (stanza 2026, piano 2). Le tecniche numeriche per la soluzione degli esercizi vengono presentate in alcune lezioni teoriche; ogni studente esegue in modo individuale le esercitazioni sotto la supervisione e con il supporto del docente.
Materiale didattico
Verranno caricate le note dei docenti sulla pagina del corso.
In aggiunta, si consiglia la consultazione dei seguenti volumi:
Titolo: Numerical Recipes
Autori: William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery
Editore: CAMBRIDGE UNIVERSITY PRESS
Titolo: Introduction to Numerical Analysis 3rd Edizione
Autori: J. Stoer, R. Bulirsch
Editore: Springer
Titolo: Numerical Methods in Scientific Computing: Volume 1 & 2
Autori: Germund Dahlquist, Åke Björck
Editore: Society for Industrial and Applied Mathematics
Periodo di erogazione dell'insegnamento
Il primo turno del corso si terrà durante il primo semestre (con docenti il Prof. Mattia Bruno ed il Dott. Marco Ce'), mentre il secondo turno durante il secondo semestre (con docente il Prof. Mattia Dalla Brida). Gli studenti verranno divisi dai docenti sui due turni.
Modalità di verifica del profitto e valutazione
- Nel laboratorio lo studente deve risolvere numericamente una serie di problemi scrivendone il corrispondente codice.
- Ogni studente raccoglie i risultati ottenuti e lo studio effettuato in una relazione che deve essere inviata in formato pdf per email al docente almeno due settimane prima dell'orale, insieme ai codici e ai risultati.
- Esame orale che consiste nella discussione della relazione e delle soluzioni agli esercizi
La valutazione finale tiene conto dell'esame orale, dell'attivita' di laboratorio e del report finale. Se lo desiderano, gli studenti (Erasmus) possono sostenere l'esame in lingua inglese (sia la parte orale che la relazione scritta).
Gli studenti che seguiranno il corso durante il primo semestre verranno valutati dai docenti corrispondenti, il Prof. Mattia Bruno ed il Dott. Marco Ce', mentre quelli che lo seguiranno nel secondo semestre verranno valutati dal Prof. Mattia Dalla Brida.
Orario di ricevimento
Per gli studenti del primo semestre, su appuntamento, scrivendo un'e-mail ai docenti del corso: mattia.bruno@unimib.it e marco.ce@unimib.it
Per quanto riguarda gli studenti del secondo semestre, sempre su appuntamento, scrivendo un'e-mail al docente del corso: mattia.dallabrida@unimib.it
Sustainable Development Goals
Aims
Learn the basis of scientific numerical calculus and how to study physical problems with the computer.
Contents
Introduction and basic concepts of computer programming. Methods to numerically solve integrals, ordinary differential equations, linear systems of equations, and their applications, as well as an introduction to Monte Carlo methods.
Detailed program
Introduction and basic concepts
- Representation of Numbers on a Computer, round-off errors and Floating-Point Arithmetic
- Error Propagation, Condition Numbers, and Stability
Interpolation/Optimization
- Interpolations by Polynomials, (optional) Interpolation by Rational Functions
- (optional) Trigonometric Interpolation: Fast Fourier Transforms
Topics in Integration
- The Integration Formulas of Newton and Cotes: Trapezoidal rule, Simpson’s rule, Composite rules, etc.
- Gaussian Integration Methods. Error Analysis
- Applications to simple integrals
Systems of Linear Equations
- Techniques and Algorithms for solving Linear Systems
- Data Fitting: Linear Least Squares and the Normal Equation
Finding Zeros and Minimum Points by Iterative Methods
- Development of Iterative Methods and their Convergence
- Basic Methods and Algorithms: Bisection, Newton-Raphson, etc.
- Applications: Roots of Polynomials, (optional) Nonlinear Least-Squares
Eigenvalue Problems
- Introduction and basic facts on Eigenvalues
- Methods for Determining the Eigenvalues and Eigenvectors of a Matrix
- (optional) Computation of the Singular Values of a Matrix and Singular Value Decomposition
Ordinary Differential Equations
- Some Theorems from the Theory of Ordinary Differential Equations
- Techniques for the numerical solution of a differential equation: Euler, Runge-Kutta, (optional) symplectic integrators
- Applications: Classical dynamics, Schroedinger equation, etc.
Monte Carlo methods
- Foundations of Monte Carlo methods. Random number generators
- Importance sampling. Metropolis-Hastings algorithm
- Applications to simple integrals
Prerequisites
Teachings of previous years. No particular coding skills are required other than very basic concepts of the C programming language, like the general structure of a code and the definition of a variable, of an array, of a function and of a loop.
Teaching form
Activity is carried out in the computer lab (room 2026, 2nd floor). The numerical techniques useful for solving the exercises are presented in a few theoretical lectures; each student works individually with the support of the teacher in case of need.
Textbook and teaching resource
The lecture notes by the teachers will be uploaded on the course webape.
In addition, we recommend the students to consult the following books:
Title: Numerical Recipes
Authors: William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery
Editor: CAMBRIDGE UNIVERSITY PRESS
Title: Introduction to Numerical Analysis 3rd Edition
Authors: J. Stoer, R. Bulirsch
Editor: Springer
Title: Numerical Methods in Scientific Computing: Volume 1 & 2
Authors: Germund Dahlquist, Åke Björck
Editor: Society for Industrial and Applied Mathematics
Semester
The first instance of the course will take place during the first semester (under the supervision of Prof. Mattia Bruno and Dr. Marco Ce'), while a second instance will take place during the second semester (under the supervision of Prof. Mattia Dalla Brida). Students will be split up in the two instances by the teachers.
Assessment method
- In the computer lab the student has to solve numerically a number of execises by writing computer codes.
- Every student collects the results of the study in a written report. The report (in pdf format) as well as the codes and the results of the numerical study have to be sent to the teacher by email at least two weeks before the exam.
- The exam, oral, consists in the discussion of the report and the solutions of the exercises.
The overall evaluation takes into account the oral exam, the lab activity and the final report. If desired, (Erasmus) students can give the exam in English (both the oral part and the written report).
The students that will attend the course during the first semester will be evaluated by the corresponding teachers, Prof. Mattia Bruno and Dr. Marco Ce', while those attending it during the second semester will be evaluated by Prof. Mattia Dalla Brida.
Office hours
For the students attending the course during the first semester, by fixing an appointment with the teachers via e-mail: mattia.bruno@unimib.it and marco.ce@unimib.it.
For the students attending the course during the second semester by fixing an appointment with the teacher via e-mail: mattia.dallabrida@unimib.it.