Computational physics laboratory

A.Y. 2016/2017
6
Max ECTS
66
Overall hours
SSD
FIS/02
Language
Italian
Learning objectives
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
Expected learning outcomes
Undefined
Course syllabus and organization

Single session

Responsible
Lesson period
Second semester
Course syllabus
Development of a project, using advanced programming techniques, in
one of the following fields.
-Mathematica. Realization from scratch of a symbolic manipulation
package (generation of graphs and of scattering amplitudes
according to the Feynman diagrams technique, or optimization of
problems, with a genetic algorithm, like the automatic writing of
computer codes, the training of a neural network, the training of
an expert system that plays the "Prisoner's dilemma").
-Networks. (bash shell scripting/ C++) Data collection and analysis to
classify the properties of a network. Study of temporal evolution
of the net and modeling of its dynamics.
-CUDA. Introduction to programming NVIDIA graphics cards in
CUDA. Development of parallelized algorithms, able to run on these
kind of devices.
-Game theory in C++. Development in C++ of a code that allows two users
to play tic-tac-toe and draughts (with graphic interface).
Development of a computer code able to play the same games against
the user. Possibility of contexts between different computer codes.
FIS/02 - THEORETICAL PHYSICS, MATHEMATICAL MODELS AND METHODS - University credits: 6
Laboratories: 54 hours
Lessons: 12 hours
Professor: Vicini Alessandro
Professor(s)
Reception:
Mo-Fr, after 2.30pm
DC-1-5