Esercitazione 7: Fattorizzazione QR e Minimi quadrati.



Documenti analoghi
b vettore(termine noto) y* proiezione ortogonale di b

Corso di Matematica per la Chimica

Sistemi sovradeterminati

Corso di Matematica per la Chimica

n +1 determinanti (D i, i =1,...,n e det A) n! prodotti per ciascun determinante n 1 moltiplicazioni per ciascun prodotto

Esercitazione 5: Sistemi a risoluzione immediata.

Interpolazione polinomiale. Interpolazione polinomiale

Daniela Lera A.A

Calcolo Numerico Informatica Manolo Venturin A.A Guida all esame

Sistemi sovradeterminati. b vettore(termine noto) V n. y* proiezione ortogonale di b. Carla Guerrini 1

1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso

Problema ai minimi quadrati nella risoluzione di sistemi lineari indeterminati

Complementi di Matematica e Calcolo Numerico A.A

Il problema lineare dei minimi quadrati

UNIVERSITÀ DEGLI STUDI DI CAGLIARI FACOLTÀ DI INGEGNERIA

Sistemi lineari. Lucia Gastaldi. DICATAM - Sez. di Matematica,

Corso di Calcolo Numerico

Complementi di Matematica e Calcolo Numerico A.A

Sistemi lineari. Lucia Gastaldi. DICATAM - Sez. di Matematica,

1. Calcolo dell indice di condizionamento di una matrice

Trasformazioni elementari di Givens (rotazioni elementari)

Capitolo 1. Esercizi a.a Esercizi. Esercizio 1.1 Dimostrare che il metodo iterativo

SISTEMI LINEARI MATRICI E SISTEMI 1

Problemi ai minimi quadrati

Esercitazione di Calcolo Numerico 1 27 Maggio Calcolare la fattorizzazione P A = LU della matrice A =

A =, c d. d = ad cb. c d A =

Approssimazione di dati

Approssimazione di dati

Approssimazione ai minimi quadrati nel discreto

Applicazioni lineari e diagonalizzazione. Esercizi svolti

Approssimazione di dati

Metodi diretti: eliminazione gaussiana

Approssimazione di dati

Complementi di Matematica e Calcolo Numerico C.L. Chimica Industriale A.A

Note per il corso di Geometria Corso di laurea in Ing. Edile/Architettura. 4 Sistemi lineari. Metodo di eliminazione di Gauss Jordan

2. Risolvere con il metodo di eliminazione di Gauss con pivoting parziale il seguente sistema lineare:

10 Metodi diretti per la risoluzione di sistemi lineari: fattorizzazione QR

Sistemi di equazioni lineari

Altre trasformazioni elementari

Applicazioni eliminazione di Gauss

Implementazione degli algoritmi.

VETTORI E MATRICI. Ing. Nicola Cappuccio 2014 U.F.5 ELEMENTI SCIENTIFICI ED ELETTRONICI APPLICATI AI SISTEMI DI TELECOMUNICAZIONI

ossia può anche essere localizzato univocamente sul piano complesso con la sua forma polare.

Algebra Lineare Numerica A.A Lab.6

Richiami di algebra delle matrici a valori reali

INTERPOLAZIONI CON SPLINE

ALGEBRA LINEARE PARTE III

ESAME DI MATEMATICA I parte Vicenza, 05/06/2017. x log 2 x?

SISTEMI LINEARI. Metodi diretti. Calcolo numerico 07/08 p. 1/1

Elementi di Algebra Lineare

SISTEMI LINEARI. Ax = b

Laboratorio di Calcolo Numerico

Esercitazione 4: Vettori e Matrici

La forma normale di Schur

3 Soluzione di sistemi lineari

Complementi di Matematica e Calcolo Numerico A.A

SOTTOSPAZI E OPERAZIONI IN SPAZI DIVERSI DA R n

Sistemi II. Sistemi II. Elisabetta Colombo

Sistemi lineari. Lucia Gastaldi. 11 novembre Dipartimento di Matematica,

Sistemi lineari. Sia A R m n, x R n Ax = b è un vettore di m componenti. a m,1 x 1 + a m,2 x a m,n x n = b m

Trasformazione elementari di Givens

Sistemi di equazioni lineari

Analisi Numerica: Introduzione

Problema. Sistemi lineari. Problema. Problema. Quali sono i potenziali in ogni nodo? Leggi di Kirkoff e di Ohm:

Richiami di Algebra Lineare

Complementi di Matematica e Calcolo Numerico A.A

Quali condizionisi si possono richiedere sulla funzione interpolante?

Note per le esercitazioni di Geometria 1 a.a. 2007/08 A. Lotta. Metodi per il calcolo del rango di una matrice

Esercizi svolti. Geometria analitica: rette e piani

MATRICI E VETTORI APPROFONDIMENTO PER IL CORSO DI LABORATORIO DI INFORMATICA SARA POLTRONIERI

Quale delle seguenti rappresentazioni del numero reale è in virgola mobile normalizzata?

Risoluzione di sistemi lineari sparsi e di grandi dimensioni

+ Analisi Numerica (1 modulo) Docente: M.Gaviano; domande di ripasso a.a

Esercizi su algebra lineare, fattorizzazione LU e risoluzione di sistemi lineari

3. Elementi di Algebra Lineare.

Nozioni e notazioni: concetti primitivi di insieme, elemento ed appartenenza.

Appunti su Indipendenza Lineare di Vettori

Argomento 13 Sistemi lineari

APPLICAZIONI. Im f = {b B a A tale che f (a) = b}.

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Derivate di ordine superiore

Compito numero 2 - Compito intero

Appunti di Geometria - 2

La lunghezza dei vettori e legata alle operazioni sui vettori nel modo seguente: Consideriamo due vettori v, w e il vettore v + w loro somma.

APPUNTI DI ALGEBRA LINEARE

Diagonalizzazione di matrici: autovalori, autovettori e costruzione della matrice diagonalizzante 1 / 13

Fattorizzazione QR e matrici di Householder

SISTEMI LINEARI. x 2y 2z = 0. Svolgimento. Procediamo con operazioni elementari di riga sulla matrice del primo sistema: R 2 R 2 3R

PreCorso di Matematica - PCM Corso M-Z

Complementi di Matematica e Calcolo Numerico A.A

Note sull algoritmo di Gauss

Approssimazione numerica

1. Martedì 1/10/2013, ore: 2(2) Introduzione al corso: problemi ben posti, condizionamento, stabilità, complessità

Vettori e matrici. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Corso di Analisi Numerica

3x 2 = 6. 3x 2 x 3 = 6

Richiami di Algebra Lineare

Sequenze (Sistemi) di Variabili Aleatorie Se consideriamo un numero di variabili aleatorie, generalmente dipendenti si parla equivalentemente di:

Interpolazione. Corso di Calcolo Numerico, a.a. 2008/2009. Francesca Mazzia. Dipartimento di Matematica Università di Bari.

Transcript:

Esercitazione 7: Fattorizzazione QR e Minimi quadrati. Richiami di Teoria Teorema: Data una matrice A R m n, (m n), esiste una matrice ortogonale Q R m m (QQ T = Q T Q = I) tale che ( ) R1 A = QR = Q, 0 dove R R m n con r i,j = 0, i > j (R 1 R n n è triangolare superiore). Osservazione 0: La matrice Q è ortogonale e questo significa che la sua inversa coincide con la trasposta, cioè Q 1 = Q T. Osservazione 1: Se il rango di A è n (massimo), allora R 1 è non singolare. Osservazione 2: La fattorizzazione QR è anche usata per risolvere sistemi lineari sovra- e sotto-determinati nel senso dei minimi quadrati (argomento non ancora trattato). Ma può essere usata anche per sistemi quadrati. Infatti si può scrivere { Qy = b y = Q A = QR = Ax = QRx = b T b Rx = y Osservazione 3: La routine MatLab che implementa la fattorizzazione QR è qr. Esercizio 1 Fattorizzazione QR di una matrice. Risolvere il sistema lineare Ax = b mediante l uso della fattorizzazione QR, dove 4 1 0 1 A = 1 4 1 0 0 1 4 1 1 2 1 4 e b è scelto in modo tale che il vettore soluzione x sia il vettore di tutti 1. 1

Richiami di Teoria Riflettore elemetare di Householder. Definiamo un tipo speciale di matrice ortogonale e simmetrica H (H T = H 1 = H) detta matrice di riflessione di Householder. Sia u R n un vettore normalizzato ( u 2 = 1), allora è possibile definire la seguente matrice che risulta essere simmetrica ed ortogonale. Interpretazione geometrica H = I 2uu T Moltiplicare una matrice di riflessione per un vettore è equivalente a riflettere tale vettore attraverso l iperpiano perpendicolare ad u. Sia Π l iperpiano ortogonale ad u, sia x un vettore ed y = Hx il vettore trasformato, ovvero si ha che y = Hx = (I 2uu T )x = x 2(u T x)u dove u T x è la componente di x nella direzione di u e x y = 2(u T x)u per la regola del parallelogramma. Sia veda la figura sottostante per un interpretazione grafica nello spazio R 2 con u = e 1 = (1, 0) T e x = (1/2, 1/4) T. 2 / 21

Riflessione lungo il primo vettore canonico Se x R n è un vettore non nullo, allora esiste sempre una matrice di riflessione di Householder H = I 2uu T ed un numero reale α tali che Hx = αe 1 dove e 1 = (1, 0,..., 0) T è il primo vettore della base canonica di R n. Il vettore u ed il valore α sono ottenuti come : α = sign(x 1 ) x 2 v = x + αe 1 u = v v 2 H = I 2 vvt v T v = I 2 vvt v 2 2 con x 1 prima componente di x. Esercizio 2 = I 2uu T Scrivere una routine MatLab per calcolare il riflettore elementare di Householder. L algoritmo riceve in ingresso il vettore x e restituisce in uscita la matrice H. H HRiflettore ( x ) 1 α sign(x 1 ) x 2 2 v x + αe 1 3 u v v 2 4 H I 2uu T Nota: Attenzione alla funzione sign di MatLab che restituisce 0 se in ingresso viene passato uno zero. e 1 può essere generatore come eye(n,1). Generare la matrice di riflessione H relativa alla prima colonna della matrice 3 2 3 A = 12 0 1 4 5 2 3 / 21

e calcolare HA ottenendo come risultato HA = 13 2 1 0 3 2 0 4 3. Fattorizzazione QR di una marice A mediante uso dei riflettori di Householder. Una matrice A di ordine m n viene trasformata in una matrice triangolare superiore mediante l applicazione successiva di trasformazioni elementari di Householder. Ad esempio, per m = 6 e n = 5 supponiamo di aver già calcolato due matrici di trasformazione H 1 e H 2 tali che: 0 H 2 H 1 A = 0 0 x 0 0 x 0 0 x 0 0 x ed allora cerchiamo una matrice di Householder H 3 di ordine 4 4 tale che x y H 3 x x = 0 0. x 0 Allora poniamo quindi H 3 = diag(i 2, H 3 ), ottenendo: 0 H 3 H 2 H 1 A = 0 0 y 0 0 0 0 0 0 0 0 0 Alla fine H n H n 1 H 1 A = R è una matrice triangolare superiore e ponendo Q = H 1 H n si ottiene A = QR. 4 / 21

Esercizio 3 Scrivere una routine MatLab per calcolare la fattorizzazione QR di una matrice generica A mediante l uso dei riflettori elementari di Householder. L algoritmo riceve in ingresso la matrice A e restituisce in uscita le matrici Q ed R. [Q, R] QRwithH ( A ) 1 [m,n] size ( A ) 2 // inizializzazione di R uguale ad A 3 R A 4 // inizializzazione di Q pari a identita di dimensione m 5 Q I m 6 // calcolo quante matrici di Householder devo calcolare : 7 // minimo tra m-1 e n 8 d min(m 1, n) 9 // ciclo sulle possibili matrici elementari 10 for k 1 to d 11 // estraggo vettore x della trasformazione elementare dalla matrice R 12 x (r k,k, r k+1,k,..., r m,k ) T 13 // costruisco matrice elementare di Householder 14 P HRiflettore ( x ) 15 // costruisco matrice H 16 H I m 17 H k...m,k...m H 18 // aggiorno R 19 R H R 20 // aggiorno Q 21 Q Q H 22 end Come esempio si consideri la seguente matrice: A = 1 1 4 1 4 2 1 4 2 1 1 0 5 / 21

Risultati A = 1-1 4 1 4-2 1 4 2 1-1 0 Q = -0.5000 0.5000-0.5000-0.5000-0.5000-0.5000 0.5000-0.5000-0.5000-0.5000-0.5000 0.5000-0.5000 0.5000 0.5000 0.5000 R = -2.0000-3.0000-2.0000-0.0000-5.0000 2.0000 0.0000 0.0000-4.0000 0.0000-0.0000 0.0000 6 / 21

Richiami di Teoria Minimi quadrati (retta di regressione). Siano dati m punti (x i, y i ), 1 i m. Sia p(x) = a 0 + a 1 x il polinomio (lineare) di grado n = 1 con cui vogliamo approssimare i dati. Il problema dei minimi quadrati consiste nel rendere minima la seguente quantità (scarti al quadrato): m m S = d(p, a 0, a 1 ) = (p(x i ) y i ) 2 = (a 0 + a 1 x i y i ) 2 i=1 La quantità S è la somma dei quadrati degli scarti verticali e risulta essere anche una funzione derivabile. Il minimo della funzione S è un punto di stazionarietà. Valgono perciò le seguenti condizioni (necessarie e sufficienti) dette equazioni normali: cioè perciò avremo S a r = 2 S a r = 0 i=1 r = 0,..., n m (a 0 + a 1 x i )x r i = 0 r = 0,..., n i=1 m (a 0 + a 1 x i )x r i = i=1 m y i x r i i=1 r = 0,..., n ed in forma matriciale ( m m i=1 x i m i=1 x i m i=1 x2 i ) ( a0 a 1 ) = ( m i=1 y ) i m i=1 y. ix i Il sistema precedente può essere riscritto nella forma definendo 1 x 1 1 x 2 A =.., a = 1 x m A T Aa = A T y ( a0 a 1 ) e y = y 1 y 2. y m. Con queste definizioni il problema originario può essere formulato come segue: min Aa y 2 a R 2 2. Nel caso generale di un approssimazione mediante un polinomio della forma p(x) = a 0 + a 1 x + a 2 x 2 +... + a n x n 7 / 21

la matrice A assume la forma 1 x 1 x 2 1... x n 1 1 x 1 x 2 2... x n 2 A =.. 1 x 1 x 2 m... x n m e viene detta matrice di Vandermonde; Tale matrice risulta essere mal condizionata. Soluzione del sistema delle equazioni normali 1 Utilizzando Cholesky Nel caso generale n > 1, il sistema delle equazioni normali A T Ax = A T b con A R m n, essendo simmetrico e definito positivo (se rango di A massimo cioè punti x i distinti) si può risolvere tramite la fattorizzazione di Cholesky della matrice A T A = L T L, da cui A T Ax = A T b L(L T x) = A T b { Ly = A T b sost. avanti L T x = y sost. indietro In aritmetica finita la matrice A T A può essere malcondizionata (ed eventualmente con numero di condizionamento elevato) in quanto gli inevitabili errori di arrotondamento possono portare a matrici le cui colonne sono linearmente dipendenti. Quindi è preferibile utilizzare per la risoluzione numerica o la fattorizzazone QR o la fattorizzazione SVD. Utilizzando QR Un metodo che evita questo inconveniente perchè usa direttamente la matrice A è offerto dalla fattorizzazione QR, da cui Ax b 2 = QRx b 2 = Q(Rx Q T b) 2 = Rx Q T b 2. La matrice R ha la forma R = ( R1 0 ) n righe m n righe con R 1 una matrice triangolare superiore non singolare in quanto A ha rango massimo. Ponendo c = Q T b e partizionandolo coerentemente con la partizione di R, ossia c = ( c1 c 2 ) n componenti m n componenti 1 Sistema con un numero maggiore di righe rispetto alle incognite quindi si tratta di un sistema sovradeterminato. 8 / 21

abbiamo ( R1 x c Rx c = 1 c 2 ) n componenti m n componenti Quindi il problema di minimo diventa min Ax x R b 2 n 2 = min Rx x R c 2 n 2 = min [ R1 x c 1 2 x R n 2 + c 2 2 ] 2 = c 2 2 2 + min x R n R 1x c 1 2 2. Poiché R 1 è non singolare, la soluzione x del sistema lineare è tale che R 1 x = c 1 min R 1x c 1 2 x R n 2 = R 1x c 1 2 2 = 0. Ne segue che x è soluzione del problema di minimo ed inoltre min Ax x R b 2 n 2 = c 2 2 2. Osservazione: Se la matrice A non ha rango massimo, la mtrice R 1 ottenuta ha almeno un elemento diagonale nullo e quindi non è possibile calcolare la soluzione del sistema lineare R 1 x = c 1. Questa difficoltà viene superata applicando il metodo QR con la tecnica del massimo pivot per colonne (QR con pivoting) e associare alla variabile il cui elemento è zero (o vicino a zero) il valore zero. Utilizzando SVD Teorema: Data una matrice A R m n, esiste una fattorizzazione della forma con A = UΣV T, ˆ U una matrice unitaria di dimensioni m m; ˆ Σ una matrice diagonale di dimensioni m n che contiene i valori singolari σ 1 σ 2... σ p con p = min(m, n) della matrice A (i valori singolari σ i e gli autovalori di λ i di A T A, ordinati in modo decrescente, sono legati dalla seguente relazione σ i = λ i ); ˆ V una matrice unitaria di dimensioni n n; ˆ il comando MatLab che esegue la SVD è svd.. 9 / 21

Utilizzando la SVD abbiamo Ax b 2 = UΣV T x b 2 = U(ΣV T x U T b) 2 = per cui ponendo y = V T x e d = U T b si ha U(ΣV T x U T b) 2 = Σy d 2. La matrice Σ è della forma per cui partizionando d i nella forma coerentemente con Σ si ha: Σ = ( diag(σi ) 0 d = ( d1 d 2 ) ) min Ax x R b 2 n 2 = Σy d 2 2 = d 2 2 2 + min diag(σ i)y d 1 2 y R n 2 da cui y i = d i /σ i e quindi x = V y. 10 / 21

Esercizio 4 Siano dati le seguenti coppie di valori. x i -5-3 1 3 4 6 8 y i = f(x i ) 18 7 0 7 16 50 67 Si vuole calcolare la retta di regressione utilizzando : 1. la soluzione delle equazioni normali attraverso Cholesky; 2. mediante fattorizzazione QR della matrice; 3. mediante fattorizzazione SV D della matrice; 4. il comando \ di MatLab o Octave. La soluzione procede nel seguente modo: ˆ Scrivere una routine che costruisca la matrice A della retta di regressione ai minimi quadrati. L algoritmo riceve in ingresso il vettore x e restituisce in uscita la matrice A. A CostruisciA ( x ) 1 n length ( x ) 2 // affianco vettore di tutti 1 il vettore x per colonna 3 A [1 n x] ˆ (Risoluzione delle equazioni normali) Dato K = A T A e F = A T y si deve risolvere il sistema lineare 2 2 Ka = F sfruttando la fattorizzazione di Cholesky di K. Attenzione: La routine MatLab chol restituisce una matrice triangolare superiore, i.e. L T. ˆ (Risoluzione mediante QR) Dato la fattorizzazione QR di A si deve risolvere il sistema R 1 a = c 1 di dimensione 2 2, precisamente ˆ (Risoluzione mediante SVD) Data la fattorizzazione SVD di A si deve calcolare d = U T y, ŷ i = d i /σ i ed infine x = V ŷ. ˆ (Risoluzione mediante comando MatLab) si deve risolvere il sistema Aa = y. ˆ Visualizzare i risultati ottenuti (anche graficamente). 11 / 21

1 //calcola fattorizzazione QR 2 [Q, R] QRwithH ( A ) 3 c Q T y 4 c 1 (c 1,..., c n ) T 5 R 1 R 1 n,1 n 6 //calcolo soluzione di R 1 x = c 1 con sostituzione all indietro 7 a RisolviSistemaTriSup ( R 1, c 1 ) 12 / 21

Esercizio 5 Ripetere l esercizio precedente calcolando la parabola (polinomio di grado 2) che meglio approssima i dati. In questo caso la matrice A è della forma [1 n x x. 2 ] con n = 3 parametri. 13 / 21

Esercizio 6 Ripetere l esercizio precedente sul seguente insieme di dati (anche con x ripetute) x i -5-3 -3 1 1 3 4 4 6 8 8 y i = f(x i ) 18 7 5 0 2 7 16 10 50 67 70 14 / 21

Esercizio 7 2 L equazione differenziale la cui soluzione analitica è dn dt = λn. N(t) = N 0 e λt. viene utilizzata per modellare fenomenti in cui una quantità (con N 0 quantità iniziale) decade e questo decadimento è proporzionale (con valore costante λ) alla quantità rimasta. Tipicamente dalle misure di laboratorio si hanno i valori di t i e N(t i ) cioè la quantità rimasta oppure t i e N(t i )/N 0 [%] cioè la percentuale di riduzione della quantità dopo un certo intervallo di tempo. Lo scopo dell approssimazione, in questo caso, è trovare i valore λ e N 0 che meglio descrivono (nel senso dei minimi quadrati) il fenomeno fisico. Per ricondurre il problema della ricerca dei parametri N 0 e λ di un modello non lineare (in questo caso esponenziale) possiamo considerare, in questo particolare caso, la versione in cui viene applicato il lagaritmo, cioè log(n(t)) = log(n 0 ) λt che diventa un problema di interpolazione polinomia quando i dati y i vengono trasformati mediante il logaritmo. Quindi per risolvere il problema eseguiamo i seguenti passi: ˆ defininamo il nostro modello polinomiale attraverso a 0 = log(n 0 ) e a 1 = λ; ˆ eseguiamo il logaritmo dei dati, cioè log(y i ); ˆ calcoliamo il polinomio (retta) di miglior approssimazione con il comando polyfit; ˆ calcoliamo N 0 e λ dai coefficienti del polinomio. Un esempio di fenomeno fisico che può essere descritto da un decadimento di tipo esponenziale è l andamento dell altezza della schiuma della birra 3 dove la legge di decadimento esponenziale può essere derivata dall ipotesi che la variazione della schiuma sia proporzionale al volume della schiuma presente mediante una relazione del tipo dv = (V/τ)dt = λdt con λ = τ. Nella tabella seguente sono riportati i valori medi relativi alla birra Budweiser Budvar t i [s] 0 15 30 45 60 75 90 105 120 150 180 210 240 300 360 h i [cm] 14.0 12.1 10.9 10.0 9.3 8.6 8.0 7.5 7.0 6.2 5.5 4.5 3.5 2.0 0.9 dove è riportato a diversi istanti temporali t i [s] il valore dell altezza della schiuma h i in [cm]. Calcolare il valore di λ e N 0. 2 Facoltativo. 3 Per maggiori dettagli si veda Demonstration of the exponential decay law using beer froth, di A. Leike, in European Journal of Physics, 23 (2002) pag. 2126. 15 / 21

Risultati 16 / 21

Differenze tra soluzione con QR e SVD Nel risolvere il sistema delle equazioni normali nel caso in cui la matrice A ha rango massimo sia la fattorizzazione QR che la SVD portano ai medesimi risultati. In questo caso si preferisce utilizzare la fattorizzazione SVD in quanto è quella numericamente più stabile. Invece, la differenza tra QR e SVD si può apprezzare quando si richiede di risolvere, nel senso dei minimi quadrati, un sistema sotto determinato, cioè un sistema con un numero maggiore di incognite rispetto al numero di equazioni. Questo significa che ci sono più soluzioni che produco il minimo. Sia nel caso della QR che nella SVD si fissano a zero le variabili che non compaiono nella soluzione del sistema (si noti che nella fattorizzazione non si fissano le x a zero ma, nella nostra notazione le y) questo si traduce nel seguente fatto: la fattorizzazione QR realizza la soluzione con più zeri, cioè quella più sparsa mentre la fattorizzazione SVD si può dimostrare che realizza la soluzione x quella di norma minima ( x 2 2) cioè quella più vicina al vettore nullo. Ad esempio se consideriamo il seguente sistema lineare { x1 + 2x 2 + x 3 + x 4 = 2 ed utilizzando le seguenti istruzioni MatLab x 1 2x 2 + x 3 x 4 = 0 A = [1 2 1 1; 1 2 1 1]; b = [2 0]' % QR con pivoting e versione economica % [Q,R,E] = qr(a,0) c = Q'*b x qr = zeros(4,1); x qr(e(1:2)) = R(1:2,1:2)\c % SVD in versione economica % [U,S,V] = svd(a,0) d = U'*b z = zeros(4,1); z(1:2) = d./diag(s) x svd = V*z norm(x qr)ˆ2 norm(x svd)ˆ2 si hanno i seguenti risultati x_qr = 1.0000 0.5000 0 0 17 / 21

% con norma 1.2500 x_svd = 0.5000 0.4000 0.5000 0.2000 % con norma 0.7000 Esercizio 8 4 Un interessante applicazione della SVD è alla compressione delle immagini. Data una immagine o matrice A di dimensione m n la vogliamo approssimare rimuovendo informazione ridondante o meno significativa. L idea è di sfruttrare la fattorizzazione SVD ed eliminare i valori singolari piccoli; questo può essere spiegato dal fatto che i valori singolari sono ordinati in modo decrescente e valori singolari piccoli contribuiscono poco alla formazione della matrice risultante finale. Matematicamente vogliamo approssimare una matrice A con una matrice à di rango inferiore, diciamo r misurando l errore in norma di Frobenius cioè A à F. Grazie al teorema dimostrato da Eckart-Young (1936) per far questo basta considerare la decomposizione SVD della matrice A e considerare solo i primi r valori singolari. L errore che si commette è A à n F = σi 2. i=r+1 Nella figura sottostante è rappresentata la fattorizzazione SVD in versione economica dove sono mostrate solamente le matrici coinvolte nel risultato finale se si considerano solamente un numero limitato di valori singolari. Figura 1: Fattorizzazione SVD ridotta Attenzione che la scelta di r deve essere tale che il costo per la memorizzazione di U, Σ e V ridotte alle prime r componenti sia inferiore al costro di memorizzazione la matrice completa A. Il seguente codice mostra una bozza di codice MatLab per questa tipologia di applicazioni. L immagine test per eccellenza in queste applicazione è quella di lena. 4 Facoltativo. 18 / 21

close all clear all clc [A,map]= imread('lena.gif'); B = im2double(a,'indexed'); figure; imshow(b,map); [U,S,V]=svd(B); k = 128; C = zeros(size(b)); for j=1:k C = C + S(j,j)*U(:,j)*V(:,j)'; end % caricamento immagine % conversione in numeri reali % visualizzazione % decomposizione ai valori singolari % numero di valori singolari che vogliamo tenere figure; imshow(c,map); % visualizza immagine Si chiede di provare il codice per vedere come si comporta l algoritmo sui primi valori singolari. Risultati Nella prima figura vengono mostrati il valore dei singoli valori singolari. Figura 2: Valore dei valori singolari Nella figura successiva vengono mostrate (da sinistra verso destra e dall alto verso il basso) le prime 16 immagini ottenute dai primi 16 valori singolari. 19 / 21

Figura 3: Immagini da 1 a 16 valori singolari 20 / 21

Figura 4: Confronto tra immagine originale (in alto) e l immagine con i primi 128 valori singolari (in basso). 21 / 21