Programma del corso
(così com'è scritto
sulla guida dello studente)
Obiettivo: approfondimento della tecnica di programmazione in
linguaggio C, finalizzata al Calcolo Scientifico.
Il corso è prevalentemente dedicato alle esercitazioni pratiche
con uso del computer, nelle quali vengono sviluppati dei programmi di
calcolo relativi ad alcuni argomenti trattati nei corsi di Analisi
e di Geometria; inoltre, vengono introdotte alcune nozioni elementari di
Analisi Numerica.
Programma dettagliato del corso
(come svolto durante l'anno accademico 2011/'12)
Richiami di Informatica e di Programmazione in
linguaggio C
Struttura di un calcolatore (cenni); struttura fisico/logica dei
dischi(cenni); introduzione all'uso di Linux (cenni); istruzioni
elementari di Input/Output; tests: costrutto
if-else, espressioni logiche; cicli: for,
while, do-while; functions: passaggio delle
variabili in argomento per valore e per indirizzo, funzioni
ricorsive, puntatori alle funzioni; il preprocessore: la direttiva
define; array: vettori, matrici, vettori e matrici come
argomenti delle functions; operazioni di Input/Output su files: le
istruzioni/funzioni fopen, fclose, fscanf,
fprintf, fgets, sscanf, strchr,
strstr.
Brevissima introduzione all'utilizzo del software grafico
gnuplot.
Nozioni elementari di Analisi Numerica e Calcolo
Scientifico
Rappresentazione sul calcolatore dei numeri interi e di quelli in
virgola mobile; errore di macchina; conversione dalla
rappresentazione decimale alla binaria e viceversa; calcolo delle
operazioni aritmetiche +, -, x e / per mezzo di operazioni
(logiche) elementari; calcolo della radice quadrata con un
procedimento iterativo "alla Newton".
NOTA METODOLOGICA: tutti gli argomenti che seguono, quando
vengono tradotti in un algoritmo di calcolo e in un programma
(in qualsiasi linguaggio) vengono abitualmente considerati
tra i contenuti tradizionali dei corsi base di Analisi Numerica.
La trattazione che ne è stata fatta all'interno di questo
corso è stata necessariamente breve e sbrigativa, comunque,
laddove è stato possibile, sono stati discussi concetti
come: la convergenza di un algoritmo al risultato finale,
l'ordine di approssimazione dell'errore, la complessità
computazionale di un algoritmo, etc.
Argomenti relativi all'Analisi Matematica
Calcolo approssimato del valore di una funzione per mezzo della
sua espansione in serie; soluzione di un'equazione del tipo
f(x)=0 con il metodo di bisezione; calcolo di integrali definiti
tramite il metodo del punto medio.
Argomenti relativi all'Algebra Lineare
Creazione
di matrici ortogonali tramite prodotto di rotazioni e test di
ortogonalità delle matrici; calcolo del determinante di una
matrice con il metodo di Laplace; soluzione di un sistema di
equazioni lineari: metodo di Cramer; determinazione degli
autovalori e dei corrispondenti autovettori in condizioni
particolarmente "semplici": metodo delle potenze, metodo delle
potenze inverse e cenni al primo e secondo teorema di Gershgorin.