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

Suggested prompts:

Can you explain the main differences between LU and QR decomposition?

How do I know when to use LU decomposition versus QR decomposition?

Can you walk me through the steps of the Gram-Schmidt process in more detail?

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