Questo sito contribuisce alla audience di

Laboratorio Computazionale Numerico

Il materiale didattico del corso Laboratorio Computazionale Numerico a cura del Prof. Bruno Iannazzo dell'Università di Pisa

SOMMARIO

Lucidi introduttivi - prima parte (pdf). Una breve introduzione ai comandi
shell necessari a compilare ed eseguire programmi Fortran e una introduzione ai
principali costrutti del linguaggio Fortran.

Lucidi introduttivi - seconda parte (pdf). La seconda parte dell’introduzione
al Fortran con un richiamo dei principali costrutti riguardanti subroutine e
funzioni, tipi strutturati e utilizzo di file esterni.

Alcuni soluzioni degli esercizi tratte dai testi d’esame (che trovate su
questa pagina).

esami0102.f90 Gli esercizi degli appelli dell’anno accademico 2001-02.

esami0405.f90 Gli esercizi degli appelli dell’anno accademico 2004-05, in un
programma funzionante.

Argomenti e programmi svolti a lezione
ciao.f90 - Il primo programma.
Scrive su output “Ciao mondo!” o quasi.

gamma.f90 - Approssima la costante gamma di Eulero-Mascheroni con la serie
armonica troncata. L’esecuzione mette in evidenza il fatto che avere una formula
non basta per approssimare in modo soddisfacente una quantita. Lucidi (pdf).

exp.f90 - Un programma che calcola il valore numerico di exp(x) con due
algoritmi differenti. Evidenzia l’importanza della scelta del metodo di
valutazione in aritmetica finita. Lucidi (pdf).

laplace.f90 - Un programma che calcola il determinante di una matrice
quadrata tramite la regola di Laplace. Esempio di algoritmo ad alto costo
computazionale. Lucidi (pdf).

triangolare.f90 - Un programma che calcola la soluzione di un sistema
triangolare inferiore (o superiore e verifica l’accuratezza della soluzione.
Lucidi (pdf).

pagerank.f90 - Un programma che preleva dal file matrice.ful la matrice
associata a una rete e ne calcola il pagerank (autovettore destro normalizzato)
con il metodo delle potenze.
Data una rete si associa ad ogni pagina un
numero intero positivo e si costruisce una matrice i cui indici di riga e
colonna sono le pagine, la matrice avra` 1 nell’elemento (i,j) se la pagina i ha
un link verso la pagina j, il resto degli elementi è nullo. Lucidi (pdf).

pagerank_s.f90 - Un programma che preleva dal file matrice.spa la matrice
associata a una rete e ne calcola il pagerank (autovettore destro normalizzato)
con il metodo delle potenze.
La matrice sparsa è realizzata mediante un
vettore di caselle e ciascuna casella è contiene tre campi: gli indici di riga e
colonna e il valore.

julia.f90 - Un programma che permette di visualizzare l’insieme di Julia
“pieno” relativo all’iterazione razionale x_k=x_k^2+c al variare del punto
iniziale. L’immagine viene scritta in formato testo .pnm . Tra i parametri del
programma c’è la risoluzione dell’immagine, il punto centrale, il lato e il
valore di c.
Lucidi (pdf).

mandelbrot.f90 - Un programma che permette di visualizzare l’insieme di
Mandelbrot, cioè l’insieme dei punti c del piano complesso tali che l’orbita di
0 attraverso l’iterazione x_k=x_k^2+c non tenda a infinito. Lucidi (pdf).

zeri.f90 - Implementazione di alcuni semplici metodi numerici per la
risoluzione di un’equazione polinomiale.
Il polinomio viene letto da un file
esterno pol.dat, che contiene il grado e i coefficienti a partire dal termine
noto, nel nostro esempio x^2=2.
Sono implementati i metodi di bisezione,
secanti, Newton e Halley. I risultati sono in quadrupla precisione per
apprezzare meglio l’ordine di convergenza del metodo. La valutazione del
polinomio e delle sue derivate è effettuata in modo efficiente mediante il
metodo di Horner. Lucidi (pdf).

jgs.f90 - Un programma che implementa i metodi di Jacobi e Gauss-Seidel
tramite due subroutine.
Il programma principale dà la possibilit&agrve;
di scegliere tra 4 esempi in cui i due metodi si comportano in modo diverso.
Lucidi (pdf).

aberth.f90 - Implementazione del metodo di Aberth per l’approssimazione
simultanea di tutti gli zeri di un polinomio. Il punto iniziale sono le radici
dell’unità ruotate di un piccolo angolo e il polinomio test è x^n-1. Lucidi
(pdf).

strassen.f90 - Implementazione del metodo di Strassen per il calcolo del
prodotto tra due matrici con un costo computazionale dell’ordine di O(n^(log_2
7)) anziché O(n^3) che è il costo dell’algoritmo tradizionale (prodotto righe
per colonne).
Vengono effettuati confronti tra i due metodi che evidenziano
un vantaggio, in termini di tempo di esecuzione, per il metodo più costoso in
termini di costo asintotico (questo è dovuto al fatto che il tempo di esecuzione
non è proporzionale al numero di operazioni aritmetiche elementari, ma è
influenzato anche da tutte le operazioni di contorno, come la gestione della
memoria). Lucidi (pdf).
stereogrammi.f90 - Il programma genera uno
stereogramma (immagine percepita come tridimensionale) a partire da un file
contenente le profondità dei singoli punti. Lucidi (pdf).
Alcuni files di
input sono:
conoellittico.dat Genera un piccolo cono ellittico in un punto
dello schermo
mandelbrot.dat Genera un insieme di Mandelbrot tridimensionale

PER CONSULTARE LA RISORSA CLICCARE SUL LINK SEGUENTE:

Laboratorio
Computazionale Numerico