Calcolo numerico/Metodi di rilassamento

Da testwiki.
Vai alla navigazione Vai alla ricerca

Template:Calcolo numerico

Definizione del metodo

Definiamo il metodo di Gauss-Seidel come:

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

Possiamo scrivere 𝒙k=𝒙kβˆ’1+𝒗k con 𝒗k=𝒙kβˆ’π’™kβˆ’1. La nuova iterata Γ¨ il punto in β„‚n che otteniamo a partire da 𝒙kβˆ’1 facendo un passo di lunghezza |𝒗k| nella direzione di 𝒗k.

Viene definita una nuova classe di metodi, detti di rilassamento, dove

𝒙k=𝒙kβˆ’1+Ο‰βˆ—π’—k

dove si fa un passo di lunghezza Ο‰βˆ—|𝒗k|.

Se Ο‰<1 abbiamo un sottorilassamento, mentre se Ο‰>1 abbiamo un soprarilassamento.

Un metodo di questo tipo viene chiamato SOR.

Sostituiamo nella relazione che definisce il metodo SOR l'espressione di 𝒗k che deriva da Gauss-Seidel.

𝒙k=𝒙kβˆ’1+Ο‰βˆ—(𝒙kβˆ’π’™kβˆ’1)=(1βˆ’Ο‰)𝒙kβˆ’1+ω𝒙k

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

e mettendo in evidenza Dβˆ’1 si ha:

𝒙k=Dβˆ’1[(1βˆ’Ο‰)Dβˆ—π’™kβˆ’1+Ο‰π’ƒβˆ’Ο‰L𝒙kβˆ’Ο‰U𝒙kβˆ’1]

Raccogliendo tutti i termini che moltiplicano 𝒙k:

(I+Ο‰Dβˆ’1L)𝒙k=Dβˆ’1((1βˆ’Ο‰)Dβˆ’Ο‰U)𝒙kβˆ’1+Ο‰Dβˆ’1𝒃

Moltiplicando per D:

(D+Ο‰L)𝒙k=((1βˆ’Ο‰)Dβˆ’Ο‰U)𝒙kβˆ’1+ω𝒃

Allora

P=(D+Ο‰L)βˆ’1βˆ—((1βˆ’Ο‰)Dβˆ’Ο‰U)

Γ¨ la matrice di iterazione, invece

𝒄=Ο‰(D+Ο‰L)βˆ’1𝒃

Allora

D𝒙k=((1βˆ’Ο‰)Dβˆ’Ο‰U)𝒙kβˆ’1βˆ’Ο‰L𝒙k+ω𝒃

Considerando la i-esima componente:

xi(k)=(1βˆ’Ο‰)xi(kβˆ’1)+Ο‰Aiiβˆ—[biβˆ’βˆ‘j<iaijxj(k)βˆ’βˆ‘j>iaijxj(k+1)]

e per Ο‰=1 si ha il metodo di Gauss-Seidel.

Il costo computazionale di questo metodo Γ¨ vicino a quello di Gauss-Seidel.

Ottimizzazione del metodo

Si vuole determinare l'Ο‰ ottimale, tale per cui il metodo converge piΓΉ velocemente.

Teorema 2.16 (teorema di Kan)

Condizione necessaria per la convergenza del SOR Γ¨ che |Ο‰βˆ’1|<1, ovvero Ο‰βˆˆ(0,2) se Ο‰ Γ¨ reale.

Vale la seguente condizione sufficiente per la convergenza:

Teorema 2.17 (Teorema di Ostrosky-Right)

Se A Γ¨ definita positiva e Ο‰βˆˆ(0,2) allora il metodo SOR Γ¨ convergente.

Dimostrazione

La matrice di iterazione Γ¨

PΟ‰=(D+Ο‰L)βˆ’1βˆ—((1βˆ’Ο‰)Dβˆ’Ο‰U)

D+Ο‰L Γ¨ una matrice triangolare inferiore con elementi a11,…ann sulla diagonale principale, e il determinante Γ¨ uguale al prodotto degli elementi sulla diagonale, cioΓ¨ Γ¨ uguale a det⁡D.

La matrice (1βˆ’Ο‰)Dβˆ’Ο‰U Γ¨ una triangolare superiore con elementi diagonali (1βˆ’Ο‰)a11,…,(1βˆ’Ο‰)ann mentre la parte triangolare ha entrate Ο‰aij. Il determinante Γ¨ ancora dato dal prodotto degli elementi sulla diagonale principale, e quindi Γ¨ (1βˆ’Ο‰)ndet⁡D.

Per il teorema di Binet:

det⁡PΟ‰=det⁡[(1βˆ’Ο‰)Dβˆ’Ο‰U]βˆ—1det⁡(D+Ο‰L)=(1βˆ’Ο‰)nβˆ—det⁡Ddet⁡D=(1βˆ’Ο‰)n

Inoltre

det⁡PΟ‰=∏i=1nΞ»i(PΟ‰)=

Siccome ciascun autovalore di Pω è minore del raggio spettrale, si ha

|1βˆ’Ο‰|n≀ρn(PΟ‰)

e se deve esserci convergenza dev'essere

ρ(PΟ‰)≀1

allora la relazione implica |1βˆ’Ο‰|≀1.

cvd

Nel caso delle matrici tridiagonali vale il seguente teorema:

Teorema 2.18

Sia Aβˆˆβ„‚n,n tridiagonale. Se Pj (matrice d'iterazione di Jacobi) Γ¨ tale che ρ(Pj)<1, e ha autovalori reali, allora esiste ed Γ¨ unico Ο‰βˆ— tale che

ρ(PΟ‰βˆ—)=minΟ‰βˆˆ(0,2){ρ(PΟ‰)}

Sappiamo che Ο‰βˆ—=21+1βˆ’Ο2(Pj).

È possibile rappresentare la variazione del raggio spettrale in funzione di Ο‰: traccio un grafico con Ο‰ in ascissa e pΟ‰ in ordinata, allora il grafico scende, ha una cuspide in Ο‰βˆ— e poi risale in maniera lineare.

Per Ο‰>Ο‰βˆ—, ρ(P(Ο‰βˆ—))=Ο‰βˆ’1.

Conviene stare a destra di Ο‰βˆ—, perchΓ© in questo modo il raggio spettrale sarΓ  piΓΉ grande di poco, invece a sinistra si Γ¨ in prossimitΓ  della cuspide e il valore varia di molto. Conviene approssimare per eccesso.

Template:Avanzamento