Calcolo numerico/Metodi iterativi

Da testwiki.
Vai alla navigazione Vai alla ricerca

Template:Calcolo numerico

Descrizione e osservazioni introduttive

Nei metodi iterativi si crea una successione di vettori 𝒙k=ϕ𝒙kβˆ’1+𝒄, avendo assegnato un vettore 𝒙0 iniziale, e una matrice Ο•. Il metodo viene iterato finchΓ© 𝒙k Γ¨ un'approssimazione sufficientemente buona della soluzione.

I metodi iterativi sono convenienti quando A è una matrice sparsa, cioè quando il numero degli elementi diversi da 0 è trascurabile.

Applicando un metodo diretto a matrici di questo tipo, ho il fenomeno del fill in.

I metodi iterativi non alterano la struttura della matrice, e la loro operazione di base Γ¨ quella di un prodotto matrice per vettore, che costa o(n2) operazioni se la matrice Γ¨ piena, e o(n) se la matrice Γ¨ sparsa (vantaggio computazionale).

Per sua natura un metodo iterativo Γ¨ meno sensibile all'errore algoritmico di un metodo diretto. Supponiamo che le operazioni iterative convergano. A causa dell'errore algoritmico la π’™Β―βˆ— puΓ² variare, ma questo non importa perchΓ© con questi metodi non si cerca di calcolare una soluzione esatta, ma solo un'approssimazione.

Il fatto di troncare la successione causa la presenza di un errore analitico, che era assente nei metodi diretti.

Si dice che π’™βˆ— converge a 𝒙k se questo vale puntualmente, cioΓ¨ se

π’™βˆ—,i=limkβ†’βˆžπ’™k,i

Esempio 2.9 (metodo di Jacobi)

Consideriamo la i-esima equazione di un sistema A𝒙=𝒃, cioΓ¨

βˆ‘j=1nAijxj=bi

ed esplicitando rispetto a xi otteniamo

xi=biβˆ’βˆ‘iβ‰ jAijxjaii

e al passo successivo otteniamo:

xk+1,i=biβˆ’βˆ‘iβ‰ jAijxj(k)Aii

In forma compatta, questo metodo si scrive come:

𝒙k+1=Dβˆ’1(π’ƒβˆ’(L+U)𝒙k)

dove

D=diag(A1)

L=tril(A1)triangolare dalla prima sottodiagonale a scendere

U=triu(A1)

Si ha quindi una scrittura della forma

𝒙k+1=ϕ𝒙k+𝒄

GeneralitΓ  sulle tecniche di splitting

Dato il sistema lineare A𝒙=𝒃, Aβˆˆβ„‚n,n, chiamiamo π’™βˆ— la soluzione esatta. Consideriamo uno splitting della matrice A che viene scritta come Mβˆ’N, dove M,N sono matrici quadrate e M Γ¨ invertibile.

Applichiamo lo splitting alla matrice A nel sistema lineare, cioè

A𝒙=Mπ’™βˆ’N𝒙=𝒃

e posso riscrivere

𝒙=Mβˆ’1N𝒙+Mβˆ’1𝒃

allora poniamo P=Mβˆ’1N e 𝒄=Mβˆ’1𝒃 quindi abbiamo il sistema

𝒙k=P𝒙+𝒄

Il metodo iterativo Γ¨

𝒙k+1=P𝒙k+𝒄relazioneβ–³

e P viene chiamata matrice di iterazione.

Supponiamo che la successione dei vetori 𝒙k converga, allora

limkβ†’βˆžπ’™k=π’™βˆ—

Passando al limite nella relazione β–³:

π’™βˆ—=Pπ’™βˆ—+𝒄,relazione βˆ˜

Sottraendo membro a membro le relazioni β–³ e ∘ otteniamo:

π’™βˆ—βˆ’π’™k+1=Pπ’™βˆ—+π’„βˆ’(P𝒙k+𝒄)=P(π’™βˆ—βˆ’π’™k)

dove π’™βˆ—βˆ’π’™k+1 Γ¨ l'errore assoluto Ek+1 al passo k+1-esimo, e si ha

Ek+1=PEk=P2Ekβˆ’1=…=Pk+1E0

Per ogni k,

Ek=PkE0

Convergenza del metodo iterativo

Template:Definizione

Il metodo iterativo β–³ Γ¨ convergente se e solo se

limkβ†’βˆžEk=0

per ogni E0, e quindi se

limkβ†’βˆžPk=0

Teorema 2.12 (condizione necessaria e sufficiente per la convergenza)

Il metodo è convergente, cioè

limkβ†’βˆžPk=matrice nulla

se e solo se ρ(P)≀1.

Dimostrazione

1⟢2: supponiamo che il metodo sia convergente, allora

limkβ†’βˆžEk=0

Scegliamo 𝒙0 in modo tale che Ek=π’™βˆ—βˆ’π’™0 sia un autovettore rispetto a Ξ» che realizza il raggio spettrale, quindi

Ek=PkE0=Ξ»kE0

(infatti E0 Γ¨ autovettore)

Ek=|PkE0|=|λ|k||E0|=ρ(P)k|E0|

allora

limkβ†’βˆžΟ(P)k=0

|ρ(P)|<1.

2⟢1:

Caso di P diagonalizzabile: P puΓ² essere scritta come P=SΞ»Sβˆ’1 dove Ξ» Γ¨ la matrice diagonale con entrate uguali agli autovalori (la maggior parte delle matrici sono diagonalizzabili).

Allora

Pk=(SΞ»Sβˆ’1)βˆ—(SΞ»Sβˆ’1)(SΞ»Sβˆ’1)…(SΞ»Sβˆ’1)=SΞ»kSβˆ’1

e Pk tende a 0 se Ξ» tende a 0, cioΓ¨ se e solo se |Ξ»i|≀1βˆ€i, quindi se e solo se ρ(P)≀1.

Caso generale: per dimostrare questo caso serve la nozione di forma normale di Shur.

Teorema 2.13 (forma normale di Shur)

Data una matrice Aβˆˆβ„‚n,n con autovalori Ξ»1,…,Ξ»n, allora esiste Q unitaria e una matrice T triangolare superiore con elementi diagonali tii=Ξ»i tali che A=QTQh.

Se A Γ¨ hermitiana, T diventa la matrice Ξ» degli autovalori.

Consideriamo la forma di Shur di P, cioè

P=QTQh

Allora consideriamo

Pk=(QTQh)(QTQh)…(QTQh)

e siccome Q Γ¨ unitria, QQh=I, quindi rimane

Pk=QTkQh

allora

limkβ†’βˆžPk=0

se e solo se

limkβ†’βˆžTk=0

Inoltre, ρ(P)=ρ(T) perché le due matrici sono simili, e si ha

0≀|Tk|≀|T|k≀(|T+E|)k=|F|k

Definisco la matrice E in modo che:

  1. E sia una matrice diagonale, non negativa
  2. |F|=|T+E|≀1,
  3. gli elementi diagonali di T+E sono a due a due distinti, cioè richiedo che la matrice T+E sia diagonalizzabile.

Allora, per F diagonalizzabile, ho giΓ  dimostrato che

limkβ†’βˆž|F|k=0

se e solo se

ρ(|F|k)≀1

Allora per confronto

limkβ†’βˆžTk=0

e segue la tesi.

cvd

Supponiamo di considerare |T| e di ordinarne gli autovalori per modulo decrescente, in modo che Ο„1β‰₯Ο„2β‰₯Ο„3. Allora la matrice E Γ¨ la matrice diagonale con entrate Ξ΅1,…,Ξ΅t dove

Ξ΅1=(1βˆ’Ο„1)/2

Ξ΅2=Ξ΅1/2

Ξ΅t=Ξ΅tβˆ’1/2

Con questa tecnica si riesce a garantire che gli autovalori di T+E sono a due a due distinti.

Altre osservazioni sulla convergenza

Vale la seguente proposizione:

Proposizione 2.4 [condizione sufficiente di convergenza]

Se esiste una norma matriciale indotta tale |P|≀1 allora il metodo Γ¨ convergente.

Dim. Per ogni norma matriciale indotta vale che ρ(P)≀|P|, allora ρ(P)≀1.

cvd

Osservazione 2.6

Supponiamo che esista una norma tale che

|P|≀c≀1

(cioè il metodo converge)

Allora, usando la stessa norma, l'errore decresce in modo monotono.

Dim. Consideriamo

|Ek|=|PEkβˆ’1|≀|P|βˆ—|Ekβˆ’1|≀cβˆ—|Ekβˆ’1|≀|Ekβˆ’1|

Inoltre sappiamo che

|𝒙kβˆ’π’™kβˆ’1|=|Pβˆ—π’™kβˆ’1+π’„βˆ’(Pβˆ—π’™kβˆ’2+𝒄)|=

=|P(𝒙kβˆ’1βˆ’π’™kβˆ’2)|≀|P|βˆ—|𝒙kβˆ’1βˆ’π’™kβˆ’2|

≀cβˆ—|𝒙kβˆ’1βˆ’π’™kβˆ’2|

e si ha una decrescita monotona anche dell'incremento.

cvd

Tuttavia ρ(P)≀1 non implica che |P|≀1 per qualsiasi norma, e l'errore prima di convergere puΓ² avere una crescita iniziale.

Esempio 2.10

Consideriamo una matrice d'iterazione

(0200)

ρ(P)=0

invece |P|2=2, infatti

Ph=(0020)

PhP=(4000)

e il polinomio caratteristico Γ¨

pΞ»=Ξ»2βˆ’4Ξ»

quindi max⁡|ρ(AhA)|=2.

|E0|2=0,|E1|2=2,|E2|2=0

Quindi, prima che il metodo converga, l'errore ha una crescita iniziale.

Stiamo considerando metodi che generano la successione

𝒙k+1=P𝒙k+𝒄

tali che ρ(P)<1. In uno spazio finitodimensionale, non abbiamo la dipendenza dalla norma.

Infatti

T(𝒙)=P𝒙+𝒄

T(𝒙)β†’π’™βˆ— se e solo se ρ(P)<1.

ρ(P) Γ¨ l'inf delle norme matriciali indotte della norma di P. Questo implica che, se ρ(P)<1, allora esiste una norma matriciale indotta βˆ— tale che

|P|βˆ—β‰€1

quindi

|π’™βˆ’π’š|=|P𝒙+π’„βˆ’(Pπ’š+𝒄)|=|P(π’™βˆ’π’š)|βˆ—

≀|P|βˆ—βˆ—|π’™βˆ’π’š|βˆ—

allora per il teorema di Banach abbiamo convergenza.

Siccome tutte le norme in uno spazio finitodimensionale sono topologicamente equivalenti, si ha convergenza rispetto a una qualsiasi norma.

Se |Ek|βˆ—β†’0, siccome |E|=Kβˆ—|Ek|βˆ—, anche la norma a primo membro tende a 0.

Template:Avanzamento