Programma del corso (Anno Accademico 2004-05)
e materiale di riferimento


Viene riportato di seguito il programma dettagliato del corso per il corrente Anno Accademico; l'elenco dei comandi di C e MATLAB citati non è esaustivo,ma viene fornito solo ai fini di orientamento generale.
Nella colonna dei riferimenti, ogni richiamo al libro consigliato (G. Naldi - L. Pareschi - G. Russo: "Introduzione al Calcolo Scientifico", ed. McGraw-Hill) per brevità viene indicato dalla sigla NPR.


Data
Argomenti trattati
Riferimenti, file, link utili ecc.
9 marzo 2005
Introduzione storica ai sistemi di calcolo.
Algebra di Boole; notazione binaria; cifre significative.
Sistemi di input e output.
Storia del computer dal sito dell'IAC (CNR) di Napoli.
Una breve panoramica storica sui primi calcolatori dalla Rete Civica di Ravenna.
Altra storia del computer dal sito Osservatorio Informatico.
Corso di P.E. Dunne (in inglese): consigliate lezione 3 e 4.
Sito della University of St. Andrews (Scozia) con biografie di numerosi scienziati legati alla matematica.
16 marzo 2005
Numerazione binaria; conversione binario-decimale e decimale-binario.
Algoritmi.
Introduzione ai computer moderni; memoria; sistemi operativi.
Sistema operativo Linux: primi rudimenti; uso della shell bash; principali comandi elementari (ls, cd, mkdir, touch ecc.).
NPR 1.1
Tabella di comandi UNIX-Linux utili per lavorare nelle shell con riga di comando.
6 aprile 2005
Linguaggi di programmazione: linguaggi di basso e alto livello; linguaggi interpretati e compilati.
Linguaggio C: introduzione, librerie, comandi elementari di input e output (stdio.h); visualizzazione a schermo con printf.
Editor di testi: uso dell'editor vi.
Tabella di riferimento per l'ANSI C.
Tabella di riferimento per vi.
Codice sorgente C di un semplice programma di prova (prova2.c).
7 aprile 2005
Controllo sul valore di un'espressione; comandi di controllo di flusso (if..else..) e di ciclo (ciclo incondiazionato for, ciclo condizionato while).
Uso dell'editor emacs.
Libreria matematica (math.h)
Implementazione dell'algoritmo di conversione di un numero dalla rappresentazione decimale a quella binaria.
Codici sorgenti C (dec2bin.c, dec2bin2.c, dec2bin3.c, dec2bin4.c) per la conversione della rappresentazione di un numero da decimale a binario.
13 aprile 2005
I tipi in C: int, float, double, char ecc.
Rappresentazione dei numeri reali in virgola mobile
Visualizzazione dei limiti di rappresentazione per i vari tipi.
NPR 1.3.
Codice sorgente C (limiti.c) per la visualizzazione dei limiti di rappresentazione per diversi tipi di C.

14 aprile 2005
Uso di software editor formattato di testi (OpenOffice Write).
Esercitazione di riepilogo sul linguaggio C.
Successioni definite per ricorrenza; implementazione dell'algoritmo di calcolo del fattoriale di un numero.
Testo dell'esercitazione proposta.
Codice sorgente C (factor.c) per il calcolo del fattoriale di un numero intero.
20 aprile 2005
Introduzione a MATLAB; uso di MATLAB come calcolatrice da finestra di comando.
Scalari, vettori, matrici e loro immissione elementare.
Visualizzazione in MATLAB mediante il comando fprintf: confronto con l'analogo in C. Operazioni fra scalari e vettori, operazioni elemento per elemento.
NPR 1.2.1-4, 1.2.9
Script MATLAB (primofile.m) con i principali comandi usati.
21 aprile 2005
Script e funzioni in MATLAB: chiamata di function files, input e output; funzione per il calcolo di una successione. Controllo di flusso e ciclo in MATLAB.
Uso di comandi per vettori o matrici speciali; uso di who, whos, lookfor per ottenere informazioni.
NPR 1.2.5-8.
Script MATLAB (lez21apr05.m) con i principali argomenti trattati.
27 aprile 2005
Calcolo della media dei valori di un vettore; dettaglio nell'uso degli operatori booleani.
Uso della funzione plot; comando switch... case... end; break; return. Stampa (a schermo) di una tabella formattata di valori e suo salvataggio in un file.
NPR 1.2.5, 1.2.8-9.
Script MATLAB (lez27apr05.m) con i principali comandi eseguiti.
28 aprile 2005
Rappresentazione di funzioni in due variabili; superficie grafico e curve di livello.
Creazione di grafici e sottografici; grafici tridimensionali. Uso di subplot, meshgrid, surf, contour.
NPR 1.2.5, 1.2.8.
Script MATLAB (lez28apr05.m) con i principali comandi eseguiti.
4 maggio 2005
Errori assoluti e relativi; arrotondamento e troncamento. Precisione macchina e errori connessi. Approssimazione di Stirling per il calcolo del fattoriale, calcolo degli errori commessi utilizzando l'approssimazione rispetto al valore vero di n!.
NPR 1.4.1-2.
Script MATLAB (lez4mag05.m) con i principali comandi eseguiti nella lezione odierna e in quella successiva.
5 maggio 2005
Ordine di accuratezza; propagazione dell'errore; differenziazione numerica.
Approssimazione del numero e mediante successione; approssimazione di &pi (pi greco) mediante algoritmo di Archimede: stima dell'ordine di accuratezza della successione.
NPR 1.4.2-4.
11 maggio 2005
Derivazione numerica: formula del secondo ordine, stima per la determinazione del passo ottimale. Script per il test dell'ordine di accuratezza.
NPR 1.4.2-4.
Funzioni MATLAB (testder2.m, sinfindiff2.m, sinfindiff3.m); si noti la differenza di formato di output.
12 maggio 2005
Ricerca di zeri di una funzione mediante metodo di bisezione.
Implementazione di un algoritmo di ricerca  delle radici di una funzione mediante il metodo di bisezione. Uso di inline e fcnchk.
NPR 4.1, 4.2.1.
La funzione MATLAB bisezione_2.m per la ricerca di soluzioni tramite il metodo di bisezione.
18 maggio 2005
Metodo di Newton per la ricerca delle radici di una funzione. Script per la verifica numerica della convergenza per la successione approssimante la radice di una funzione costruita mediante metodo di Newton (caso lineare e quadratico).
NPR 4.2.2.
Lo script convergenza_newton.m per la verifica numerica della convergenza della ricerca di radici semplici e doppie mediante l'algoritmo di Newton.
19 maggio 2005
Discussione sulla robustezza di un algoritmo e sulle possibilità di fallimento del metodo di Newton. Uso della funzione fzero; termine della costruzione di uno script per la verifica della convergenza.
NPR 4.2.2.
25 maggio 2005
Uso di fogli di calcolo per la manipolazione di tabelle di dati (OpenOffice Calc).
Risoluzione di un tema d'esame per il corso tenuto nell'anno accademico 2003-04.

Testo dell'appello del 16 giugno 2004.
26 maggio 2005
Uso di uno handle (@) per passare una funzione come argomento ad un'altra funzione; uso di più funzioni in un'unico file.
Test di convergenza per la ricerca di radici in una funzione parzialmente trascendente.
La funzione testfunc.m utilizzata durante l'esercitazione e lo script testscript.m che la utilizza; vedere anche lo script alternativo testscript2.m, che integra i due file.
1 giugno 2005
Riepilogo generale ed esercitazione di riepilogo (calcolo di sinh(x) mediante la definizione e stima dell'errore commesso nel calcolo usando il valore calcolato dalla funzione sinh di MATLAB come valore vero).
NPR Es. 1.14.