Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Introduzione alla Decomposizione delle Matrici | Fondamenti di Algebra Lineare
Matematica per la Data Science

bookIntroduzione alla Decomposizione delle Matrici

La risoluzione di sistemi come Ax=bA \vec{x} = \vec{b} può essere computazionalmente onerosa, specialmente per sistemi di grandi dimensioni.

La decomposizione di matrici semplifica questo processo scomponendo la matrice AA in parti più semplici - che possono poi essere risolte in fasi successive.

LU vs QR

La matrice AA viene scomposta in altre matrici strutturate.

Decomposizione LU

Scomposizione di AA in una matrice triangolare inferiore e una superiore:

  • Costruita tramite eliminazione di Gauss;
  • Funziona meglio per matrici quadrate.
A=LUA = LU

Decomposizione QR

Scomposizione di AA in una matrice ortogonale e una superiore:

  • Spesso utilizzata per matrici non quadrate;
  • Ideale per problemi ai minimi quadrati o quando la LU non è applicabile.
A=QRA = QR

Decomposizione LU

Si parte da una matrice quadrata:

A=[4363]A = \begin{bmatrix} 4 & 3 \\ 6 & 3 \end{bmatrix}

L'obiettivo è scrivere questa matrice come:

A=LUA = LU

Dove:

L=[10l211],  U=[u11u120u22]L = \begin{bmatrix} 1 & 0 \\ l_{21} & 1 \end{bmatrix},\ \ U = \begin{bmatrix} u_{11} & u_{12} \\ 0 & u_{22} \end{bmatrix}

Questa decomposizione è possibile se A è quadrata e invertibile.

Punti importanti:

  • Le matrici triangolari inferiori hanno tutti gli elementi sopra la diagonale uguali a zero, semplificando la sostituzione in avanti;
  • Le matrici triangolari superiori hanno zeri sotto la diagonale, rendendo immediata la sostituzione all'indietro;
  • Una matrice ortogonale ha colonne che sono vettori ortonormali (vettori di lunghezza 1 e perpendicolari tra loro);
  • Questa proprietà preserva la lunghezza e gli angoli dei vettori, utile nella risoluzione dei minimi quadrati e nel miglioramento della stabilità numerica.

Eliminazione di Gauss

Applicare l'eliminazione di Gauss per eliminare l'elemento sotto il pivot in alto a sinistra:

R2R264R1R_2 \rarr R_2 - \frac{6}{4}R_1

Questo ci dà:

R2=[0,1.5]R'_2 = [0, -1.5]

Quindi le matrici aggiornate diventano:

U=[4301.5]U = \begin{bmatrix} 4 & 3 \\ 0 & -1.5 \end{bmatrix}

E dall'operazione sulle righe, sappiamo che:

L=[101.51]L = \begin{bmatrix} 1 & 0 \\ 1.5 & 1 \end{bmatrix}

Punti importanti:

  • L'eliminazione di Gauss elimina sistematicamente gli elementi sotto il pivot in ogni colonna sottraendo versioni scalate della riga del pivot dalle righe sottostanti;
  • Questo processo trasforma A in una matrice triangolare superiore U;
  • I moltiplicatori utilizzati per eliminare questi elementi sono memorizzati in L, permettendo di rappresentare A come il prodotto LU.

Risultato della Decomposizione LU

Verifica:

A=LU=[101.51][4301.5]=[4363]A = LU = \begin{bmatrix} 1 & 0 \\ 1.5 & 1 \end{bmatrix} \begin{bmatrix} 4 & 3 \\ 0 & -1.5 \end{bmatrix} = \begin{bmatrix} 4 & 3 \\ 6 & 3 \end{bmatrix}

Ora il sistema Ax=bA \vec{x} = \vec{b} può essere risolto in due passaggi:

  1. Risolvere Ly=bL \vec{y} = \vec{b} tramite sostituzione in avanti;
  2. Risolvere Ux=yU \vec{x} = \vec{y} tramite sostituzione all'indietro.

Decomposizione QR

Si vuole esprimere una matrice AA come prodotto di due matrici:

A=QRA = QR

Dove:

  • AA è la matrice di input (ad esempio dati, coefficienti, ecc.);
  • QQ è una matrice ortogonale (le sue colonne sono vettori ortonormali);
  • RR è una matrice triangolare superiore.

Esempio di scomposizione delle forme:

A=[a1a2a3a4]=[q1q2q3q4][r11r120r22]A = \begin{bmatrix} a_1 & a_2 \\ a_3 & a_4 \end{bmatrix} = \begin{bmatrix} q_1 & q_2 \\ q_3 & q_4 \end{bmatrix} \begin{bmatrix} r_{11} & r_{12} \\ 0 & r_{22} \end{bmatrix}

Questa decomposizione viene spesso utilizzata quando:

  • La matrice A non è quadrata;
  • Si risolvono problemi ai minimi quadrati;
  • La decomposizione LU non è stabile.

Cosa sono i vettori ortonormali?

Vettori ortogonali

Due vettori u,vu, v sono ortogonali se il loro prodotto scalare è zero:

uv=0u \cdot v = 0

Vettore normalizzato

Un vettore uu è normalizzato quando u=1|u| = 1.

Insieme ortonormale

Un insieme di vettori {q1,q2,...,qk}\{q_1, q_2, ..., q_k\} è ortonormale se ciascuno ha lunghezza unitaria ed è mutuamente ortogonale:

qiqj={1, se  i=j,0, se  ij.q_i \cdot q_j = \begin{cases} 1,\ \text{se}\ \ i = j,\\ 0,\ \text{se}\ \ i \neq j. \end{cases}

Perché è importante: colonne ortonormali in QQ preservano la geometria, semplificano le proiezioni e migliorano la stabilità numerica.

Definizione della matrice A

Partiamo da questo esempio:

A=[4363]A = \begin{bmatrix} 4 & 3 \\ 6 & 3 \end{bmatrix}

Utilizzeremo il processo di Gram-Schmidt per trovare le matrici QQ e RR tali che A=QRA=QR. Il processo di Gram-Schmidt crea un insieme ortonormale di vettori a partire dalle colonne di AA.

Questo significa che i vettori in QQ sono tutti perpendicolari (ortogonali) tra loro e hanno lunghezza unitaria (normalizzati). Questa proprietà semplifica molti calcoli e migliora la stabilità numerica nella risoluzione dei sistemi.

Quindi, l'obiettivo qui è:

  • Rendere le colonne di QQ ortonormali;
  • Creare la matrice RR che codificherà le proiezioni.

Calcolo del primo vettore base

Estraiamo la prima colonna di AA:

a1=[46]a_1 = \begin{bmatrix} 4 \\ 6 \end{bmatrix}

Per normalizzarla, calcoliamo la norma:

a1=42+62=16+36=52|a_1| = \sqrt{4^2 + 6^2} = \sqrt{16 + 36} = \sqrt{52}

Poi:

q1=152[46]=[452652]q_1 = \frac{1}{\sqrt{52}} \begin{bmatrix} 4 \\ 6 \end{bmatrix} = \begin{bmatrix} \frac{4}{\sqrt{52}} \\ \frac{6}{\sqrt{52}} \end{bmatrix}

Questo è il primo vettore ortonormale per QQ.

Come normalizzare un vettore

Dato un vettore:

v=[v1v2vn]v = \begin{bmatrix} v_1 \\ v_2 \\ \vdots \\ v_n \end{bmatrix}

Calcoliamo la sua norma:

v=v12+v22+...+vn2|v| = \sqrt{v_1^2 + v_2^2 + ... + v^2_n}

Poi normalizziamo:

v^=1vv\hat{v} = \frac{1}{|v|}v

Esempio:

v=[34],  v=32+42=5v = \begin{bmatrix} 3 \\ 4 \end{bmatrix},\ \ |v| = \sqrt{3^2 + 4^2} = 5

Quindi, il nostro vettore normalizzato è:

v^=15[34]=[0.60.8]\hat{v} = \frac{1}{5}\begin{bmatrix} 3 \\ 4 \end{bmatrix} = \begin{bmatrix} 0.6 \\ 0.8 \end{bmatrix}

Una volta che sappiamo come normalizzare e ortogonalizzare i vettori, possiamo applicare il processo di Gram-Schmidt per formare la matrice QQ e utilizzarla per calcolare RR nella decomposizione QR.

Calcolo di q₂ con Gram-Schmidt

Per calcolare q2q_2, si parte dalla seconda colonna di AA:

a2=[33]a_2 = \begin{bmatrix} 3 \\ 3 \end{bmatrix}

Successivamente, si proietta a2a_2 su q1q_1:

r12=q1Ta2=152(43+63)=15230r_{12} = q_1^Ta_2 = \frac{1}{\sqrt{52}}(4 \cdot 3 + 6 \cdot 3) = \frac{1}{\sqrt{52}} \cdot 30

Si rimuove la proiezione da a2a_2:

u2=a2r12q1u_2 = a_2 - r_{12}q_1

Poi si normalizza (come mostrato sopra):

q2=u2u2q_2 = \frac{u_2}{|u_2|}

Ora sia q1q_1 che q2q_2 formano la base ortonormale per QQ. Si può ora assemblare il risultato finale:

Q=[q1q2],  R=[r11r120r22]Q = \begin{bmatrix} q_1 & q_2 \end{bmatrix},\ \ R = \begin{bmatrix} r_{11} & r_{12} \\ 0 & r_{22} \end{bmatrix}

Questi soddisfano:

A=QRA = QR
question mark

Qual è il primo passo nel processo di Gram-Schmidt per la decomposizione QR?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 8

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 1.96

bookIntroduzione alla Decomposizione delle Matrici

Scorri per mostrare il menu

La risoluzione di sistemi come Ax=bA \vec{x} = \vec{b} può essere computazionalmente onerosa, specialmente per sistemi di grandi dimensioni.

La decomposizione di matrici semplifica questo processo scomponendo la matrice AA in parti più semplici - che possono poi essere risolte in fasi successive.

LU vs QR

La matrice AA viene scomposta in altre matrici strutturate.

Decomposizione LU

Scomposizione di AA in una matrice triangolare inferiore e una superiore:

  • Costruita tramite eliminazione di Gauss;
  • Funziona meglio per matrici quadrate.
A=LUA = LU

Decomposizione QR

Scomposizione di AA in una matrice ortogonale e una superiore:

  • Spesso utilizzata per matrici non quadrate;
  • Ideale per problemi ai minimi quadrati o quando la LU non è applicabile.
A=QRA = QR

Decomposizione LU

Si parte da una matrice quadrata:

A=[4363]A = \begin{bmatrix} 4 & 3 \\ 6 & 3 \end{bmatrix}

L'obiettivo è scrivere questa matrice come:

A=LUA = LU

Dove:

L=[10l211],  U=[u11u120u22]L = \begin{bmatrix} 1 & 0 \\ l_{21} & 1 \end{bmatrix},\ \ U = \begin{bmatrix} u_{11} & u_{12} \\ 0 & u_{22} \end{bmatrix}

Questa decomposizione è possibile se A è quadrata e invertibile.

Punti importanti:

  • Le matrici triangolari inferiori hanno tutti gli elementi sopra la diagonale uguali a zero, semplificando la sostituzione in avanti;
  • Le matrici triangolari superiori hanno zeri sotto la diagonale, rendendo immediata la sostituzione all'indietro;
  • Una matrice ortogonale ha colonne che sono vettori ortonormali (vettori di lunghezza 1 e perpendicolari tra loro);
  • Questa proprietà preserva la lunghezza e gli angoli dei vettori, utile nella risoluzione dei minimi quadrati e nel miglioramento della stabilità numerica.

Eliminazione di Gauss

Applicare l'eliminazione di Gauss per eliminare l'elemento sotto il pivot in alto a sinistra:

R2R264R1R_2 \rarr R_2 - \frac{6}{4}R_1

Questo ci dà:

R2=[0,1.5]R'_2 = [0, -1.5]

Quindi le matrici aggiornate diventano:

U=[4301.5]U = \begin{bmatrix} 4 & 3 \\ 0 & -1.5 \end{bmatrix}

E dall'operazione sulle righe, sappiamo che:

L=[101.51]L = \begin{bmatrix} 1 & 0 \\ 1.5 & 1 \end{bmatrix}

Punti importanti:

  • L'eliminazione di Gauss elimina sistematicamente gli elementi sotto il pivot in ogni colonna sottraendo versioni scalate della riga del pivot dalle righe sottostanti;
  • Questo processo trasforma A in una matrice triangolare superiore U;
  • I moltiplicatori utilizzati per eliminare questi elementi sono memorizzati in L, permettendo di rappresentare A come il prodotto LU.

Risultato della Decomposizione LU

Verifica:

A=LU=[101.51][4301.5]=[4363]A = LU = \begin{bmatrix} 1 & 0 \\ 1.5 & 1 \end{bmatrix} \begin{bmatrix} 4 & 3 \\ 0 & -1.5 \end{bmatrix} = \begin{bmatrix} 4 & 3 \\ 6 & 3 \end{bmatrix}

Ora il sistema Ax=bA \vec{x} = \vec{b} può essere risolto in due passaggi:

  1. Risolvere Ly=bL \vec{y} = \vec{b} tramite sostituzione in avanti;
  2. Risolvere Ux=yU \vec{x} = \vec{y} tramite sostituzione all'indietro.

Decomposizione QR

Si vuole esprimere una matrice AA come prodotto di due matrici:

A=QRA = QR

Dove:

  • AA è la matrice di input (ad esempio dati, coefficienti, ecc.);
  • QQ è una matrice ortogonale (le sue colonne sono vettori ortonormali);
  • RR è una matrice triangolare superiore.

Esempio di scomposizione delle forme:

A=[a1a2a3a4]=[q1q2q3q4][r11r120r22]A = \begin{bmatrix} a_1 & a_2 \\ a_3 & a_4 \end{bmatrix} = \begin{bmatrix} q_1 & q_2 \\ q_3 & q_4 \end{bmatrix} \begin{bmatrix} r_{11} & r_{12} \\ 0 & r_{22} \end{bmatrix}

Questa decomposizione viene spesso utilizzata quando:

  • La matrice A non è quadrata;
  • Si risolvono problemi ai minimi quadrati;
  • La decomposizione LU non è stabile.

Cosa sono i vettori ortonormali?

Vettori ortogonali

Due vettori u,vu, v sono ortogonali se il loro prodotto scalare è zero:

uv=0u \cdot v = 0

Vettore normalizzato

Un vettore uu è normalizzato quando u=1|u| = 1.

Insieme ortonormale

Un insieme di vettori {q1,q2,...,qk}\{q_1, q_2, ..., q_k\} è ortonormale se ciascuno ha lunghezza unitaria ed è mutuamente ortogonale:

qiqj={1, se  i=j,0, se  ij.q_i \cdot q_j = \begin{cases} 1,\ \text{se}\ \ i = j,\\ 0,\ \text{se}\ \ i \neq j. \end{cases}

Perché è importante: colonne ortonormali in QQ preservano la geometria, semplificano le proiezioni e migliorano la stabilità numerica.

Definizione della matrice A

Partiamo da questo esempio:

A=[4363]A = \begin{bmatrix} 4 & 3 \\ 6 & 3 \end{bmatrix}

Utilizzeremo il processo di Gram-Schmidt per trovare le matrici QQ e RR tali che A=QRA=QR. Il processo di Gram-Schmidt crea un insieme ortonormale di vettori a partire dalle colonne di AA.

Questo significa che i vettori in QQ sono tutti perpendicolari (ortogonali) tra loro e hanno lunghezza unitaria (normalizzati). Questa proprietà semplifica molti calcoli e migliora la stabilità numerica nella risoluzione dei sistemi.

Quindi, l'obiettivo qui è:

  • Rendere le colonne di QQ ortonormali;
  • Creare la matrice RR che codificherà le proiezioni.

Calcolo del primo vettore base

Estraiamo la prima colonna di AA:

a1=[46]a_1 = \begin{bmatrix} 4 \\ 6 \end{bmatrix}

Per normalizzarla, calcoliamo la norma:

a1=42+62=16+36=52|a_1| = \sqrt{4^2 + 6^2} = \sqrt{16 + 36} = \sqrt{52}

Poi:

q1=152[46]=[452652]q_1 = \frac{1}{\sqrt{52}} \begin{bmatrix} 4 \\ 6 \end{bmatrix} = \begin{bmatrix} \frac{4}{\sqrt{52}} \\ \frac{6}{\sqrt{52}} \end{bmatrix}

Questo è il primo vettore ortonormale per QQ.

Come normalizzare un vettore

Dato un vettore:

v=[v1v2vn]v = \begin{bmatrix} v_1 \\ v_2 \\ \vdots \\ v_n \end{bmatrix}

Calcoliamo la sua norma:

v=v12+v22+...+vn2|v| = \sqrt{v_1^2 + v_2^2 + ... + v^2_n}

Poi normalizziamo:

v^=1vv\hat{v} = \frac{1}{|v|}v

Esempio:

v=[34],  v=32+42=5v = \begin{bmatrix} 3 \\ 4 \end{bmatrix},\ \ |v| = \sqrt{3^2 + 4^2} = 5

Quindi, il nostro vettore normalizzato è:

v^=15[34]=[0.60.8]\hat{v} = \frac{1}{5}\begin{bmatrix} 3 \\ 4 \end{bmatrix} = \begin{bmatrix} 0.6 \\ 0.8 \end{bmatrix}

Una volta che sappiamo come normalizzare e ortogonalizzare i vettori, possiamo applicare il processo di Gram-Schmidt per formare la matrice QQ e utilizzarla per calcolare RR nella decomposizione QR.

Calcolo di q₂ con Gram-Schmidt

Per calcolare q2q_2, si parte dalla seconda colonna di AA:

a2=[33]a_2 = \begin{bmatrix} 3 \\ 3 \end{bmatrix}

Successivamente, si proietta a2a_2 su q1q_1:

r12=q1Ta2=152(43+63)=15230r_{12} = q_1^Ta_2 = \frac{1}{\sqrt{52}}(4 \cdot 3 + 6 \cdot 3) = \frac{1}{\sqrt{52}} \cdot 30

Si rimuove la proiezione da a2a_2:

u2=a2r12q1u_2 = a_2 - r_{12}q_1

Poi si normalizza (come mostrato sopra):

q2=u2u2q_2 = \frac{u_2}{|u_2|}

Ora sia q1q_1 che q2q_2 formano la base ortonormale per QQ. Si può ora assemblare il risultato finale:

Q=[q1q2],  R=[r11r120r22]Q = \begin{bmatrix} q_1 & q_2 \end{bmatrix},\ \ R = \begin{bmatrix} r_{11} & r_{12} \\ 0 & r_{22} \end{bmatrix}

Questi soddisfano:

A=QRA = QR
question mark

Qual è il primo passo nel processo di Gram-Schmidt per la decomposizione QR?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 8
some-alt