• Non ci sono risultati.

SISTEMI LINEARI

N/A
N/A
Protected

Academic year: 2021

Condividi "SISTEMI LINEARI"

Copied!
26
0
0

Testo completo

(1)

SISTEMI LINEARI

PARTE II

Metodi Iterativi

(2)

Metodi iterativi

Metodi iterativi

1

Metodi iterativi

Quando `e conveniente usarli?

2

Metodi iterativi stazionari Il metodo di Jacobi

Il metodo di Gauss-Seidel Condizioni per la convergenza

3

Metodi del Gradiente

Metodo della pi `u ripida discesa

Metodo del gradiente coniugato

(3)

Metodi iterativi

1

Metodi iterativi

Quando `e conveniente usarli?

2

Metodi iterativi stazionari Il metodo di Jacobi

Il metodo di Gauss-Seidel Condizioni per la convergenza

3

Metodi del Gradiente

Metodo della pi `u ripida discesa

Metodo del gradiente coniugato

(4)

Metodi iterativi

Metodi iterativi

1

Metodi iterativi

Quando `e conveniente usarli?

2

Metodi iterativi stazionari Il metodo di Jacobi

Il metodo di Gauss-Seidel Condizioni per la convergenza

3

Metodi del Gradiente

Metodo della pi `u ripida discesa

Metodo del gradiente coniugato

(5)

Outline

1

Metodi iterativi

Quando `e conveniente usarli?

2

Metodi iterativi stazionari Il metodo di Jacobi

Il metodo di Gauss-Seidel Condizioni per la convergenza

3

Metodi del Gradiente

Metodo della pi `u ripida discesa

Metodo del gradiente coniugato

(6)

Metodi iterativi Stazionari Gradiente

Quando

Ax = b, A ∈ R

n×n

, b ∈ R

n

Convenienti quando:

La matrice A `e sparsa e senza una particolare struttura

la dimensione n `e grande

(7)

Metodi iterativi stazionari

Idea di base

Ax = b V x = Bx + c

parto da un vettore iniziale x

(0)

e genero la successione

x

(1)

= Bx

(0)

+ c, x

(2)

= Bx

(1)

+ c, . . . , x

(k )

= Bx

(k −1)

+ c . . . ...

Teorema

La successione {x

(k )

} al tendere di k all’infinito, converge alla

soluzione x del sistema se e solo se il raggio spettrale di B `e

minore di uno

(8)

Metodi iterativi Stazionari Gradiente

Jacobi Gauss-Seidel Convergenza

Criterio di arresto

E necessario stabilire quando terminano le iterazioni. ` Il procedimento termina quando

||x(k +1)−x(k )||

||x(k +1)||

≤ TOL

dove TOL `e una tolleranza prefissata

si supera il numero massimo di iterazioni NMAX stabilito a

priori

(9)

Algortimo e costo computazionale

Algoritmo

Input A, b, TOL, NMAX. Output x0

1

x 0 = 0

2

pongo l’errore iniziale e = 1 e k = 0 (contatore iterazioni)

3

calcolo la matrice B e il termine noto c

4

Fino a quando e > TOL & k ≤ NMAX x = B ∗ x 0 + c

e = kx − x 0k/kx k k = k + 1

x 0 = x

5

Se k > NMAX il metodo non converge, altrimenti x 0 `e la

soluzione.

(10)

Metodi iterativi Stazionari Gradiente

Jacobi Gauss-Seidel Convergenza

Costo computazionale

Ad ogni iterazione, il costo `e dato dal costo del prodotto matrice per vettore

B ∗ x .

Quindi `e dell’ordine del numero di elementi non nulli della matrice:

Se A `e sparsa

O(s) dove s  n

2

, in genere s < n

Se A `e piena

O(n

2

)

(11)

Outline

1

Metodi iterativi

Quando `e conveniente usarli?

2

Metodi iterativi stazionari Il metodo di Jacobi

Il metodo di Gauss-Seidel Condizioni per la convergenza

3

Metodi del Gradiente

Metodo della pi `u ripida discesa

Metodo del gradiente coniugato

(12)

Metodi iterativi Stazionari Gradiente

Jacobi Gauss-Seidel Convergenza

Il metodo di Jacobi

A = D + L + U a

ii

6= 0, i = 1 . . . , n

D =

• 0 0 0 0 • 0 0 0 0 • 0 0 0 0 •

 U =

0 • • • 0 0 • • 0 0 0 • 0 0 0 0

 L =

0 0 0 0

• 0 0 0

• • 0 0

• • • 0

La matrice di iterazione `e

B = −D

−1

(L + U) e

c = D

−1

b

(13)

Il metodo di Jacobi

Implementare l’algoritmo in forma vettoriale Comandi utili

>>tril(A)

Estrae la matrice triangolare inferiore inclusa la diagonale

>>triu(A)

Estrae la matrice triangolare superiore inclusa la diagonale

>>d=diag(A)

estrae la diagonale di A (d `e un vettore)

>>D=diag(d)

matrice diagonale con elementi uguali agli elementi di d

>>eig(A)

restituisce tutti gli autovalori della matrice A

(14)

Metodi iterativi Stazionari Gradiente

Jacobi Gauss-Seidel Convergenza

Outline

1

Metodi iterativi

Quando `e conveniente usarli?

2

Metodi iterativi stazionari Il metodo di Jacobi

Il metodo di Gauss-Seidel Condizioni per la convergenza

3

Metodi del Gradiente

Metodo della pi `u ripida discesa

Metodo del gradiente coniugato

(15)

Il metodo di Gauss-Seidel

Se penso al metodo di Jacobi in forma scalare, si ha che la k + 1−esima iterazione `e definita da

x

i(k +1)

= b

i

− P

n

j=1,j6=i

a

ij

x

j(k )

a

ii

, i = 1, . . . , n

Il metodo di Gauss-Seidel sfrutta le componenti dell’iterata k + 1− esima gi `a calcolate

x

i(k +1)

= b

i

− P

i−1

j=1

a

ij

x

j(k +1)

− P

n

j=i+1

a

ij

x

j(k )

a

ii

, i = 1, . . . , n In questo caso la matrice di iterazione `e

B = −(L + D)

−1

U

(16)

Metodi iterativi Stazionari Gradiente

Jacobi Gauss-Seidel Convergenza

Il metodo di Gauss-Seidel: esempio di function

function [x,iter]=gseidel(a,b,x0,nmax,toll) [n,n]=size(a); iter = 0; err=1; x = x0;

while (err> toll) & (iter <= nmax) iter = iter + 1;

x(1)=(b(1)-a(1,2:n)*x(2:n))/a(1,1);

for i=2:n-1

x(i)=(b(i)-a(i,1:i-1)*x(1:i-1)- a(i,i+1:n)*x(i+1:n))/a(i,i);

end

x(n)=(b(n)-a(n,1:n-1)*x(1:n-1))/a(n,n);

err = norm (x-x0) / norm(x);

x0 = x;

(17)

Outline

1

Metodi iterativi

Quando `e conveniente usarli?

2

Metodi iterativi stazionari Il metodo di Jacobi

Il metodo di Gauss-Seidel Condizioni per la convergenza

3

Metodi del Gradiente

Metodo della pi `u ripida discesa

Metodo del gradiente coniugato

(18)

Metodi iterativi Stazionari Gradiente

Jacobi Gauss-Seidel Convergenza

Condizioni sufficienti per la convergenza

Jacobi

Se la matrice A `e a diagonale dominante V il metodo converge

Gauss-Seidel

Se la matrice A `e a diagonale dominante V il metodo converge

Se A e simmetrica definita positiva V il metodo converge

Quando entrambi convergono, il metodo di Gauss-Seidel

converge pi `u rapidamente alla soluzione. Ci `o significa che il

numero di iterazioni necessarie per raggiungere la tolleranza

(19)

Metodi del gradiente

Ax = b

A simmetrica e definita positiva

Trovare la soluzione x del sistema equivale a minimizzare la forma quadratica

f (x ) = 1

2 x

T

Ax − x

T

b

parto da un vettore tentativo x

(0)

e genero la successione x

(k +1)

= x

(k )

+ α

k

p

(k )

p

(k )

`e la direzione lungo la quale mi sposto

α

k

in generale `e scelto in modo che f (x

(k )

+ α

k

p

(k )

) sia

minima lungo la direzione scelta

(20)

Metodi iterativi Stazionari Gradiente

ripida discesa Gradiente coniugato

Outline

1

Metodi iterativi

Quando `e conveniente usarli?

2

Metodi iterativi stazionari Il metodo di Jacobi

Il metodo di Gauss-Seidel Condizioni per la convergenza

3

Metodi del Gradiente

Metodo della pi `u ripida discesa

Metodo del gradiente coniugato

(21)

Metodo della pi `u ripida discesa

Si sceglie

p

(k )

= r

(k )

= −∇f (x

(k )

), dove

r

(k )

= b − Ax

(k )

α

k

=

(r(r(k )(k )))TTArr(k )(k )

Con queste scelte si ha che le direzioni p

(k )

e p

(k +1)

sono ortogonali. Ovvero

(r

(k +1)

, r

(k )

) = 0.

(22)

Metodi iterativi Stazionari Gradiente

ripida discesa Gradiente coniugato

Metodo della pi `u ripida discesa

Convergenza

La successione x

(k )

converge a x per k → ∞ La velocit `a di convergenza dipende dall’autovalore massimo λ

M

e dall’ autovalore minimo λ

m

. Ad ogni iterazione l’errore si riduce del fattore

λ

M

− λ

m

λ

M

+ λ

m

.

Quando λ

M

e λ

m

sono vicini la velocit `a di convergenza pu `o

essere molto lenta.

(23)

Algoritmo ...

Fino a quando e > TOL & k ≤ NMAX r = b − Ax 0

α =

rrTTArr

x = x 0 + αr k = k + 1

e = kx − x 0k/kx k x 0 = x

....

(24)

Metodi iterativi Stazionari Gradiente

ripida discesa Gradiente coniugato

Outline

1

Metodi iterativi

Quando `e conveniente usarli?

2

Metodi iterativi stazionari Il metodo di Jacobi

Il metodo di Gauss-Seidel Condizioni per la convergenza

3

Metodi del Gradiente

Metodo della pi `u ripida discesa

Metodo del gradiente coniugato

(25)

Metodo del gradiente coniugato

Per evitare problemi legati alla lentezza del metodo della pi `u ripida discesa, si possono scegliere le direzioni p

(k )

in modo diverso.

Gradiente coniugato

Si costruiscono dei vettori A-coniugati, cio `e tali che (Ap

(i)

, p

(j)

) = 0

Se non ci fossero gli errori di calcolo, dopo n iterazioni avrei la soluzione esatta.

>>x=pcg(A,b,toll,nmax)

fornisce la soluzione del sistema Ax = b mediante il metodo

del gradiente coniugato.

(26)

Metodi iterativi Stazionari Gradiente

ripida discesa Gradiente coniugato

Metodo del gradiente coniugato

[x,flag,relres,iter,resvec]=pcg(A,b,toll,nmax) fornisce ulteriori informazioni

flag

flag=0 il metodo ha ottenuto soluzione

flag=1 dopo nmax iterazioni non `e stata raggiunta la soluzione

flag=2 il precondizionatore P `e malcondizionato flag=3 due successive iterate erano uguali

flag=4 una delle quantit `a scalari `e diventata troppo piccola o troppo grande

relres residuo relativo: norm(b-A*x)/norm(b)

iter numero di iterazioni effettuate

Riferimenti

Documenti correlati

Per un sistema omogeneo la prima alternativa non si realizza mai, dunque o esiste un’unica soluzione, la banale, o esistono infi- nite soluzioni.. Come conseguenza del teorema di

Prova scritta di Matematica Applicata 27 febbraio

Come misura della velocit` a possiamo utilizzare il numero di iterazioni necessarie per capire a quale delle radici converge la successione: pi` u iterazioni sono necessarie

Alvise Sommariva Metodi iterativi per la soluzione di sistemi lineari 48/ 81.. Supponiamo di dover risolvere il sistema lineare Ax = b.. Il metodo del gradiente coniugato ha

Se A ` e una matrice simmetrica e definita positiva di ordine n, allora il metodo del gradiente coniugato ` e convergente e fornisce in aritmetica esatta la soluzione del sistema Ax =

Se A ` e una matrice simmetrica e definita positiva di ordine n, allora il metodo del gradiente coniugato ` e convergente e fornisce in aritmetica esatta la soluzione del sistema Ax =

Il metodo SOR ha quale costante quasi ottimale w = 1.350; Il metodo del gradiente coniugato converge in meno iterazioni rispetto agli altri metodi (solo 5 iterazioni, ma si osservi

Convergenza del metodo di Jacobi e Gauss-Seidel per matrici a predominanza diagonale.. Teorema di Kahan (condizione