Metodi computazionali della fisica

A.A. 2018/2019
6
Crediti massimi
62
Ore totali
SSD
FIS/02
Lingua
Italiano
Obiettivi formativi
Laboratorio di Fisica Computazionale

obiettivi del corso sono:
-imparare a utilizzare il programma Mathematica per:
1) eseguire calcoli di base di analisi matematica e di algebra lineare;
2) rappresentare graficamente il risultato dei propri calcoli;
3) eseguire manipolazioni simboliche elementari

-imparare a impostare la scrittura di un programma in C++:
utilizzando le proprieta' di ereditarieta' e di polimorfismo,
controllando l'utilizzo della memoria per gestire l'accesso ai diversi
tipi di dati

-imparare le nozioni di base di programmazione della bash shell

---------------------
Metodi Computazionali della Fisica

sviluppo di un progetto originale, realizzando tutte le parti necessarie
del programma (parti principali e librerie) in uno dei seguenti ambiti:

1) Mathematica:
-generazione di ampiezze di scattering tramite la tecnica dei diagrammi di
Feynman
-utilizzo di algoritmi genetici per la soluzione di problemi di
ottimizzazione

2) programmazione in CUDA:
-utilizzo di base delle schede grafiche NVIDIA per lo sviluppo di
programmi che eseguono calcoli distribuiti con alto livello di efficienza
-soluzione di problemi di algebra lineare, di integrazione numerica, di
dinamica dei fluidi, di problemi di clustering

3) calcolo stocastico applicato ai sistemi finanziari:
- elementi di finanza quantitativa
- sviluppo di metodi Montecarlo in C++, anche con scheda grafica, per la
simulazione e il relativo studio dell'andamento temporale di prodotti
finanziari

4) networks
- utilizzo avanzato della bash shell e delle tecniche di programmazione in
C++, rivolto alla caratterizzazione e allo studio dell'evoluzione di
networks, con esempi tratti dall'ambito biologico e da quello sociale
Risultati apprendimento attesi
Non definiti
Corso singolo

Questo insegnamento non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.

Programma e organizzazione didattica

Edizione unica

Responsabile
Periodo
Secondo semestre

Programma
Sviluppo di un progetto, utilizzando tecniche avanzate di programmazione,
in uno dei seguenti ambiti.
-Mathematica. Realizzazione da zero di un package che sfrutti le
possibilita' di manipolazione a livello simbolico
(p.es. generazione di grafi e di ampiezze di scattering secondo la
tecnica dei diagrammi di Feynman, oppure
implementazione di un algoritmo genetico per l'ottimizzazione di
problemi complessi come la scrittura automatica di programmi,
la creazione di un sistema esperto in grado di giocare al
"dilemma del prigioniero", l'allenamento di una rete neurale)
-Networks. (bash shell scripting/C++) Raccolata dati e loro elaborazione
per studiare e classificare le proprieta' di networks. Studio
dell'evoluzione temporale e della dinamica dei suddetti networks.
-CUDA Introduzione alla programmazione di schede grafiche NVIDIA e
sviluppo di algoritmi parallelizzati, adatti al funzionamento su
queste schede.
-Teoria dei giochi in C++. Sviluppo in C++ di un programma in grado di
far giocare due utenti a tris e a dama (inclusa l'interfaccia grafica).
Sviluppo di un algoritmo che permetta a un utente di giocare
contro il computer a tris e a dama. Possibilita' di sfide tra computer.
Prerequisiti
PREREQUISITI
Auspicabile qualche conoscenza di linguaggio di programmazione in C.

MODALITA' D'ESAME
L'esame consiste in una discussione orale che verte sugli argomenti trattati nel corso.
Metodi didattici
Modalità di frequenza:
Fortemente consigliata;
Modalità di erogazione:
Tradizionale.
FIS/02 - FISICA TEORICA, MODELLI E METODI MATEMATICI - CFU: 6
Laboratori: 48 ore
Lezioni: 14 ore
Docente/i
Ricevimento:
Su appuntamento, in presenza e via Teams o altre piattaforme.
Ricevimento:
Tutti i giorni, dopo le 14.30
DC-1-5