Scheda insegnamento
Laboratorio di programmazione e calcolo
anno accademico: | 2013/2014 |
docente: | Biancamaria Della Vecchia |
corso di laurea: | Matematica - DM 270/04 (triennale), I anno |
tipo di attività formativa: | affine e integrativa |
crediti formativi: | 9 (72 ore di lezione) |
raggruppamento disciplinare: | MAT/08 Analisi numerica |
lingua di insegnamento: | italiano |
canale: | A-H |
periodo: | I sem (30/09/2013 - 17/01/2014) |
Aula ed orario di lezione
Frequenza: consigliata
Obiettivi del corso: L'obiettivo principale del corso è quello di avviare gli studenti ad un approccio costruttivo nella matematica anche attraverso l'uso dei personal computers. Da questo punto di vista, il corso è complementare agli altri corsi del primo anno nei quali è maggiormente enfatizzato l'approccio logico/deduttivo. La maggior parte del corso sarà dedicata alla soluzione di problemi, all'analisi degli algoritmi di base ed alla loro implementazione in C.
Programma di massima del corso: Introduzione al linguaggio C++: tipi di variabili, conversione di tipo, variabili array, operatori logici (or, and, not), istruzioni di lettura e scrittura, istruzioni condizionali (if-else) e istruzioni di ciclo (for, while, do-while). Funzioni matematiche. Struttura di un programma C++. Funzioni. Passaggio delle variabili. Cenni all'uso dei puntatori. Rappresentazione dei numeri interi e reali nel calcolatore. Propagazione degli errori nelle operazioni aritmetiche. Algoritmi stabili e algoritmi instabili:calcolo di pigreco. Calcolo del polinomio in un punto (algoritmo di Horner). Matrici, vettori e sistemi di equazioni lineari. Risoluzione numerica di sistemi di equazioni lineari: metodi di Gauss e di Jacobi. Uso della libreria grafica Gnuplot: grafico di una funzione. Metodi numerici per il calcolo degli zeri di una equazione non lineare: metodi della bisezione, di Newton e delle secanti. Uso della formula di Taylor per il calcolo di alcune funzioni matematiche. Interpolazione polinomiale. Metodi numerici per il calcolo di integrali definiti.
Programma completo del corso: Elenco settimanale degli argomenti svolti a lezione
Testo consigliato: Dispense in rete fornite dai docenti Luis J. Aguilar, "Fondamenti di programmazione in C++", McGraw-Hill, 2008 o testo equivalente. A. Quarteroni, R. Sacco, F. Saleri, "Matematica numerica", Springer, 2008 In alternativa al precedente puo' essere usato (se gia' posseduto) uno dei testi seguenti: A.Quarteroni , "Elementi di Calcolo Numerico", Progetto Leonardo ,1998 J.F. Epperson, "Introduzione all'analisi numerica", McGraw-Hill, 2003
Dispense:
- Brevissima introduzione al C++ (Prof. M. Marfurt)
- Note per l'utilizzo del compilatore C con LINUX (A. Seghini)
- Esempio di un semplice programma C++
- Analisi dell'errore propagato (Prof. M. Marfurt)
- C++ su Mac
- Le successioni per ricorrenza e l'algoritmo di Erone
- Risoluzione numerica di sistemi di equazioni lineari (M. Marfurt)
- Appunti sull'uso di GNUPLOT
- Un manualetto per GNUPLOT
- Breve corso di C (M. Falcone)
- Le successioni per ricorrenza e l'algoritmo di Erone
Modalità di erogazione: convenzionale
Esercitazioni:
- Foglio di Esercitazioni N. 1
- Foglio di esercitazioni N. 2
- Foglio di esercitazioni N. 3
- Foglio di esercitazioni N. 4
- Foglio di esercitazioni N. 5
- Foglio di esercitazioni N. 6
- Foglio di esercitazioni N. 7
- Foglio di Esercitazioni N. 8
- Foglio di Esercitazioni N. 9
- Foglio di Esercitazioni N. 10
- Foglio di Esercitazioni N. 11
- Foglio di Esercitazioni N. 12
Testo di passata prova d'esame: Testo dell'esonero di novembre 2013
Link utili:
- Numerical Recipes in C, Second Edition (1992) Link
- Allen B. Downey: How to think like a computer scientist (2012) Link
- M. Banahan, D. Brady, M. Doran: The C Book Link
- M. Henricson, E. Nyquist and E. Utvecklings: Industrial Strength C++ (1997) Link
- B. Eckel: Thinking in C++, 2nd edition, Volume 1 (2001) Link
- B. Eckel: Thinking in C++, 2nd edition, Volume 2 (2003) Link
- Registrazione al corso e alle prove in itinere Link
Risultati di apprendimento - Conoscenze acquisite: Gli studenti che abbiano superato l'esame saranno in grado di avere una conoscenza di base della programmazione e delle proprietà matematiche di semplici algoritmi. Gli studenti avranno anche acquisito le nozioni fondamentali sulla convergenza, lordine di convergenza, lerrore e la complessità di algoritmi elementari.
Risultati di apprendimento - Competenze acquisite: Gli studenti che abbiano superato l'esame saranno in grado di scrivere un semplice codice C per scopi scientifici e di utilizzare alcuni algoritmi numerici di base per la soluzione di problemi. Saranno anche in grado di scegliere lalgoritmo più appropriato per la soluzione di semplici problemi quali la ricerca degli zeri, il calcolo di un integrale e la soluzione di un sistema lineare. Durante le esercitazioni in laboratorio impareranno ad usare un PC, gli strumenti grafici e una rete LAN.
Studio personale: la percentuale prevista di studio personale sul totale dell'impegno richiesto è del 65%