PROGRAMMAZIONE APPLICATA ALLA FISICA
cod. 1007394

Anno accademico 2018/19
2° anno di corso - Secondo semestre
Docente
Settore scientifico disciplinare
Informatica (INF/01)
Field
Attività formative affini o integrative
Tipologia attività formativa
Affine/Integrativa
62 ore
di attività frontali
6 crediti
sede: PARMA
insegnamento
in ITALIANO

Obiettivi formativi

Obiettivo principale del corso è condurre lo studente a familiarizzare con i metodi numerici per la soluzione del calcolo scientifico in ambito fisico-matematico, utilizzando Matlab come linguaggio di programmazione.

Alla fine del Corso, lo studente dovrà conseguire le capacità
- di comprendere un problema fisico dal punto di vista numerico;
- di eseguire semplici esperimenti numerici di Fisica con un ragionevole grado di autonomia;
- di sviluppare e di utilizzare codici numerici per l'elaborazione di dati e per la simulazione di processi fisici;
- di elaborare e analizzare i risultati ottenuti per ricavare rappresentazioni in termini di modelli del sistema fisico in esame.

Lo studente dovrà inoltre dimostrare di
- possedere capacità personali nel ragionamento logico e nell'approccio critico a nuovi problemi di calcolo numerico;
- essere in grado di raccogliere informazioni in modo autonomo tramite ricerche nell'ambito della letteratura fisica, soprattutto in lingua inglese;
- saper acquisire nuove conoscenze in modo autonomo nell’ambito dello sviluppo di codici numerici;
- applicare le conoscenze acquisite per l’interpretazione e di alcuni dei problemi di fisica che possono essere affrontati con adeguati mezzi di calcolo.

Lo studente dovrà inoltre conseguire le seguenti abilità comunicative:
- presentare con chiarezza quanto acquisito durante il corso
- utilizzare con appropriatezza il linguaggio scientifico proprio del calcolo numerico;
- presentare in maniera sintetica e analitica i risultati di analisi dati e di simulazioni numeriche realizzati in attività di laboratorio;
- utilizzare strumenti informatici e/o multimediali per comunicare con efficacia e incisività le conoscenze apprese e in particolare i risultati dell'attività svolta per la prova finale.

Prerequisiti

Non vi sono propedeuticità obbligatorie. È tuttavia necessario possedere nozioni di base di Analisi Matematica (I e II) e di Fisica (I e II).

Contenuti dell'insegnamento

Il corso si propone di fornire gli elementi fondamentali del calcolo numerico necessari per affrontare problemi di Fisica sia in campo sperimentale sia in campo teorico.
Matlab è il linguaggio di programmazione utilizzato.
Nella prima parte del corso, si introducono i comandi e la sintassi di base del linguaggio Matlab attraverso numerosi esempi che vengono rielaborati per problemi ed esercizi specifici che lo studente deve affrontare durante le ore di laboratorio in aula con il supporto del docente.
Gli argomenti trattati riguardano gli algoritmi numerici per la risoluzione di problemi matematici ricorrenti in fisica quali derivate di funzioni, integrali multidimensionali, trasformate veloci di Fourier, interpolazione non lineare di dati sperimentali, soluzioni di equazioni differenziali ordinarie, cenni alle soluzioni di equazioni differenziali alla derivate parziali.
Nella seconda parte del corso si affrontano, numericamente, problemi di Fisica quali:
1) analisi di dati sperimentali per verificare le leggi fisiche coinvolte; si affrontano in particolare il problema dell’interpolazione non lineare e dell’analisi spettrale dei segnali.
2) simulazioni numeriche di esperimenti e confronto con i risultati sperimentali (Viene trattato in modo approfondito il moto del pendolo per un confronto tra dati sperimentali e simulazioni numeriche al calcolatore).
3) integrazione delle equazioni di Newton per problemi specifici quali il moto in un campo gravitazionale generato da più corpi massivi.
4) studio della stabilità e del caos nei sistemi hamiltoniani;
5) studio della conduzione del calore in casi semplici.

Programma esteso

Elementi di Programmazione in Matlab
Algoritmi numerici:
zeri di una funzione, soluzione di sistemi lineari, interpolazione polinomiale, interpolazione non lineare, cenni alle trasformate di Fourier per l’analisi spettrale dei segnali, quadratura numerica, generatori di numeri casuali, metodo Monte Carlo, integrazione di equazioni differenziali ordinarie.
Sviluppo di codici:
analisi dati sperimentali e confronto con modelli teorici, calcolo di integrali in una in una o più dimensioni e confronto tra diversi algoritmi numerici, simulazione Monte Carlo di esperimenti di laboratorio, soluzione di equazioni differenziali ordinarie e confronto tra i diversi algoritmi numerici nel caso di semplici problemi di Fisica Classica: pendolo semplice con attrito e a lunghezza variabile; oscillatori non lineari accoppiati; problema gravitazionale dei due corpi (p.e. Sole+pianeta); problema gravitazionale dei tre corpi (p.e. Sole, Terra, Luna); problema gravitazionale degli n-corpi; cenni di dinamica molecolare; cenni sulla stabilità e sul caos nei sistemi hamiltoniani; soluzione dell’equazione del calore in alcuni casi semplici.

Bibliografia

Sono distribuite slide del corso, appunti del docente, brevi scritti reperiti in rete e codici numerici. Viene inoltre reso disponibile il software utilizzato in aula in modo tale che gli studenti possano disporne anche sui loro computer personali per lo studio a casa.
Tutto il materiale didattico è reperibile, a fine lezione, sulla piattaforma Elly a cui gli studenti possono accedere iscrivendosi al corso on line.

Metodi didattici

Il corso ha un peso di 6 cfu e prevede 62 ore di lezione suddivise in 14 ore frontali e 48 ore di esercitazioni al calcolatore in laboratorio. Le ore di lezione sono suddivise tra lezioni frontali alternate ad esercitazioni al computer per lo sviluppo di codici numerici in linguaggio Matlab. Durante le ore di esercitazione gli studenti devono sviluppare alcuni codici numerici sotto la supervisione del docente.
È necessario che, prima dell’esercitazioni, gli studenti abbiamo reperito e studiato le diapositive, i codici ed ogni altro materiale fornito dal docente durante le ore di lezione e messo a loro disposizione sulla piattaforma Elly.

Modalità verifica apprendimento

Dopo ogni lezione frontale, prima delle esercitazioni settimanali al calcolatore in aula, il docente indica, per ogni codice da sviluppare, i risultati minimi attesi ed eventuali estensioni ed approfondimenti che lo studente ritiene di affrontare.
Durante il corso, si richiede la consegna settimanale del lavoro svolto in aula ed eventualmente terminato a casa, salvando ogni codice e file (descrizione codici, grafici, commenti ai risultati ottenuti, ...) in uno spazio sul calcolatore assegnato a cui può accedere il docente per verificare
il livello di apprendimento raggiunto su argomenti specifici e per poter intervenire correggendo e/o approfondendo i temi trattati.
Per facilitare la presentazione del lavoro svolto e le eventuali correzioni, si richiede un breve riassunto (in word, power point, latex, etc.) che riassuma i risultati conseguiti, commenti e note. Gli studenti sono fortemente invitati a studiare gradualmente e costantemente e ad interagire col docente affinché possano superare le eventuali difficoltà iniziali e progredire nelle conoscenze del linguaggio di programmazione e nelle tecniche numeriche.
La valutazione finale si basa su un esame orale svolto in aula informatica con l’ausilio di un computer. Lo studente, se preferisce, può utilizzare un computer personale. Allo studente viene richiesta una breve relazione (in latex, word, power point, ...) che illustri i programmi numerici realizzati e metta in risultato, attraverso grafici significativi, i risultati più interessanti ottenuti. A questo scopo può servirsi dei riassunti schematici preparati settimanalmente, consegnati e corretti in precedenza.
I criteri di valutazione si basano su tre aspetti aventi lo stesso peso per il conseguimento del voto finale: i) comprensione di uno o più problemi trattati e dei metodi numerici adottati per giungere alla soluzione degli stessi; ii) discussione sui codici numerici sviluppati, sull’ implementazione degli algoritmi che rendono più veloce ed efficiente i programmi con particolare attenzione alla valutazione degli errori numerici; iii) presentazione dei risultati ottenuti mediante grafici significativi.
Esempi di relazioni finali e domande possono essere reperiti sulla piattaforma ‘Elly’ a fine corso.
Per raggiungere un livello sufficiente è necessario presentare, per ogni codice numerico, i risultati minimi attesi indicati dal docente per le esercitazioni settimanali in aula, dimostrando di aver compreso ed assimilato il problema affrontato.
Per conseguire la votazione ’30 e lode’, lo studente deve sviluppare uno o più codici numerici originali approfondendo uno o più temi specifici del Corso.
Il voto della prova orale verrà comunicato subito dopo il colloquio.

Altre informazioni

- - -