Università degli Studi di Cagliari Dipartimento di Matematica Dispense di Calcolo Numerico Giuseppe Rodriguez 2 Capitolo 1 Introduzione L’Analisi Numerica è lo studio degli algoritmi per i problemi della matematica del continuo. Questa definizione, data da L.N. Trefethen chiarisce quali sono gli obiettivi dell’Analisi Numerica, cioè sviluppare ed analizzare algoritmi (chiariremo in seguito il significato esatto di questo ed altri termini) per risolvere una particolare classe di problemi, e precisamente quelli che coinvolgono variabili reali o complesse. La particolarità della risoluzione di questi problemi consiste nel fatto che, nella generalità dei casi, è necessario operare su dati affetti da errori. Questi possono essere dovuti alla misurazione dei dati (errori sperimentali) o semplicemente al fatto che essi devono essere memorizzati con un numero finito di cifre (errori di arrotondamento). Se un problema è risolubile con un algoritmo finito, l’analisi si limita allo studio della propagazione degli errori. In molti casi, però, per necessità o convenienza si ricorre ad un algoritmo infinito, in cui la soluzione è ricavata come limite di una successione, o si discretizza un modello continuo, dando origine ad altri tipi di errori sui risultati: gli errori di troncamento e di discretizzazione. Cominciamo con l’introdurre alcuni concetti fondamentali. 1.1 Buona posizione e condizionamento Sempre più spesso la Matematica viene utilizzata per risolvere problemi di interesse per le scienze applicate. Talvolta si ha la necessità di prevedere l’esito di un fenomeno, in altri casi si vuole simulare l’andamento di un processo che, per qualche motivo, non si può osservare sperimentalmente. In ogni caso, il primo passo consiste nel costruire un modello matematico del fenomeno sotto studio, vale a dire un complesso di formule che descrivano 1–1 1–2 CAPITOLO 1. INTRODUZIONE il suo comportamento. Questo compito è tutt’altro che semplice e richiede una conoscenza profonda della Fisica che governa il fenomeno. Spesso le equazioni così ottenute sono troppo complicate per poter essere risolte direttamente. In questi casi si associa al modello matematico un problema numerico in cui viene introdotta qualche semplificazione o approssimazione, allo scopo di renderlo risolubile numericamente su un calcolatore. Nel 1924 J. Hadamard diede la seguente definizione di problema ben posto Definizione 1.1 Un problema è ben posto se esso possiede, in un prefissato campo di definizione, una e una sola soluzione e questa dipende con continuità dai dati. In caso contrario, viene detto mal posto. Esempio 1.1 Esempi di problemi mal posti: 1. Trovare x ∈ R che soddisfa l’equazione x2 + 1 = 0 (la soluzione non esiste). 2. Trovare x, y ∈ R che soddisfano l’equazione x + y = 1 (manca l’unicità). Quando il terzo requisito viene violato, quando cioè il problema è instabile, può accadere che una piccolissima perturbazione sui dati possa portare ad una soluzione molto differente da quella corrispondente ai dati esatti. Quest’ultima proprietà è particolarmente importante nelle applicazioni reali, in cui si ha che fare con dati misurati sperimentalmente e quindi affetti da errore. Per questo motivo, anche quando il problema è stabile si cerca di dare una misura quantitativa di come la sua soluzione venga influenzata da una perturbazione dei dati. Questa caratterizzazione viene detta condizionamento del problema. Definizione 1.2 Sia δd una perturbazione dei dati d di un problema e sia δx la corrispondente perturbazione sulla sua soluzione x. Sia inoltre k · k una qualsiasi norma vettoriale. Il numero di condizionamento assoluto K = K (d) è definito dalla relazione kδx k ≤ K kδdk, mentre il numero di condizionamento relativo (o, semplicemente, numero di condizionamento) κ = κ (d) verifica la diseguaglianza kδdk kδx k ≤κ . kxk kdk Il condizionamento misura, quindi, quanto un errore sui dati possa essere amplificato nei risultati. Osserviamo che la propagazione dell’errore dovuta ad un elevato condizionamento non dipende dal metodo utilizzato per la risoluzione del problema e quindi non è legata all’utilizzazione di un calcolatore elettronico, ma si verificherebbe anche se i calcoli venissero effettuati a mano. 1.2. ALGORITMI 1–3 Esempio 1.2 Calcoliamo il numero di condizionamento del prodotto tra due numeri x e y, introducendo una perturbazione su ciascuno di essi e studiandone la propagazione. Siano ε x e ε y tali che |ε x |, |ε y | ≤ τ . Tralasciando gli infinitesimi di ordine superiore, si ha x (1 + ε x ) · y(1 + ε y ) ' xy(1 + ε x + ε y ). La perturbazione relativa ε xy = ε x + ε y sul prodotto verifica la diseguaglianza ε xy ≤ 2τ , di conseguenza il numero di condizionamento è 2. Questo valore è decisamente soddisfacente perché indica che nel peggiore dei casi gli errori presenti sugli operandi si sommeranno tra loro. Potrebbe quindi verificarsi un accumulo eccessivo solo nel prodotto di molti fattori. 1.2 Algoritmi Definizione 1.3 Un algoritmo è una sequenza univoca di un numero finito di operazioni elementari che stabilisce come calcolare la soluzione di un problema, assegnati certi dati iniziali. Sottolineiamo l’importanza di alcune parole presenti nella definizione: sequenza univoca non è sufficiente dare una formula, deve essere chiaro anche in che ordine bisogna eseguire le operazioni; operazioni elementari si tratta di una nozione relativa, devono essere elementari, cioè di semplice comprensione, per chi leggerà l’algoritmo; numero finito se l’algoritmo è iterativo deve essere fornito un criterio di arresto; input/output deve essere chiaro il numero ed il tipo dei dati richiesti dall’algoritmo e di quelli da esso generati. Gli algoritmi vengono generalmente rappresentati mediante mappe strutturali, una sorta di programmi scritti utilizzando uno pseudo-codice molto simile al linguaggio di programmazione Pascal. Non è necessario utilizzare regole sintattiche ferree per la loro stesura, è sufficiente essere chiari e precisi. È anche consigliabile utilizzare solo le più comuni strutture di controllo del flusso (if , for , while e repeat) e non costrutti presenti solo in determinati linguaggi di programmazione, allo scopo di rendere possibile la comprensione dell’algoritmo anche a chi non conosce quel particolare linguaggio. In fase di effettiva implementazione, si potrà poi ottimizzare il codice per trarre vantaggio dalla sintassi del linguaggio che si è deciso di usare. Gli esempi che seguono illustrano un possibile stile per la descrizione degli algoritmi. 1–4 CAPITOLO 1. INTRODUZIONE Esempio 1.3 Calcolo del prodotto matrice per vettore y = Ax, A ∈ Rm × n , x ∈ Rn , y ∈ Rm . Segue la mappa strutturale dell’algoritmo: 1. input A, x, m, n 2. for i = 1, . . . , m 1. yi = 0 2. for j = 1, . . . , n 1. yi = yi + aij ∗ x j 3. output y Esempio 1.4 Approssimare il valore del numero di Nepero mediante lo sviluppo ∞ e= 1 ∑ k! , k =0 troncando la sommatoria quando il termine generico risulta essere minore di 10−8 . Uno dei possibili algoritmi è il seguente: 1. 2. 3. 4. k=0 a=1 e=a while a ≥ 10−8 1. k = k + 1 2. a = a/k 3. e = e + a 5. output e, k In uscita vengono forniti l’approssimazione di e, insieme al numero di iterazioni effettuate. Sarebbe stato possibile conoscere in anticipo il numero delle iterazioni necessarie per raggiungere la precisione richiesta? Un algoritmo serve a risolvere problemi, ma non tutti i problemi matematici sono effettivamente risolubili. La Definizione 1.1 potrebbe indurci a pensare che un problema risolubile coincida necessariamente con un problema ben posto e che questo sia l’unico tipo di problemi di nostro interesse. La realtà è molto più articolata. In primo luogo, esistono moltissimi problemi applicativi che vengono modellizzati mediante problemi mal posti e che esigono, comunque, un qualche tipo di soluzione. In secondo luogo, non è detto che un problema ben posto si possa risolvere in pratica, almeno quando assume determinate caratteristiche (dati imprecisi o dimensioni elevate). Per illustrare questo punto è necessario introdurre tre caratterizzazioni comunemente attribuite agli algoritmi numerici. 1.3. CARATTERIZZAZIONI DEGLI ALGORITMI 1.3 1–5 Caratterizzazioni degli algoritmi Abbiamo già detto che gli errori da cui sono affetti i dati possono subire un’amplificazione a causa del cattivo condizionamento di un problema. Ebbene, gli algoritmi hanno essi stessi la caratteristica di propagare in vario modo gli errori. Definizione 1.4 Definiamo stabile (risp. instabile) un algoritmo nel quale la successione delle operazioni non amplifica (risp. amplifica) eccessivamente gli errori presenti sui dati. Da questo punto di vista non avrebbe senso considerare risolubile un problema al quale, a causa della propagazione degli errori, siamo in grado di dare solo una soluzione inaccurata, o addirittura errata. Risulta cruciale, quindi, lo studio della propagazione degli errori e la ricerca di algoritmi stabili. Osserviamo che sviluppare un algoritmo stabile è possibile solo in presenza di problemi ben condizionati. In caso contrario è necessario prima stabilire se è possibile riformulare il problema in modo da ridurre il condizionamento e, di conseguenza, la propagazione degli errori da esso causata. Esempio 1.5 Spesso si verificano errori inaspettati anche in operazioni molto semplici. Provate, con una qualsiasi calcolatrice tascabile, a calcolare la quantità 3( 34 − 1) − 1. Il risultato dovrebbe essere 0, quello che troverete sarà un numero piccolo, ma non nullo (a meno che la vostra calcolatrice non “bari”!). Riuscite ad immaginare perché? Esercizio 1.1 Valutate su un computer il limite notevole lim x →0 1 − cos x x2 calcolando la funzione per valori sempre più piccoli della variabile, ad es. x = 10−1 , 10−2 , . . ., e dite se il risultato che otterrete è in accordo col valore del limite che avete studiato in Analisi Matematica. Riuscite a pensare a qualche altro modo di effettuare il calcolo? Ottenete risultati differenti? Definizione 1.5 La complessità computazionale di un algoritmo, per gli analisti numerici, è il numero delle operazioni in virgola mobile necessarie per risolvere un problema mediante l’algoritmo dato. Il fatto che questa definizione non coincida con quella generalmente utilizzata in Informatica, che invece tiene conto di tutte le operazioni effettuate, deriva dal fatto che l’Analisi Numerica studia algoritmi che coinvolgono variabili reali o complesse, e che in genere il tempo di calcolo richiesto dalle operazioni su queste variabili supera di gran lunga quello richiesto dalle altre istruzioni (operazioni su variabili intere, spostamento di blocchi di memoria, etc.). 1–6 CAPITOLO 1. INTRODUZIONE La complessità computazionale è proporzionale al tempo di calcolo, ma, a differenza da questo, non dipende dal particolare computer utilizzato. L’unità di misura è il flop (floating point operation = operazione in virgola mobile), ma spesso vengono utilizzati i suoi multipli (Kflop, Mflop, Gflop). In genere non interessa conoscere con esattezza la complessità computazionale di un algoritmo, ma ci si accontenta del suo ordine di grandezza rispetto alla dimensione n del problema, ad es. O( 13 n3 ) in luogo di 13 n3 + 2n2 + · · · . Esercizio 1.2 Determinare la complessità computazionale di alcuni dei più comuni calcoli che coinvolgono vettori e matrici: somma delle componenti, norma, prodotto scalare, prodotto matrice per vettore e matrice per matrice, etc. Talvolta il flop è utilizzato nella misura della velocità di elaborazione, spesso intesa nel calcolo scientifico come numero di operazioni in virgola mobile per secondo (flop/s, o semplicemente flops). Un moderno personal computer raggiunge velocità dell’ordine delle centinaia di Mflops. Per capire come la complessità computazionale di un algoritmo influenzi l’effettiva risolubilità di un problema, osserviamo la Tabella 1.1, dove sono riportati i tempi di calcolo, stimati su un calcolatore con la velocità di 100 Mflops, per la risoluzione di un sistema di n equazioni lineari in n incognite con il classico metodo di Cramer, calcolando i determinanti con la regola di Laplace, e mediante l’algoritmo di Gauss, che studieremo nei prossimi capitoli. È evidente che anche Tabella 1.1 Tempi di calcolo per la risoluzione di un sistema lineare n 12 13 14 20 30 40 50 Cramer + Laplace 23 minuti 6 ore 4 giorni 617175 anni 1.5 1020 anni 8.3 1035 anni 4.8 1052 anni Gauss 1.2 10−5 secondi 1.5 10−5 secondi 1.8 10−5 secondi 5.3 10−5 secondi 1.8 10−4 secondi 4.3 10−4 secondi 8.3 10−4 secondi un incremento di un fattore 1000 nella velocità del calcolatore non renderebbe l’algoritmo di Cramer praticamente utilizzabile, specie se si tiene conto che i sistemi lineari che si incontrano nelle applicazioni hanno dimensioni ben superiori a 50 (talvolta sono dell’ordine delle decine di migliaia di equazioni) e soprattutto che l’Universo ha un’età di 1010 anni! Esercizio 1.3 Vedremo che l’algoritmo di Gauss richiede O( 31 n3 ) addizioni ed altrettante moltiplicazioni per la risoluzione di un sistema di n equazioni. Qual’è la complessità del metodo di Cramer accoppiato alla regola di Laplace per il calcolo dei determinanti? 1.3. CARATTERIZZAZIONI DEGLI ALGORITMI 1–7 Un’altra caratteristica degli algoritmi, di fondamentale importanza per problemi di dimensione elevata, è l’occupazione di memoria da essi richiesta. Determinati problemi, in situazioni estreme, possono portare all’elaborazione di una tale mole di dati da rendere indispensabile l’uso di tecniche di memorizzazione particolarmente raffinate e, conseguentemente, l’adozione di algoritmi specializzati per la loro risoluzione. Quanto detto ci induce a considerare risolubile un problema ben posto e ben condizionato per il quale esista un algoritmo con caratteristiche di stabilità, complessità ed occupazione di memoria compatibili con la precisione richiesta, la dimensione del problema, le caratteristiche del calcolatore utilizzato ed il tempo di calcolo ammissibile per la sua soluzione. La Figura 1.1 riassume i vari passi che conducono dalla modellizzazione di un problema reale alla risoluzione del problema numerico ad esso associato ed all’analisi dei risultati ottenuti. Analisi: - stabilità - complessità computazionale - occupazione di memoria Problema di interesse per le scienze applicate Dati sperimentali Algoritmo di risoluzione modellizzazione eventuale pre−trattamento statistico Implementazione su calcolatore Problema numerico x n = Pn (dn ) eventuale semplificazione Modello matematico x = P(d) Analisi ed interpretazione dei risultati Analisi: - è ben condizionato? - xn x? - ... ? Analisi: - è ben posto? 1–8 CAPITOLO 1. INTRODUZIONE Figura 1.1 Risoluzione numerica di un problema reale Capitolo 2 Complementi di Algebra Lineare Nella Sezione 2.1 verranno richiamati alcuni concetti che dovrebbero essere già acquisiti dallo studente, e che comunque è indispensabile conoscere. Saranno invece trattati con maggiore dettaglio alcuni argomenti che probabilmente non sono ancora stati introdotti in altri corsi. 2.1 Richiami In questa sezione vengono richiamate definizioni e proprietà che dovrebbero già far parte del bagaglio culturale del lettore. 2.1.1 Spazi Definizione 2.1 Uno spazio lineare (o vettoriale) reale è un insieme V su cui sono definite due operazioni di somma e prodotto per uno scalare + : V × V −→ V (x, y) 7−→ x + y e · : R × V −→ V (α, x) 7−→ αx che, per ogni α, β ∈ R e x, y, z ∈ V , godono delle seguenti proprietà 1. x + y ∈ V (chiusura risp. somma) 2. αx ∈ V (chiusura risp. prodotto) 3. x + y = y + x (pr. commutativa) 4. (x + y) + z = x + (y + z) (pr. associativa) 2–1 2–2 CAPITOLO 2. COMPLEMENTI DI ALGEBRA LINEARE 5. esiste 0 ∈ V tale che x + 0 = x (elemento neutro) 6. esiste −x ∈ V tale che x + (−x) = 0 (inverso additivo) 7. α( βx) = (αβ)x (pr. associativa) 8. α(x + y) = αx + αy (pr. distributiva in V ) 9. (α + β)x = αx + βx (pr. distributiva in R) 10. 1x = x (elemento neutro) In uno spazio lineare complesso il campo degli scalari è costituito dall’insieme dei numeri complessi C. Chiameremo vettori gli elementi di uno spazio lineare. Un sottospazio è un sottoinsieme W ⊂ V che sia esso stesso un spazio lineare. Esempio 2.1 Seguono alcuni esempi di spazi lineari: 1. gli spazi Rn e Cn delle n-uple di numeri reali o complessi, con le consuete operazioni di somma componente per componente e di prodotto per uno scalare; 2. lo spazio C [ a, b] delle funzioni continue in un intervallo [ a, b]; 3. lo spazio L2 [ a, b] delle funzioni il cui quadrato è integrabile in [ a, b]; 4. lo spazio Πn dei polinomi di grado minore o uguale ad n. Osserviamo che Πn è un sottospazio di C [ a, b], che a sua volta è sottospazio di L2 [ a, b]. Esempio 2.2 L’insieme dei polinomi di grado pari a n non è uno spazio lineare. Perché? Si dice combinazione lineare dei vettori {x1 , . . . , xk } con coefficienti αi ∈ R, i = 1, . . . , k, il vettore x ∈ V dato da k x= ∑ αi xi , i =1 e il sottospazio generato dai vettori {x1 , . . . , xk } è costituito da tutte le loro combinazioni lineari ( span(x1 , . . . , xk ) := k x∈V:x= ∑ αi xi ) i =1 I vettori {x1 , . . . , xk } sono linearmente indipendenti se k ∑ αi xi = 0 i =1 ⇒ αi = 0, i = 1, . . . , k. . 2.1. RICHIAMI 2–3 Questa condizione è equivalente al fatto che nessuno dei vettori sia combinazione lineare degli altri. Una base è un insieme di vettori linearmente indipendenti tali che ogni vettore dello spazio possa essere espresso come loro combinazione lineare. La dimensione di uno spazio lineare è la cardinalità di una base. Uno spazio è a dimensione finita se esiste per esso una base finita. Esempio 2.3 Lo spazio Πn ha dimensione n + 1, dato che una base per esso è data dai monomi 1, x, x2 , . . . , x n (viene detta base canonica). Lo spazio C [ a, b], invece, è a dimensione infinita. Definizione 2.2 Uno spazio normato è uno spazio lineare su cui è definita una funzione k · k : V −→ R x 7−→ kxk detta norma, tale che per ogni x, y ∈ V e α ∈ R si abbia 1. kxk ≥ 0 e kxk = 0 ⇔ x = 0 (positività) 2. kαxk = |α| kxk (omogeneità) 3. kx + yk ≤ kxk + kyk (diseguaglianza triangolare) È immediato dimostrare che una norma verifica la seguente proprietà k x − y k ≥ k x k − k y k , ∀x, y ∈ V. (2.1) Uno spazio normato è anche uno spazio metrico, in cui la distanza tra due vettori è misurata mediante la funzione d(x, y) := kx − yk. Esempio 2.4 Lo spazio Rn può essere dotato di infinite norme. Tre delle più frequentemente utilizzate sono n k x k2 = ∑ xi2 ! 21 n k x k1 = , i =1 ∑ | x i |, kxk∞ = max | xi |. i =1,...,n i =1 La Figura 2.1 mostra la forma della sfera unitaria di R2 S : = x ∈ R2 : k x k = 1 relativamente alle tre norme introdotte. Gli spazi funzionali C [ a, b] e L2 [ a, b] vengono usualmente dotati delle norme k f k∞ = max | f ( x )|, f ∈ C [ a, b], x ∈[ a,b] k g k2 = b Z a 2 | g( x )| dx 21 , g ∈ L2 [ a, b]. 2–4 CAPITOLO 2. COMPLEMENTI DI ALGEBRA LINEARE ||x||2 ||x||1 ||x||∞ Figura 2.1 Sfere unitarie in R2 rispetto alle norme con indice 2, 1 e ∞ Teorema 2.1 Tutte le norme di Rn sono equivalenti, nel senso che per ogni coppia di norme k · kα , k · k β esistono due costanti positive m e M tali che, per ogni x ∈ Rn , si ha mkxk β ≤ kxkα ≤ M kxk β . Il risultato precedente è valido anche in Cn e, in generale, negli spazi a dimensione finita. Esso consente, in particolare, di utilizzare indifferentemente qualsiasi norma per studiare la convergenza di una successione di vettori. Definizione 2.3 Diremo che una successione di vettori xn converge al limite x quando la successione xn − x converge in norma a zero lim xn = x n→∞ ⇔ lim kxn − xk = 0. n→∞ Definizione 2.4 Una successione si dice di Cauchy se lim kxm − xn k = 0. m,n→∞ Quando tutte le successioni di Cauchy hanno un limite in un dato spazio, esso viene detto completo. Uno spazio normato completo viene detto spazio di Banach. Definizione 2.5 Uno spazio di Hilbert è uno spazio lineare su cui è definito un prodotto scalare (o prodotto interno) h·, ·i : V × V −→ R (x, y) 7−→ hx, yi tale che per ogni x, y, z ∈ V e α ∈ R 1. hx, xi ≥ 0 e hx, xi = 0 ⇔ x = 0 2. hx, yi = hy, xi (positività) (pr. commutativa) 2.1. RICHIAMI 3. hαx, yi = αhx, yi 2–5 (omogeneità) 4. hx + y, zi = hx, zi + hy, zi (linearità) Tale spazio deve inoltre essere completo rispetto alla norma indotta dal prodotto interno 1 (2.2) kxk := hx, xi 2 . Due vettori vengono detti ortogonali quando il loro prodotto scalare è nullo. Esempio 2.5 Il prodotto scalare comunemente utilizzato in Rn è il seguente n hx, yi = ∑ xi yi . (2.3) i =1 Esso induce la norma euclidea kxk2 . Lo spazio L2 [ a, b] dotato del prodotto interno h f , gi = Z b a f ( x ) g( x )dx è uno spazio di Hilbert. La norma indotta è quella definita nell’Esempio 2.4. Per la norma indotta vale la diseguaglianza di Schwartz |hx, yi| ≤ kxk · kyk. Esercizio 2.1 Dimostrare che la (2.2) è una norma. 2.1.2 Matrici Una matrice m × n è un quadro di mn numeri reali o complessi disposti in m righe e n colonne a11 a12 · · · a1n a21 a22 · · · a2n A= . .. .. . . . . . am1 am2 · · · amn Una matrice è quadrata se m = n, in caso contrario viene detta rettangolare. Indicheremo con Mm×n l’insieme di tutte le matrici m × n; scriveremo Rm×n o Cm×n per evidenziare che ci stiamo riferendo a matrici reali o complesse, rispettivamente. Sia A ∈ Cm×n . La matrice aggiunta A∗ si ottiene scambiando le righe di A con le sue colonne e coniugandone gli elementi ( A∗ )ij = a ji . 2–6 CAPITOLO 2. COMPLEMENTI DI ALGEBRA LINEARE Se la matrice A è reale (aij ∈ R), si parla di matrice trasposta ( A T )ij = a ji . Un vettore colonna x è una matrice n × 1; un vettore riga x T è una matrice 1 × n. Assumeremo convenzionalmente che ogni x ∈ Rn sia un vettore colonna. A volte è utile considerare una matrice come l’insieme delle sue colonne o delle sue righe, cioè a11 .. A= . am1 1 · · · a1n a .. = a · · · a = .. , . n 1 . · · · amn am (2.4) con ai vettore colonna e a j vettore riga. Le matrici costituiscono uno spazio lineare di dimensione mn con somma e prodotto per uno scalare definiti da ( A + B)ij = aij + bij , (αA)ij = αaij . Se A ∈ Rm×n e B ∈ Rn× p , il loro prodotto “righe per colonne” (o, semplicemente, prodotto) è la matrice C = AB ∈ Rm× p definita da n cij = ∑ aik bkj , i = 1, . . . , m, j = 1, . . . , p. k =1 Il prodotto matriciale è distributivo rispetto alla somma, associativo, ma non commutativo. L’elemento neutro è la matrice identità 1 0 .. I = diag(1, . . . , 1) = . . 0 1 La potenza p-esima di una matrice è definita come A p = |A · A{z· · · A} . p volte Ricordiamo che una matrice reale m × n rappresenta la generica trasformazione lineare tra gli spazi lineari Rn e Rm . Il prodotto matriciale corrisponde allora alla composizione di due trasformazioni lineari. Esercizio 2.2 Dati A ∈ Rn×n e x, y ∈ Rn , dite che dimensioni hanno i prodotti Ax, x T A, x T y, ed esprimete esplicitamente le loro componenti. xy T 2.1. RICHIAMI 2–7 Osserviamo che il prodotto scalare di Rn definito in (2.3) e la norma da esso indotta possono essere espressi nella forma hx, yi = x T y, k x k2 = √ x T x. Una matrice quadrata A si dice invertibile o non singolare se esiste una matrice A−1 , detta matrice inversa, tale che AA−1 = A−1 A = I . Alcune proprietà: • ( AB) T = B T A T ; • ( AB)−1 = B−1 A−1 ; • ( A T )−1 = ( A−1 ) T (scriveremo per brevità A− T ); • A è invertibile se e solo se ha righe (e colonne) linarmente indipendenti. Il determinante è una funzione che associa a ciascuna matrice quadrata un numero reale. Tralasciando la sua definizione formale, ricordiamo che, fissata una riga i, esso può essere calcolato mediante la formula di Laplace n det( A) = ∑ (−1)i+ j aij det( Aij ), j =1 essendo Aij la sottomatrice che si ottiene da A eliminando la i-esima riga e la j-esima colonna. Richiamiamo, inoltre, alcune sue proprietà: • det( A T ) = det( A), det( A∗ ) = det( A), det( A−1 ) = det( A)−1 ; • det( AB) = det( A) det( B), det(αA) = αn det( A); • uno scambio di due righe di una matrice produce un cambio di segno del determinante; • A è non singolare se e solo se det( A) 6= 0. Il rango rank( A) di una matrice può essere definito indifferentemente come il massimo numero di righe (o colonne) linearmente indipendenti o come l’ordine della più grande sottomatrice con determinante non nullo. 2–8 CAPITOLO 2. COMPLEMENTI DI ALGEBRA LINEARE 2.1.3 Autovalori e autovettori Definizione 2.6 Si dicono autovalore ed autovettore di una matrice A uno scalare λ ed un vettore x 6= 0 che verifichino la relazione Ax = λx. (2.5) Riscriviamo l’equazione (2.5) nella forma ( A − λI )x = 0. Perché questo sistema lineare omogeneo ammetta una soluzione non nulla è necessario che il suo determinante p A (λ) = det( A − λI ) si annulli. Dal momento che p A (λ) è un polinomio di grado n in λ, detto polinomio caratteristico di A, il Teorema fondamentale dell’Algebra assicura l’esistenza di n autovalori (non necessariamente reali e distinti) che possono essere determinati calcolando gli zeri di p A (λ). Per ciascun autovalore λk , k = 1, . . . , n, una soluzione non nulla del sistema singolare ( A − λk I )x = 0 fornisce il corrispondente autovettore, che, nel caso in cui la matrice A − λk I abbia rango n − 1, resta quindi determinato a meno di una costante moltiplicativa. Definiamo spettro di una matrice l’insieme dei suoi autovalori σ ( A ) = { λ1 , . . . , λ n } e raggio spettrale il massimo dei moduli degli autovalori ρ( A) = max |λk |. k =1,...,n Alcune proprietà: • det( A) = ∏nk=1 λk ; p p 1 p • σ ( A T ) = σ ( A), σ ( A−1 ) = {λ1−1 , . . . , λ− n }, σ ( A ) = { λ1 , . . . , λ n }; • ad autovalori distinti corrispondono autovettori indipendenti; T • se un autovettore x è noto, il quoziente di Rayleigh xxTAx fornisce il corrix spondente autovalore. 2.2. MATRICI DI FORMA PARTICOLARE 2–9 La molteplicità algebrica di un autovalore è la sua molteplicità come zero del polinomio caratteristico. Si definisce, invece, molteplicità geometrica di un autovalore il massimo numero di autovettori indipendenti ad esso corrispondenti. In generale per ogni autovalore si ha sempre molteplicità geometrica ≤ molteplicità algebrica. Se per un autovalore vale il minore stretto, la matrice viene detta difettiva. Esempio 2.6 Calcolate autovalori ed autovettori delle tre matrici 2 2 2 2.2 , 2 2 1 , 2 2 1 2 1 . 2 Matrici di forma particolare Una matrice possiede una struttura (o è strutturata) quando ha delle proprietà che rendono più agevole la risoluzione di un problema che la coinvolge (inversione, risoluzione di un sistema lineare, calcolo di autovalori, etc.). Elenchiamo di seguito alcuni tipi di matrici strutturate. Matrici Hermitiane Una matrice quadrata è Hermitiana se coincide con la sua aggiunta ( A = A∗ ). Una matrice reale A si dice simmetrica se A = A T . Una matrice Hermitiana A è definita positiva se x∗ Ax > 0, ∀ x ∈ Cn . La stessa definizione è valida per matrici simmetriche reali, sostituendo Cn con Rn . Il seguente teorema enuncia la principale proprietà delle matrici Hermitiane. Teorema 2.2 Se A è Hermitiana, i suoi autovalori sono reali ed esiste per Cn una base di autovettori ortonormali. Se A è anche definita positiva, gli autovalori sono positivi. Matrici unitarie giunta Una matrice è unitaria se la sua inversa coincide con l’ag- Q∗ Q = QQ∗ = I. Una matrice reale è ortogonale se l’inversa coincide con la trasposta Q T Q = QQ T = I. 2–10 CAPITOLO 2. COMPLEMENTI DI ALGEBRA LINEARE Ovviamente, dal punto di vista computazionale il maggior vantaggio di una matrice unitaria è quello di poter essere invertita senza alcun calcolo, il che consente di risolvere immediatamente un sistema lineare. Ricordiamo anche alcune proprietà, altre verranno richiamate in seguito. Teorema 2.3 Se Q è unitaria, allora 1. | det( Q)| = 1, (se Q è reale det( Q) = ±1); 2. k Qxk2 = kxk2 , per ogni vettore x ∈ Cn . Dimostrazione. Si ottiene applicando le proprietà dei determinanti e la definizione di norma 2 (da fare per esercizio). Matrici triangolari Una matrice U è detta triangolare superiore se i suoi elementi verificano la condizione uij = 0, per i > j. Una matrice L viene detta triangolare inferiore se `ij = 0, per i < j. Il nome di queste matrici deriva dalla disposizione degli elementi non nulli al loro interno. Infatti, se indichiamo tali elementi con degli asterischi, è immediato osservare che ∗ ∗ ··· ∗ ··· U= .. . ∗ ∗ .. . ∗ ∗ e L = . .. ∗ .. . . . . . ∗ ∗ ··· ∗ ∗ Una matrice diagonale è simultaneamente triangolare superiore ed inferiore D = diag(d1 , . . . , dn ) = d1 .. . . dn I sistemi lineari con matrice triangolare o diagonale sono particolarmente semplici da risolvere, come vedremo. Un’altra proprietà importante è la seguente. Teorema 2.4 Se T è triangolare (e quindi anche se è diagonale) il suo determinante è dato dal prodotto degli elementi diagonali. Inoltre gli autovalori coincidono con gli elementi diagonali. 2.3. NORME MATRICIALI 2–11 Dimostrazione. Si ottiene sviluppando il determinante di T (e di T − λI ) mediante la regola di Laplace. Ricordiamo che le matrici triangolari inferiori (o superiori) formano un’algebra. Questo significa che l’inversa di una matrice triangolare, quando esiste, e il prodotto di due matrici triangolari sono ancora matrici triangolari dello stesso tipo. La stessa proprietà vale per le matrici unitarie, ma in questo caso non si può parlare di algebra dato che l’unitarietà non si trasmette attraverso la somma di matrici ed il prodotto per uno scalare. Matrici a banda zione Gli elementi di una matrice a banda-(k, m) verificano la rela- aij = 0, se i − j ≥ k oppure i − j ≤ −m, la matrice assume quindi la forma a1,1 · · · .. .. . . .. A = a . k,1 .. . a1,m .. . .. . .. . an,n−k+1 .. .. . . an−m+1,n .. .. . . ··· an,n . Le matrici a banda-(1,1), (2,2), (3,3) vengono dette diagonali, tridiagonali, pentadiagonali, etc. Le matrici a banda possono portare ad un significativo vantaggio in termini di complessità computazionale nella risoluzione di sistemi lineari e nel calcolo degli autovalori, in quanto alcuni algoritmi consentono di sfruttare in maniera opportuna la loro struttura. 2.3 Norme matriciali Lo spazio lineare Mm×n , cui appartengono le matrici, può essere dotato della struttura di spazio normato definendo una qualsiasi norma k · k che verifichi gli assiomi richiesti. In realtà per le norme di matrici si richiedono spesso due ulteriori proprietà. Definizione 2.7 Una norma matriciale è submoltiplicativa se per ogni coppia di matrici di dimensioni compatibili si ha k ABk ≤ k Ak · k Bk. 2–12 CAPITOLO 2. COMPLEMENTI DI ALGEBRA LINEARE Definizione 2.8 Una norma di matrice è consistente con le norme vettoriali k · k a di Rn e k · kb di Rm se ∀ A ∈ Rm × n , ∀ x ∈ Rn . k Axkb ≤ k Ak · kxk a , Spesso le norme k · k a e k · kb coincidono, in tal caso il pedice si trascura. Ricordiamo che tutte le norme matriciali, essendo definite su spazi lineari a dimensione finita, sono equivalenti. Esempio 2.7 La norma di Frobenius è definita da m k Ak F = n ∑ ∑ |aij | !1/2 2 . i =1 j =1 Tale norma è submoltiplicativa. Definizione 2.9 Una norma matriciale si dice indotta da una norma vettoriale k · k, se k Ak = sup x 6 =0 k Axk kxk o se, equivalentemente, k Ak = max k Axk. kxk=1 Una norma così definita viene anche detta naturale, o subordinata. Una norma naturale misura, in una data norma vettoriale, il massimo allungamento relativo che un vettore può subire in seguito al prodotto per la matrice A. Essa è consistente con la norma che la induce, in quanto la definizione implica che, qualunque sia x, si abbia k Axk ≤ k Ak · kxk. In particolare, è la più piccola norma consistente con quella particolare norma vettoriale. Teorema 2.5 Ogni norma indotta è submoltiplicativa. Dimostrazione. Date A e B di dimensioni compatibili, si ha k ABk = sup x 6 =0 ≤ sup y 6 =0 k ABxk k ABxk k Bxk = sup · kxk kxk x6=0 k Bx k k Ayk k Bxk · sup = k A k · k B k, k y k x 6 =0 k x k dove la maggiorazione dipende dal fatto che non è detto che tutti i vettori y nel codominio di B si possano esprimere nella forma Bx. 2.3. NORME MATRICIALI 2–13 È immediato osservare che per una norma indotta si ha k I k = 1, da cui si deduce che √ la norma di Frobenius non è una norma naturale, dal momento che k I k F = n. Vediamo ora le principali norme indotte. Teorema 2.6 La norma matriciale indotta dalla norma vettoriale ∞ è la seguente n k Ak∞ = max ∑ |aij |. i =1,...,m j=1 Dimostrazione. Per definizione si ha k Ak∞ = max k Axk∞ . k x k ∞ =1 Maggiorando l’argomento si ottiene k Axk∞ n n = max |( Ax)i | = max ∑ aij x j ≤ max ∑ aij x j i=1,...,m j=1 i =1,...,m i =1,...,m j=1 n ≤ max | xi | · max i =1,...,m ∑ |aij | = max i =1,...,m j=1 n ∑ |aij |, i =1,...,m j=1 in quanto kxk∞ = maxi=1,...,m | xi | = 1 per ipotesi. Per concludere la dimostrazione è sufficiente mostrare che esiste un vettore per cui viene raggiunta l’uguaglianza. Tale vettore è x = (s1 , . . . , sn ) T , dove s j = sign( aij ) con i indice del massimo delle somme-riga (la funzione sign(z) vale 1 se z ≥ 0 e −1 se z < 0). In modo analogo si può dimostrare il seguente risultato. Teorema 2.7 La norma matriciale indotta dalla norma 1 è data da m k Ak1 = max ∑ |aij |. j=1,...,n i =1 Si dice anche che la norma ∞ è il massimo delle somme-riga e la norma 1 è il massimo delle somme-colonna della matrice A. Teorema 2.8 La norma matriciale indotta dalla norma 2 è data da k A k2 = q ρ ( A ∗ A ), dove ρ( B) indica il raggio spettrale della matrice B. 2–14 CAPITOLO 2. COMPLEMENTI DI ALGEBRA LINEARE Corollario 2.9 Se A è Hermitiana k A k2 = ρ ( A ). Dimostrazione. Immediata, a partire dal Teorema 2.8, dal momento che ρ( A2 ) = (ρ( A))2 . Dato il suo legame con gli autovalori di una matrice, la norma 2 viene anche detta norma spettrale. Tutte le norme consistenti hanno una relazione forte col raggio spettrale di una matrice, il che consente di utilizzarle per la localizzazione degli autovalori. Il seguente teorema mostra che una norma consistente definisce il raggio di un cerchio sul piano complesso che contiene tutti gli autovalori di A. L’utilità di questo risultato deriva dalla maggiore semplicità di calcolo di alcune norme matriciali rispetto al raggio spettrale. Teorema 2.10 Sia k · k una norma consistente. Allora per ogni matrice quadrata A si ha ρ ( A ) ≤ k A k. Dimostrazione. Per ogni autovalore λ di A esiste un autovettore v tale che Av = λv. Sfruttando la consistenza e le proprietà delle norme, si ottiene |λ| · kvk = kλvk = k Avk ≤ k Ak · kvk, da cui, essendo v 6= 0 per definizione, segue |λ| ≤ k Ak per ogni autovalore λ e quindi la tesi. Si può inoltre dimostrare il seguente risultato, complementare, in un certo senso, del precedente. Teorema 2.11 Per ogni matrice quadrata A e per ogni ε > 0 esiste una norma matriciale naturale k · k tale che k Ak ≤ ρ( A) + ε. Sotto opportune ipotesi sugli autovalori di A (molteplicità algebrica e geometrica coincidente per ciascun autovalore) esiste una norma naturale per cui si ha l’uguaglianza k A k = ρ ( A ). Sottolineiamo la differenza tra questi due enunciati: il Teorema 2.10 è valido per ogni norma consistente, mentre il Teorema 2.11 afferma che esiste almeno una norma che verifica la tesi, ma non chiarisce come ottenerla (la dimostrazione, anzi, mostra che è molto difficile costruirla in pratica).