Vai al contenuto principale
Coronavirus: aggiornamenti per la comunità universitaria / Coronavirus: updates for UniTo Community
Oggetto:
Oggetto:

Algoritmi numerici per la fisica

Oggetto:

Numerical Algorithms for Physics

Oggetto:

Anno accademico 2022/2023

Codice attività didattica
MFN0868
Docente
Prof. Andrea Mignone (Titolare del corso)
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).


Some (basic) knowledge of C++ and Linux-like systems.

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

Per l'a.a. corrente le lezioni avverranno in presenza e saranno anche trasmesse
in streaming tramite la pagina WebEx personali del docente, esclusivamente per studenti seriamente impossibilitati a partecipare alle lezioni in presenza. La prima lezione sarà il 07/10/2021 alle ore 10:30 in Aula Informatica e al seguente link:

https://unito.webex.com/meet/andrea.mignone

Se l’emergenza sanitaria dovesse persistere e/o aggravarsi le lezioni potranno essere svolte a distanza tramite piattaforma WebEx.

For the current academic year lectures will take place face to face and will also be broadcasted through the teacher's personal WebEx page, exclusively for students who are seriously unable to attend face-to-face lessons.
The first lesson will be on 07/10/2021 at 10:30 in the Computer Room and at the following link:


https://unito.webex.com/meet/andrea.mignone

If the health emergency persists and / or worsens, the lessons can be held remotely via the WebEx platform.

 

Oggetto:

Modalità di verifica dell'apprendimento

Durante il corso vengono proposte diverse applicazioni che devono essere implementate a lezione. Queste vengono corrette di volta in volta ed alla fine del corso viene proposto un voto che riassume il giudizio sulle varie parti.

During the course different applications, which have to be implemented during the lectures, are presented. These are corrected from time to time and at the end of the course a grade that summarized the different evaluations given during the lectures is proposed.

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

Nessuna propedeuticità obbligatoria. Frequenza non obbligatoria, ma fortemente consigliata. Modalità di esame: orale. Per ulteriori dettagli vedi homepage del docente

No previous attendance required. Attendance at the course is not mandatory, but strongly reccomended. Examination methodology: Oral.
For further details please have a look on the personal webpage of the professor.

Oggetto:

Altre informazioni

http://personalpages.to.infn.it/%7emignone/Numerical_Algorithms/
Registrazione
  • Aperta
    Oggetto:
    Ultimo aggiornamento: 24/05/2022 15:26