Calcolo numerico/Fattorizzazione QR

Da testwiki.
Vai alla navigazione Vai alla ricerca

Template:Calcolo numerico

Motivazioni

Q è una matrice unitaria, cioè QQh=QhQ=1, allora Q−1=Qh, e R è una triangolare superiore.

Ci chiediamo per quale motivo serve un'alternativa alla fattorizzazione PA=LU.

Il vantaggio della fattorizzazione QR è una maggior stabilità rispetto alla PA=LU. Infatti la QR è una fattorizzazione con matrici elementari unitarie, che conservano la norma 2.

Lo svantaggio è il raddoppio del costo computazionale.

Non occorre la tecnica del pivot.

Ci sono situazioni più sofisticate in cui si usa una tecnica di pivot per colonne, per garantire che gli elementi diagonali della R abbiano una certa proprietà di ordinamento.

Questa fattorizzazione si usa solo in casi limite, ad esempio nel calcolo degli autovalori (spettro completo) e del rango, e della s.v.d.

Data una matrice A hermitiana, allora si può diagonalizzare con trasformazioni unitarie, scrivendo QλQh.

La decomposizione in fattori singolari è l'estensione di quest'idea anche ai casi in cui la matrice non è simmetrica e non è quadrata.

La fattorizzazione QR esiste sempre ma non è unica.

Risoluzione del sistema

Con la fattorizzazione QR A viene fattorizzata nel prodotto di una matrice unitaria e di una triangolare superiore.

Q è unitaria quindi Q−1=Qh.

Nel sistema A𝒙=𝒃, cioè QR𝒙=𝒃, poniamo R𝒙=𝒚, risolvo prima

Q𝒚=𝒃⟶𝒚=Q−1𝒃=Qh𝒃prodotto matrice per vettore

quindi si risolve

R𝒙=𝒚

con R matrice triangolare.

Il costo di risoluzione è 2/3n3.

Matrici elementari di Hausolder

Template:Definizione

La matrice della diade ha rango uguale a 1.

Nella fattorizzazione QR consideriamo le matrici elementari di Hausolder (o matrici di riflessione). Queste matrici sono della forma:

P=I−β𝒗𝒗h,β∈ℝ,𝒗∈ℂn

Proposizione 2.2

Le matrici di riflessione sono hermitiane, e sono unitarie se scegliamo β=2|𝒗|2.

Dim.

Hermitiane:

Ph=I−β(𝒗𝒗h)h=I−β𝒗𝒗h=P

Unitarie: sappiamo che I=PPh, e per hermitianità

PPh=PP=(I−β𝒗𝒗h)(I−β𝒗𝒗h)

=I−β𝒗𝒗h−β𝒗𝒗h+β2𝒗𝒗h𝒗𝒗h

=I−2β𝒗𝒗h+β2𝒗(|𝒗|)2𝒗h

(infatti 𝒗h𝒗=(|𝒗|2)2)

quindi

I=I−2β𝒗𝒗h+β(|𝒗|2)2𝒗𝒗h

implica

β𝒗𝒗h∗[−2+β|𝒗|22]=0

cioè, se β≠0, deve valere −2+β|𝒗|22=0, cioè

β=2(|𝒗|2)2

cvd

Altre proprietà sulle matrici di Hausolder

Sia P=P(𝒗) (la matrice di Hausolder è univocamente determinata da 𝒗), con P=I−β𝒗𝒗h, e β=2(|𝒗|2)2. Allora per ogni 𝒙∈𝒗⊥, la matrice di Hausolder si comporta come l'identità. Infatti:

𝒙(I−β𝒗𝒗h)=𝒙−β𝒗𝒗h𝒙=𝒙

infatti 𝒙𝒗=0 per 𝒙∈𝒗⊥.

P applicata nel sottospazio span{𝒗} è:

(I−β𝒗𝒗h)(γ𝒗)=γ𝒗−βγ𝒗𝒗h𝒗

=γ𝒗−βγ|𝒗|2𝒗

e per definizione di β:

=γ𝒗−2(|𝒗|2)2γ|𝒗|2𝒗

=γ𝒗−2γ𝒗=−γ𝒗

cioè si ha una riflessione.

Esistenza della matrice elementare P

Teorema 2.10

Per ogni 𝒙∈ℂn∖0 esiste P∈ℂn×n matrice elementare di Hausolder tale che P𝒙=α𝒆1.

Dimostrazione

Dobbiamo determinare il parametro α∈ℂ e la matrice elementare di Hausolder P.

Siccome α∈ℂ, α=|α|∗eiθ (relazione ∘). Deve essere P𝒙=α𝒆1, allora

|P𝒙|=|α||𝒆1|2=|α|

Inoltre P è un'isometria quindi conserva la norma 2, cioè:

(|P𝒙|2)2=P2𝒙h𝒙=𝒙h𝒙=(|𝒙|2)2

allora, eguagliando le due espressioni trovate per (|P𝒙|2)2, ottengo:

|α|=|𝒙|2

Per determinare l'angolo θ, dev'essere

𝒙hP𝒙=𝒙hα𝒆1=α𝒙h𝒆1=αx¯1 è uno scalare

Per hermitianità di P:

(¯𝒙hP𝒙)=(𝒙hP𝒙)h=𝒙hPh𝒙=𝒙hP𝒙

allora siccome lo scalare è uguale al suo coniugato, è reale, quindi αx¯1∈ℝ.

x¯1∈ℂ, allora possiamo scriverlo come |x1|eiϕ (relazione ∘∘).

αx¯1=|α|eiθ|x1|eiϕ

e sostituendo l'espressione di α:

=|𝒙|2|x1|ei(θ−ϕ)

αx¯1∈ℝ, allora

θ−ϕ=kπ

ovvero θ=ϕ+δπ con δ=0,1.

In conclusione:

α=|α|eiθ=|𝒙|2∗ei(ϕ+δπ)

eiδπ=±1⟶α=±|𝒙|2eiϕ

e per la ∘∘,

=±|𝒙|2∗x1|x1|

Se x1=0, allora poniamo α=−|𝒙|2.

Vale che

P𝒙=(I−β𝒗𝒗h)(𝒙)=𝒙−β𝒗𝒗h𝒙,

e per definizione di β otteniamo:

P𝒙=𝒙−2(|𝒗|2)2𝒗h𝒙𝒗

Chiamiamo β̂ il coefficiente che moltiplica 𝒗, e mettiamo in evidenza β̂𝒗:

β̂𝒗=𝒙−P𝒙=𝒙−α𝒆1

Osservazione 2.5

A patto di escludere che β̂=0, è lecito porre β̂=1, in quanto

P(γ𝒗)=I−2|γ𝒗|2∗(γ𝒗)∗(γ𝒗h)

=I−2|γ|2|𝒗|2|γ|2∗𝒗𝒗h

=I−2|𝒗|2∗𝒗𝒗h=P(𝒗)

allora per il fatto che P(γ𝒗)=P(𝒗), possiamo porre β̂=1.

Tornando alla formula:

β̂𝒗=𝒙−α𝒆1

e ponendo β̂=1, otteniamo:

𝒗=𝒙−α𝒆1

Nota bene: possiamo escludere il caso β̂=0, infatti, per definizione, β̂=0 se e solo se 𝒙∈𝒗⊥, e possiamo scegliere il vettore 𝒙 al di fuori del complemento ortogonale.

Calcoliamo:

𝒗h𝒗=𝒗h(𝒙−α𝒆1)=(|𝒙|)2+|x1||𝒙|2

e la quantità è positiva se 𝒙≠0 come nell'ipotesi.

cvd

Riassumendo, poniamo

α={±|𝒙|2x1|x1|sex1≠0−|𝒙|2sex1=0

𝒗=𝒙−α𝒆1

𝒆1 modifica solo la prima componente del vettore 𝒗. Quindi:

v1=x1−α,=x1−(−|𝒙|2x1|x1|)=

=x1+|𝒙|2x1|x1|)=

=x1∗(|x1|+|𝒙|2|x1|)

e non c'è possibilità di errori di cancellazione.

Se 𝒙∈ℝn, α∈ℝ,𝒗∈ℝn per costruzione, allora P è una simmetrica ortogonale.

Il calcolo di 𝒗 costa n operazioni per il calcolo della norma di 𝒙, 2 operazioni moltiplicative, un'estrazione di radice, cioè un numero dell'ordine di n operazioni.

Algoritmo della fattorizzazione QR

Utilizziamo il teorema dimostrato per determinare la fattorizzazione QR.

Supponiamo di essere al passo k-esimo della fattorizzazione QR. Allora chiamiamo 𝒂k=(Akk,…,Ank) la k-esima sottocolonna della matrice A(k), che dobbiamo azzerare (corrisponde al vettore 𝒙 del teorema). Scegliamo il vettore 𝒗k=𝒗 che ha 0 nelle prime k−1 componenti, e le componenti successive sono:

𝒗k=γk(|𝒂k|2+|Akk(k)|)=sgnakk∗(|σk|)

𝒗k+1=ak+1(k)

𝒗k+2=ak+2(k)

…

𝒗n=an(k)

dove definiamo

γk={Akk|Akk|⟺Akk≠01seAkk=0

(per la definizione di 𝒗k sfruttiamo l'espressione ricavata nel teorema, cioè 𝒗k=𝒙−α𝒆1, e sfruttiamo anche l'espressione ricavata per v1)

βk=2(|𝒗k|2)2

Allora calcoliamo:

|𝒗k|2=|γk|2(|𝒂k|2+|Akk|)2+|𝒂k|22−|Akk|2

=(|𝒂k|2)2+2|Akk||𝒂k|2+(|Akk|)2+|𝒂k|22−|Akk|2

=2(|𝒂k|2)2+2|Akk||𝒂k|2

e raccogliendo 2|𝒂k|2 otteniamo:

=2|𝒂k|2∗[|𝒂k|2+|Akk|]

cioè

βk=22(|𝒗k|2)2

=22|𝒂k|2∗[|𝒂k|+Akk]

βk=1|𝒂k|2∗[|𝒂k|+Akk]

Allora abbiamo determinato univocamente la matrice

Pk=I−β𝒗𝒗h

Se il vettore 𝒂k è tutto nullo, consideriamo γk=1 e 𝒗k=0, in modo che a quel passo la matrice di Hausolder sia l'identità.

Applicando la matrice P trovata al vettore 𝒙 cioè alla colonna 𝒂k, tutte le entrate di 𝒂k da k+1 a n vengono azzerate, mentre si ha vk=Akk=−|𝒙|2 (infatti P𝒙=α𝒆1). Applichiamo poi la matrice di Hausolder alle colonne rimanenti di A.

Riepilogando, data la matrice A di partenza, con il primo passo P1A azzero la prima colonna e modifico A11, e poi ripeto il procedimento, per n−1 passi, e otteniamo la matrice triangolare superiore R.

Il prodotto di matrici unitarie è unitario, e sappiamo che

R=Pn−1…P2P1A

e per hermitianità:

A=P1P2…Pn−1R

quindi

Q=P1P2…Pn−1

Non unicità della fattorizzazione

Proposizione 2.3

Per ogni A esiste la fattorizzazione A=QR, ma non è unica.

Dim. Consideriamo una matrice di fase S, cioè una matrice diagonale con elementi θ1,…,θn con |θi|=1∀i, ed è una matrice unitaria. Allora SSh=I, cioè A=QR=QSShR, e definiamo Q¯,R¯ dove Q¯=QS e R¯=ShR, dove Q¯ è ancora unitaria e R¯ è triangolare superiore. Allora abbiamo comunque una fattorizzazione QR della matrice.

cvd

Questa proprietà può essere sfruttata per scegliere la R¯ in modo che gli elementi sulla diagonale siano ordinati in una certa maniera.

Fattorizzazione e risoluzione dei sistemi

Per risolvere il sistema lineare, non è necessario trovare esplicitamente la matrice Q, e nemmeno le Ph.

Passo 1: poniamo A1=A,𝒃1=𝒃, e chiamiamo T1 la matrice che accosta 𝒃1.

Passo 2: chiamiamo T2=P1T1, con

P1=I−β1𝒗1𝒗1h

Chiamiamo poi 𝒚1h il vettore riga 𝒗1hT1, in modo da scrivere:

T2=P1T1=T1−β1𝒗1𝒚1h

Passo k+1:

Tk+1=PkTk=Tk−βk𝒗k𝒚kh

con

𝒚kh=𝒗khTk

Infine

Passo n:

Tn=R⟶𝒚kh=𝒗kR

il vettore 𝒚 è stato calcolato senza calcolare esplicitamente le matrici Q, ed è tale che q𝒚=𝒃.

Costo computazionale

Per analizzare il costo del k-esimo passo, tengo conto che 𝒗k ha k−1 componenti nulle e n−k+1 componenti diverse da 0. Per calcolare 𝒗k, le operazioni sono quindi n−k+1+2=n−k+3.

………

Stabilità della fattorizzazione QR

Template:Definizione

Questa non è una norma matriciale indotta, infatti

|I|f=n

ed è diversa da 1, mentre con le norme matriciali indotte l'identità a norma 1.

Teorema 2.11 (analisi dell'errore all'indietro)

Sia 𝒙¯ la soluzione effettivamente calcolata con l'applicazione delle P¯k effettive alla matrice A per calcolare la R¯. Sia 𝒚¯ il vettore che compare nella risoluzione backward del sistema R𝒙=𝒚. Allora 𝒙¯ è soluzione esatta di un sistema

(A+δA)𝒙¯=𝒃+δb

dove

|δA|f<uγn2|A|f+n|R¯|f+o(u2)

|δb|2<uγn2|𝒃|2+O(u2)

L'entità della perturbazione dipende dai dati iniziali, dalle dimensioni della matrice, e dalla matrice di fattorizzazione. Non dipende dalla norma di Frobenius di Q che è 1.

Consideriamo le matrici A(k) al k-esimo passo di fattorizzazione, e calcolo il prodotto

Ak+1hAk+1=AkhPkhPkAk

siccome PkhPk=I allora AkhAk non varia con i passi di fattorizzazione.

Allora

tr(Ak+1hAk+1)=tr(AkhAk)

⟶|Ak+1|f2=|Ak|f2

allora

|Ak|f=|A|f

inoltre

|R|f=|An|f=|A|f

allora non c'è possibilità di esplosione dei coefficienti.

La QR è stabile e può essere fatta senza pivot.

Template:Avanzamento