Vai al contenuto principale
Oggetto:
Oggetto:

Algoritmi numerici per la fisica

Oggetto:

Numerical Algorithms for Physics

Oggetto:

Anno accademico 2024/2025

Codice attività didattica
MFN0868
Docente
Andrea Mignone (Titolare)
Corso di studio
008510-102 Laurea Magistrale in Fisica ind. Astrofisica e Fisica Teorica
Anno
1° anno, 2° anno
Periodo
Primo semestre
Tipologia
B=Caratterizzante
Crediti/Valenza
6
SSD attività didattica
FIS/01 - fisica sperimentale
Erogazione
Tradizionale
Lingua
Italiano
Frequenza
Obbligatoria
Tipologia esame
Prova pratica
Prerequisiti

Nozioni di programmazione in C++, conoscenza di Linux (o analogo).
Familiarità con la fisica di base insegnata al triennio (meccanica, elettromagnetismo, dinamica dei fluidi, termodinamica, meccanica quantistica).


Some (basic) knowledge of C++ and Linux-like systems.
Acquaintance with the basic physics knowledge, undergrad level (mechanics, electromagnetism, fluid dynamics, thermodynamics, quantum mechanics).

Propedeutico a
Oggetto:

Sommario insegnamento

Oggetto:

Obiettivi formativi

Il corso ha come scopo quello di avvicinare gli studenti all'uso di algoritmi in modo che siano in grado di affrontare i vari problemi numerici che incontrano nei loro studi. L'implementazione dei vari algoritmi verra' discussa usando problemi di fisica introdotti nei corsi precedenti.

The course is aimed at making the students familiar with the use of algorithms to enable them to face various numerical issues that they deal with during their studies. The implementation of various algorithms will be discussed using physical problems introduced in previous courses.

Oggetto:

Risultati dell'apprendimento attesi

Lo studente impara, attraverso un linguaggio di programmazione a stilare programmi per la risoluzione di problemi scientifici.

The student learns, by means of a programming language, to compile programmes for the resolution fo scientific problems.

Oggetto:

Programma

Il corso fornisce le basi per la risoluzioni di problemi scientifici di diversa natura. In particolare, vengono illustrate tecniche numeriche standard divise nei seguenti capitoli:

  1. Introduzione: breve ripasso di C++ (funzioni, preprocessore), shell di Linux (comandi base e compilazione da terminale);
  2. Precisione aritmetica: rappresentazione in virgola mobile, variabili in singola & doppia precisione, precisione di macchina. Incertezza, accuratezza e stabilità degli algoritmi.
  3. Calcolo di integrali definiti (quadratura numerica): metodo di Eulero, del trapezio. Regola di Simpson. Quadratura Gaussiana. Cenni di calcolo in più dimensioni.
  4. Numeri casuali e metodi di Monte Carlo (cenni);
  5. Ricerca degli zeri di funzioni (nonlineari): metodo di Bisezione, metodo di Newton-Raphson, metodo della secante e False Position. Convergenza.
  6. Differenziazione numerica.
  7. Risoluzione di equazioni differenziali ordinare (problemi ai valori iniziali): metodo di Eulero e metodi di Runge-Kutta del secondo e quart'ordine. Metodi simplettici. Convergenza. Conservazione dell'energia e reversibilità del moto. Metodi impliciti (cenni)
  8. Risoluzione di equazioni differenziali ordinare (problemi al contorno): metodo di "shooting", residuo e matching point. Applicazioni all'oscillatore armonico quantistico.
  9. Inversione di sistemi lineari: ripasso di array multidimensionali. Eliminazione Gaussiana. Risolutore per matrici tridiagonali. Problemi.
  10. Soluzione numerica di equazioni differenziali alle derivate parziali: Eq. ellittiche. Metodo di Jacobi, Gauss e Successive Over-Relaxation (SOR). 

 

The course provides fundamental techniques for solving scientific problems of various kinds.In particular, standard numerical techniques are illustrated throghout the following chapters:

  1. Introduction: brief review of C ++ (functions, preprocessor), Linux shell (basic commands and compilation from terminal);
  2. Arithmetic precision: floating point representation, single & double precision variables, machine precision. Uncertainty, accuracy and stability of algorithms.
  3. Computation of definite integrals (numerical quadrature): Euler method, of the trapezoid. Simpson's rule. Gaussian quadrature. Hints of calculation in several dimensions.
  4. Random numbers and Monte Carlo methods (brief outline);
  5. Search for zeros of functions (nonlinear): bisection method, Newton-Raphson method, secant method and False Position. Convergence.
  6. Numerical differentiation.
  7. Numerical solution of ordinary differential equations (ODE, initial value problems): Euler method and second and fourth order Runge-Kutta methods. Symplectic methods. Convergence. Conservation of energy and reversibility of motion. Implicit methods (hints)
  8. Numerical solution of ordinary differential equations ordering (boundary problems): "shooting" method, residual and matching point. Applications to the quantum harmonic oscillator.
  9. Inversion of linear systems: review of multidimensional arrays. Gaussian Elimination. Solver for tridiagonal matrices. Problems.
  10. Numerical solution of partial differential equations (the elliptical case): methods of  Jacobi, Gauss and Successive Over-Relaxation (SOR) method.

 

Oggetto:

Modalità di insegnamento

Il corso prevede 60 ore di insegnamento in presenza, tipicamente ripartite in 20 lezioni da 3 ore l'una.

The course includes 60 hours of in-person teaching, typically divided into 20 lessons of 3 hours each.

Oggetto:

Modalità di verifica dell'apprendimento

Il corso non prevede nessun esame orale.

Durante il corso vengono proposte diverse sessioni pratiche per facilitare la comprensione dell'algoritmo e la sua implementazione.

Sempre durante le ore di lezione vengono svolti dei "compiti in classe" o prove in cui viene richieso allo studente di risolvere un problema di fisica con i metodi presentati a lezione. L'esito di tali prove contribuisce alla determinazione del voto di base. Dopo la fine del corso, facoltativamente, lo studente può decidere di presentare un progetto aggiuntivo  (dell'ordine di una decina di pagine) in cui viene risolto un problema fisica con metodi numerici. La valutazione del progetto contribuisce al miglioramento del voto di base.

 

The course does not include any oral exams.

During the course, several practical sessions are offered to facilitate the understanding of the algorithm and its implementation.

Additionally, during class hours, 'in-class assignments' or tests are conducted in which the student must solve a physics problem using the methods presented in the lectures. The results of these tests contribute to the determination of the base grade. After the course has ended, the student can optionally choose to submit an additional project (around ten pages) in which a physics problem is solved using numerical methods. The evaluation of the project can help improve the base grade

Oggetto:

Attività di supporto

Testi consigliati e bibliografia

Oggetto:

W.H. Press, S.A. Teukolsky, W. Vetterling and B. Flannery. Numerical Recipes in C (o Fortran). Cambridge University Press.

Donald B. KNUTH. "the Art of Computational Programming" Addison Wesley Ed.

Foley, van Dam, Feiner and Hughes.Computer Graphics (C o Pascal), Addison Wesely Ed.

Different English textbooks are suggested


W.H. Press, S.A. Teukolsky, W. Vetterling and B. Flannery. Numerical Recipes in C (o Fortran). Cambridge University Press.

Donald B. KNUTH. "the Art of Computational Programming" Addison Wesley Ed.

Foley, van Dam, Feiner and Hughes.Computer Graphics (C o Pascal), Addison Wesely Ed.



Oggetto:

Note

Frequenza obbligatoria. Si considerano assenze giustificate solo in caso di malattia / sovrapposizione con altri corsi / scioperi mezzi pubblici / sessioni di laurea. In ogni caso, il numero di assenze deve essere limitato.

Modalità di esame: orale. Per ulteriori dettagli vedi homepage del docente ( http://personalpages.to.infn.it/~mignone/Numerical_Algorithms/ )

Attendance is mandatory. Excused absences are considered only in case of illness / overlapping with other courses / public transport strikes / graduation sessions.

In any case, the number of absences has to be limited.

Examination methodology: Oral.
For further details please have a look on the personal webpage of the professor ( http://personalpages.to.infn.it/~mignone/Numerical_Algorithms/ )

 

Oggetto:

Insegnamenti che mutuano questo insegnamento

Oggetto:

Altre informazioni

https://www.to.infn.it/%7emignone/Numerical_Algorithms/
Oggetto:

Orario lezioniV

GiorniOreAula
Giovedì10:30 - 13:30Aula Informatica F Dipartimento di Fisica
Venerdì10:30 - 13:30Aula Informatica G Dipartimento di Fisica

Lezioni: dal 03/10/2024 al 10/01/2025

Registrazione
  • Aperta
    Oggetto:
    Ultimo aggiornamento: 25/11/2024 12:40
    Location: https://www.fisicamagistrale.unito.it/robots.html
    Non cliccare qui!