Computational Physics Laboratory

A.Y. 2018/2019
6
Max ECTS
62
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
Single course

This course cannot be attended as a single course. Please check our list of single courses to find the ones available for enrolment.

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: 48 hours
Lessons: 14 hours
Professor(s)
Reception:
By appointment, in-person and via Teams or other platforms.
Reception:
Mo-Fr, after 2.30pm
DC-1-5