CALCOLO NUMERICO

Anno accademico 2023/2024 - Docente: Giovanni RUSSO

Risultati di apprendimento attesi

Il corso rappresenta una breve introduzione ai metodi numerici per la risoluzione di problemi di base. Indirizzato a studenti del secondo anno di Matematica, ha l'obiettivo di presentare alcune idee fondamentali dell'arte dell'approssimazione numerica, quali accuratezza, robustezza ed efficienza dei metodi, e le tecniche fondamentali per la soluzione di sistemi lineari, interpolazione e approssimazione di funzioni, soluzione di equazioni non lineari e calcolo di integrali. Durante il corso viene fornita un'introduzione all'uso di Matlab per il calcolo numerico. Gli aspetti implementativi dei metodi saranno illustrati in parte durante il corso, ed in parte durante l'attività integrativa  pomeridiana (tutorato) legata al corso.

In maggiore dettaglio, vengono considerati i seguenti punti:   

Conoscenza e capacità di comprensione (knowledge and understanding): uno degli obiettivi fondamentali del corso è l'apprendimento delle metodologie di base per la risoluzione numerica di alcuni problemi di matematica quali la soluzione di sistemi lineari, l'approssimazione di dati e funzioni, la soluzione di equazioni non lineari, l'approssimazione di integrali. Si mira ad una comprensione attiva e critica della disciplina, non limitata al mero apprendimento delle metodologie, ma anche e soprattutto ad una profonda comprensione delle idee di base che permeano trasversalmente le tecniche relative ai vari problemi considerati. 

Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): gli strumenti computazionali appresi dovranno essere padroneggiati ed applicati a problemi concreti. La verifica dell'apprendimento e della comprensione delle metodologie, infatti, si può effettuare solamente mediante l'applicazione pratica delle stesse a svariati problemi che vengono in parte assegnati per casa ed in parte svolti in classe.    

Autonomia di giudizio (making judgments): gli studenti devono essere in grado di confrontare i diversi metodi appresi durante il corso, e capire quale sia il più indicato per svolgere un particolare problema, tenendo presente sia le caratteristiche del problema stesso (o della classe di problemi che si intende affrontare) sia le risorse disponibili o che si decide di impiegare (problema della efficienza computazionale)

Abilità comunicative (communication skills): i ragazzi sono invitati ad esporre con chiarezza gli argomenti trattati durante il colloquio orale, e ad illustrare esplicitamente i vari passaggi nella soluzione dei problemi. Anche a livello di programmazione, la chiarezza della scrittura dei codici è tenuta in conto nella valutazione degli elaborati. 

Capacità di apprendimento (learning skills): l'apprendimento viene stimolato già durante le lezioni frontali mediante domande dirette da parte del docente. Tali domande hanno il triplice scopo di richiamare l'attenzione del discente, costringerlo a pensare rapidamente ad una risposta, e sondare il livello della classe, in modo da poter meglio regolare i ritmi della esposizione del docente, o da identificare ed affrontare insieme eventuali criticità. 

Modalità di svolgimento dell'insegnamento

L'attività didattica consiste principalmente in lezioni frontali tenute dal docente, durante le quali vengono presentati gli argomenti del corso.

Le lezioni saranno in presenza, oppure in modalità mista o a distanza, a seconda di quanto consentito dalle misure di contenimento della pandemia, e nel rispetto della sicurezza degli studenti e del docente.

Durante le lezioni  verranno esposti gli argomenti del corso. Durante le ore di lezione il docente illustrerà implementazioni in Python di alcuni dei metodi esposti a lezione. Il corso è complementato da attività integrative di tutorato.

Si invitano gli studenti a chiarire eventuali dubbi durante la lezione o durante l'orario di ricevimento. Meglio chiarire i dubbi prima dell'esame piuttosto che dopo. 

 NOTA BENE: Informazioni per studenti con disabilità e/o DSA

A garanzia di pari opportunità e nel rispetto delle leggi vigenti, gli studenti interessati possono chiedere un colloquio personale in modo da programmare eventuali misure compensative e/o dispensative, in base agli obiettivi didattici ed alle specifiche esigenze.

E' possibile rivolgersi anche al docente referente CInAP (Centro per l’integrazione Attiva e Partecipata - Servizi per le Disabilità e/o i DSA) del nostro Dipartimento, prof. Filippo Stanco

Prerequisiti richiesti

Viene richiesta una conoscenza dei concetti elementari di analisi (numeri reali e complessi, limiti, derivate e integrali di funzioni di una variabile, funzioni di più variabili, serie) e di algebra lineare (spazi vettoriali, algebra delle matrici). Per poter sostenere l'esame è consigliabile aver già superato Analisi 1 e Geometria 1.

Frequenza lezioni

La frequenza a lezione è di fondamentale importanza per la comprensione dei concetti di base del corso. Non c'è uno stretto obbligo di frequenza (non viene presa la presenza), ma la frequenza è fortemente consigliata. Si auspica una attiva partecipazione attiva in classe: un maggiore coinvolgimento da parte degli studenti facilita l'assimilazione della materia. Collaborazioni fra studenti nello studio della materia sono consigliate. 

Contenuti del corso

Introduzione all'uso del calcolatore.

Introduzione all'uso del linguaggio Python. Enthought Canopy. Variabili ed istruzioni elementari. Cicli. Strutture dati. Moduli. Uso dei pacchetti matplotlib e numpy.

Rappresentazione in virgola mobile. I numeri di macchina. Troncamento ed arrotondamento. Operazioni di macchina. Cancellazione numerica. Ordine di accuratezza.

Algebra lineare numerica.

Richiami di algebra lineare: vettori, matrici, determinanti, matrice inversa. Norme di vettore e norme di matrice. Norme naturali e loro rappresentazione. Autovalori. Raggio spettrale e sue proprietà. Alcune matrici particolari. Metodi diretti per la risoluzione dei sistemi lineari: sistemi triangolari, metodo di eliminazione di Gauss, pivoting. Fattorizzazioni A=LU e PA=LU. Metodi compatti, fattorizzazione di Choleski e loro implementazione in python. Condizionamento di un sistema lineare. Numeri di condizionamento. Matrici sparse e loro rappresentazione. Autovalori ed autovettori: richiami. Metodi iterativi per la soluzione di sistemi lineari: metodi di Jacobi, metodo di Gauss-Siedel e metodo SOR. Criteri d'arresto. Metodi per punti e per blocchi (cenni). Decomposizione in valori singolari (cenni). Localizzazione degli autovalori: i teoremi di Gershgorin-Hadamard. Calcolo degli autovalori: il metodo delle potenze, ed il metodo delle potenze inverse.  

Approssimazione di funzioni e dati.

Interpolazione polinomiale. Forma di Lagrange. Operatore lineare di interpolazione. Calcolo del polinomi di interpolazione. Formula di Newton delle differenze divise. Il resto dell'interpolazione. Polinomi di Chebyshev: formula ricorsiva, zeri, proprietà di minima norma.  Teorema di Weierstrass sulla approssimazione di una funzione continua mediante polinomi (enunciato). Polinomi di Bernstein. Problema della convergenza di una successione di schemi interpolatori. Interpolazione mediante polinomi a tratti. Funzioni spline. Calcolo delle spline cubiche. Metodo dei minimi quadrati e applicazioni. Equazioni normali e loro interpretazione geometrica.

Soluzione di equazioni non lineari.

Concetti generali. Metodi di bisezione, delle secanti e di Newton. Teoria generale dei metodi iterativi per equazioni non lineari e problemi di punto fisso. Ordine di convergenza. Criteri d'arresto. Metodo di Aitken per metodi di ordine di convergenza uno e due.

Formule di quadratura.

Integrali pesati. Forma generale di una formula di quadratura. Ordine polinomiale. Formule interpolatorie. Teorema di convergenza. Formule di Newton-Cotes. Formule Gaussiane. Formule composite: trapezi e Simpson. Metodo di Romberg. Quadratura adattiva (cenni).

Nota bene. Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.
 

Testi di riferimento

Libri consigliati:

Il libro di testo consigliato per il corso di Calcolo Numerico è il seguente:

G.Naldi, L.Pareschi, G.Russo, Introduzione al calcolo scientifico, McGraw-Hill, 2001.

Ulteriori approfondimenti si trovano sui testi:

  • V.Comincioli, Analisi Numerica: metodi, modelli, applicazioni, McGraw-Hill, Milano, 1990.
  • G. Monegato, Calcolo Numerico, Levrotto e Bella, Torino, 1985.
  • A. Quarteroni, R. Sacco, F. Saleri, Matematica Numerica, Springer Italia, Milano, 1998.

Programmazione del corso

 ArgomentiRiferimenti testi
1Introduzione all'uso del calcolatore. Introduzione all'uso del linguaggio Python. Enthought Canopy. Variabili ed istruzioni elementari. Cicli. Strutture dati. Moduli. Uso dei pacchetti matplotlib e numpy.Un'ampia documentazione su Python si trova sia on line che su carta. Si consulti il sito: http://www.python.it/doc/libri/
2Rappresentazione in virgola mobile. I numeri di macchina. Troncamento ed arrotondamento. Operazioni di macchina. Cancellazione numerica. Ordine di accuratezza.G.Naldi, L.Pareschi, G.Russo, Introduzione al calcolo scientifico, McGraw-Hill, 2001.
3Algebra lineare numerica. Richiami di algebra lineare: vettori, matrici, determinanti, matrice inversa. Norme di vettore e norme di matrice. Norme naturali e loro rappresentazione. Autovalori. Raggio spettrale e sue proprietà. Alcune matrici particolari.
4Metodi diretti per la risoluzione dei sistemi lineari: sistemi triangolari, metodo di eliminazione di Gauss, pivoting. Fattorizzazioni A=LU e PA=LU.
5Metodi compatti, fattorizzazione di Choleski e loro implementazione in python. Condizionamento di un sistema lineare. Numeri di condizionamento. Matrici sparse e loro rappresentazione.
6Metodi iterativi per la soluzione di sistemi lineari: metodi di Jacobi, metodo di Gauss-Siedel e metodo SOR. Criteri d'arresto.
7Metodi iterativi per punti e per blocchi (cenni). Decomposizione in valori singolari (cenni).
8 Autovalori ed autovettori: richiami. Localizzazione degli autovalori: i teoremi di Gershgorin-Hadamard. Calcolo degli autovalori: il metodo delle potenze, ed il metodo delle potenze inverse.
9Approssimazione di funzioni e dati. Interpolazione polinomiale. Forma di Lagrange. Operatore lineare di interpolazione. Calcolo del polinomi di interpolazione. Formula di Newton delle differenze divise.
10Il resto dell'interpolazione nelle forme di Lagrange e di Newton.
11Polinomi di Chebyshev: formula ricorsiva, zeri, proprietà di minima norma.
12Teorema di Weierstrass sulla approssimazione di una funzione continua mediante polinomi (enunciato).
13Polinomi di Bernstein. Problema della convergenza di una successione di schemi interpolatori.
14 Interpolazione mediante polinomi a tratti. Funzioni spline.
15Calcolo delle spline cubiche.
16Metodo dei minimi quadrati e applicazioni. Equazioni normali e loro interpretazione geometrica.
17Soluzione di equazioni non lineari. Concetti generali. Metodi di bisezione, delle secanti e di Newton. Teoria generale dei metodi iterativi per equazioni non lineari e problemi di punto fisso. Ordine di convergenza. Criteri d'arresto.
18Metodo di Aitken per metodi di ordine di convergenza uno e due.
19Formule di quadratura. Integrali pesati. Forma generale di una formula di quadratura. Ordine polinomiale. Formule interpolatorie.
20Teorema di convergenza. Formule di Newton-Cotes. Formule Gaussiane.
21Formule composite: trapezi e Simpson.
22Metodo di Romberg. Quadratura adattiva (cenni).

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

L'esame consiste in una prova pratica ed una prova orale. 

Si può accedere all'esame orale solo dopo il superamento della prova pratica. 

La prova pratica consiste nella risoluzione al calcolatore di alcuni esercizi proposti entro un tempo stabilito dal docente e comunque non superiore alle tre ore. 

Il superamento della prova pratica permette di accedere alla prova orale nella stessa sessione o anche in una sessione successiva, nell'arco di un anno. 

La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.

Esempi di domande e/o esercizi frequenti

Le prove scritte assegnate in alcuni precedenti appelli possono essere trovate ai seguenti indirizzi:

The written tests assigned in previous exam sessions can be found at the following addresses:

https://www.dropbox.com/sh/h720qqrnmx62xu2/AAACD3ltNQDU4Q14grvfpVF5a?dl=0

https://www.dropbox.com/sh/gsjcncqfik0yjge/AABUa4NxEgnHT6gfzsb5Txena?dl=0