Una lunga lista per un semestre intenso
Published: 09:56, Friday 18 December 2009
This page is not available in english. The current version is in italian.

Prima di partire da Zurigo per fare niente (soprattutto per quel che riguarda studio e pc) per qualche settimana, voglio documentare gli argomenti trattati durante questo semestre.

Matematica discreta

Diskrete Mathematik, con prof. U. Maurer.

Questa materia, trattata in modo pedagogicamente eccellente dal prof, è stata anche quella che mi ha entusiasmato di più. Soprattutto ad essa è dedicato il mio articolo Abstraction love. Io l'ho percepita come quella parte della matematica che funge da base per la matematica intera, senza la quale non si potrebbe neanche cominciare a trattare matematica (come lo si fa oggi).

Il primo argomento è stato introduzione alla logica, dove abbiamo visto concetti come una dimostrazione, simboli logici, tabelle di verità. Come detto avevo già approfondito questo argomento nel mio lavoro di maturità, quindi non mi sono trovato in difficoltà.

È seguito un capitolo su insiemi, relazioni e funzioni, concetti archetipici della matematica, su cui si basa tutto il resto (le relazioni e le funzioni stesse - e aggiungerei le operazioni - non sono che un tipo particolare di insiemi di insiemi). Anche qui gli eserzi prevedevano soprattutto la dimostrazione di teoremi e proposizioni relative a certe proprietà di certi insiemi o certe relazioni ecc.

Combinatoria è stata un capitolo breve. Dopo aver introdotto gli insiemi, si trattava si sapere calcolare la loro cardinalità (il numero di elementi) a partire dalla loro definizione. Classico è il problema di trovare la quantità di possibilità di selezionare k elementi da un insieme di n elementi, un problema che ha diverse soluzioni a dipendenza che si tenga o meno in considerazione l'ordine della selezione e la possibilità o meno di selezionare un elemento più volte. Abbiamo anche introdotto il concetto di incontabilità: alcuni insiemi hanno elementi finiti, altri elementi infiniti ma contabili, e altri ancora incontabili (un tipo ancora "superiore" di infinità).

Nel capitolo teoria dei grafi abbiamo introdotto il concetto di grafo (un insieme di "vertici", connessi a coppie da dei "lati"). I grafi possono essere rappresentati graficamente, e di essi si possono dimostrare delle proprietà (come la planarità, cioè la possibilità di disegnare un grafo senza incrociare due linee) che permettono di capire meglio il problema che definiscono. Esempi tipici di grafi sono gli alberi che rappresentano una gerarchia.

La difficoltà della materia è aumentata rapidamente con Teoria dei numeri, dove ci si occupa di definire gli assiomi relativi ai numeri (interi) e di dimostrare tutto ciò che li riguarda utilizzando solo utilizzando gli assiomi stessi o teoremi già dimostrati. A questo livello ad esempio è necessario dimostrare che 0 < 1, oppure che 0*a = 0 e via cosi. Difficile è quando ci si occupa di divisibilità e massimo comune divisore, perche qui cominciano a entrare in gioco i numeri primi, l'aritmetica modulare e altre chicche.

Verso le stelle si è partiti veramente con Algebra, dove i ragionamenti che prima riguardavano i numeri ad un tratto si applicavano a qualcosa di più astratto: a delle "strutture" (o, appunto, delle algebre), cioè, che avevano delle "proprietà" da cui dedurre dei teoremi che poi valevano per tutte le strutture dello stesso tipo. I numeri interi diventavano così un anello (un tipo di algebra), al posto che di + si parlava di "un'operazione associativa *", al posto di 0 si diceva "l'elemento neutro e", al posto di 2 - 2 si scriveva a * â dove â è "l'elemento inverso" di a. I tipi di algebra che abbiamo visto sono: gruppi, anelli, dominï d'integrità, campi. Interessanti per l'informatica (in particolare per la crittografia) sono i campi finiti. Ad accompagnarci come "esempi pratici" sono stati sempre i numeri interi ed i polinomi.

Per concludere siamo tornati alla logica, ma descritta in modo ancora più formale: abbiamo definito che cosa sia una "logica", parlato della differenziazione di sintassi e semantica, di formule logiche, equivalenza, soddisfacibilità e della possibilità o meno di dimostrare dei teoremi in modo totalmente automatico.

Analisi I

Analysis I, con prof. M. Struwe

Prima parte del corso di analisi (la seconda mi attende nel prossimo semestre). Fondamentalmente si è trattato di un ripasso (anche se ben più approfondito) della matematica da quarta liceo.

Abbiamo cominciato con una veloce ripetizione delle nozioni base, come logica, insiemi, funzioni, numeri reali e complessi, supremum e infimum. Scopo: portare tutti allo stesso livello di partenza (cosa comunque praticamente impossibile).

È seguito un lungo capitolo su successioni e serie di numeri, dove abbiamo introdotto il concetto fondamentale dell'analisi: il limite. Gli esercizi hanno messo molto peso sui criteri di convergenza delle successioni.

In seguito abbiamo trattato la Continuità di funzioni, un tema che ci ha lanciati nella topologia del mondo "reale" (cioè dei numeri reali ^^) e ha messo le basi per il capitolo successivo.

L'ultimo tema trattato in questo semestre è stato il calcolo differenziale, con tutto quello che gli appartiene: derivata, Teorema di Lagrange, derivate di funzioni trigonometriche, Taylor, equazioni differenziali. L'integrazione mi aspetta a febbraio.

Algebra lineare

Lineare Algebra, con prof. D. Kressner e prof. M. Pollefeys

Un po' ostica all'inizio, dopo un po' come materia ha cominciato a piacermi. Ancora una volta per una disciplina pur matematica era necessario tutto un altro modo di pensare.

L'idea di partenza è stata trovare un modo più efficiente di risolvere un sistema di equazioni lineari a più variabili, applicando il metodo di eliminazione di Gauss alla matrice rappresentativa del sistema (la cosiddetta Decomposizione LU. Con l'introduzione del concetto di matrice però avevamo aperto la strada ad altri metodi di risoluzione per casi particolari (come la Decomposizione di Choleski per matrici hermitiane o simmetriche).

Io mi spiego i problemi dell'algebra lineare in questo modo: per risolvere un problema lineare spesso è necessario trovare l'inverso di un elemento (nel caso delle matrici: la matrice inversa), il che non è sempre possibile, e quando possibile molto difficile. Per questo si sono inventati tutti questi sistemi per rendere più efficiente la ricerca.

Abbiamo introdotto gli Spazi vettoriali (come ad esempio il nostro spazio tridimensionale), gli spazi vettoriali con prodotto scalare e gli spazi normati (di cui gli spazi vettoriali con prodotto scalare sono un sottoinsieme). La particolarità di uno spazio vettoriale è che vi si possono applicare delle funzioni lineari, che possono essere rappresentate come matrici. "Leggendo" le proprietà di queste matrici si possono poi dedurre delle proprietà di queste funzioni e di quello che "fanno", insomma, allo spazio vettoriale (ad esempio: lo ruotano, lo allungano, lo proiettano su un piano ecc.).

Quando un'equazione lineare non può essere risolto (cioè quando di una matrice non si trova l'inversa, il che nella pratica è molto comune), si trova un'approssimazione relativa a ciò che interessa. Per fare questo abbiamo visto la Decomposizione QR.

Molte delle proprietà importanti di una matrice possono essere determinate conoscendone gli autovettori e gli autovalori. Abbiamo visto come questi si ricavano e come questi possono aiutarci per risolvere equazioni differenziali (unendosi così al tema trattato nello stesso periodo in analisi). Per concludere abbiamo visto la decomposizione agli autovalori e la decomposizione ai valori singolari.

Introduzione alla programmazione

Introduction to programming, con prof. B. Meyer

Di questa materia mi sono piaciuti particolarmente gli esercizi, e l'introduzione al linguaggio di programmazione eiffel, che sarà poco usato nella vita pratica, ma è stat un ottimo esempio di chiarezza e coerenza.

L'approccio delle lezioni è stato completamente orientato agli oggetti. Infatti abbiamo cominciato da subito a parlare di interazione cogli oggetti, creazione di oggetti, referenze, interfacce, strutture di un oggetto.

Solo dopo abbiamo introdotto le strutture di controllo dell'algoritmo del programma (if e for - in eiffel: "from").

Abbiamo poi toccato altri temi come ereditarietà e genericità di classi, ricorsione, strutture dati, "topological sort".

Interessanti sono stati gli agents, cioè la possibilità di passare delle funzioni come variabili, una cosa alquanto inconsueta e potente soprattutto nell'ambito del design basato sugli eventi (perché forniscono una soluzione immediata al problema al quale viene di solito applicato l' observer pattern).

Come compito conclusivo abbiamo dovuto creare un gioco da tavola dove ho potuto per la prima volta creare un'interfaccia grafica, con tanto di semplicissime animazioni.

Write a Comment
Name:
*
Email:
Website:
If you are human write 'k':
*
Title:
*
Your comment:
*
* These fields are mandatory.
© Copyright 2009-2011 Nicola Marcacci Rossi