Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
Indice
1 Metodi iterativi classici
Applicazioni
3 Il metodo di Richardson
Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
Teorema
Se B < 1 allora il metodo iterativo con matrice di iterazione B` e convergente.
Teorema
Condizione necessaria e suciente per la convergenza del metodo iterativo con matrice di iterazione B ` e (B ) < 1, essendo (B ) il raggio spettrale della matrice B ossia (B ) = max |i | con i autovalori di B .
1i n
Matrici sparse
Il costo di un metodo iterativo ` e dato dal numero delle iterazioni x costo del prodotto di B per un vettore Quindi luso dei metodi iterativi ` e consigliato nel caso di matrici sparse e di grandi dimensioni. Il formato sparse ` e utilizzato in Matlab per ridurre i costi di memorizzazione della matrice. S=sparse(A) converte la matrice in formato full in una matrice in formato sparse tenendo in memoria solo gli elementi diversi da zero. S = sparse(i,j,s,m,n) usa i vettori i, j e s per costruire la matrice di dimensione m n tale che S(i(k),j(k)) = s(k). Il comando spy(A) mostra in un graco quali sono gli elementi di A non nulli ed il loro numero nnz. Il comando spdiags generalizza il comando diag alle matrici sparse.
Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel
Applicazioni
Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel
Applicazioni
Metodo di Jacobi
Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
La scelta P = D d` a luogo al metodo di Jacobi, che si pu` o scrivere componente per componente nella forma: n 1 (k ) (k +1) bi aij xj per i = 1, . . . , n. xi = aii
j =1, j =i
La matrice di iterazione ` e: BJ = D 1 (E + F ) = D 1 (D A) = I D 1 A.
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel
Applicazioni
Metodo di Gauss-Seidel
Ponendo P = D E si ricava il metodo di Gauss-Seidel che componente per componente si scrive: i 1 n 1 (k +1) (k +1) (k ) = bi aij xj aij xj xi aii
j =1 j =i +1
Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel
Applicazioni
Esercizio
Si considerino le seguenti matrici e vettori: 3 3 6 3 0 4 A2 = 4 7 8 A1 = 7 4 2 5 7 9 1 1 2 7 6 9 4 1 1 5 4 A4 = 4 A3 = 2 9 0 7 3 8 0 8 6
Calcolare i termini noti in modo che la soluzione sia
Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
x = (1, 1, 1)T . Applicare i metodi iterativi di Jacobi e Gauss-Seidel usando le function jacobi e gseidel come segue: [x,iter]=jacobi(A,b,x0,toll,nmax,output) [x,iter]=gseidel(A,b,x0,toll,nmax,output) Riportare in una tabella per ciascuna matrice il numero di iterazioni, il raggio spettrale, il residuo e la dierenza fra le due ultime iterate.
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel
Applicazioni
Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
I comandi per usare le function jacobi e gseidel sono rispettivamente: [x,iter]=jacobi(A,b,x0,toll,nmax,output) [x,iter]=gseidel(A,b,x0,toll,nmax,output) essendo A,b matrice e termine noto del sistema; x0 vettore iniziale; toll precisione desiderata (ad es. 1.e-6); nmax numero massimo di iterazioni (ad es. 300); x soluzione calcolata; iter numero di iterazioni eseguite; output se output=1 ottengo la tabella. Le function forniscono una tabella che contiene: 1 col numero di iterazione k 2 col residuo r (k ) = b Ax (k ) 3 col dierenza fra iterate successive (k ) = x (k ) x (k 1) 4 col stima del raggio spettrale (k ) / (k 1)
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel
Applicazioni
Esercizio (segue)
Confrontare il numero di iterazioni impiegate con quello previsto, calcolando il raggio spettrale della matrice di iterazione. Si ricorda che le matrici di iterazione dei metodi di Jacobi e di Gauss-Seidel sono date rispettivamente da: BJ = I D 1 A (D diagonale di A) BGS = I (D E )1 A (D E triangolare inferiore di A). Per calcolare gli autovalori usare il comando eig(B).
Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel
Applicazioni
Esercizio
Si consideri lequazione dierenziale con valori ai limiti: u (x ) = 1 + x x [0, 1],
2
u (0) = u (1) = 0.
3
Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
x x La soluzione esatta ` e: u (x ) = 2 3x 2 6 . Usare la function eqlim per calcolare con un metodo diretto la soluzione del sistema lineare risultante e calcolare lerrore rispetto alla soluzione esatta. Modicare la function eqlim in modo che fornisca anche la matrice A e il termine noto. Calcolare poi la soluzione del sistema lineare mediante i metodi iterativi di Jacobi e Gauss-Seidel usando le function jacobi e gseidel. Porre x0=zeros(n,1) essendo n la dimensione del sistema, tol=1e-6, nmax=300. facoltativo usare il comando spdiags per costruire la matrice A in formato sparse.
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel
Applicazioni
Esercizio (segue)
Confrontare la stima del raggio spettrale della matrice di
Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
problema e rispetto alla soluzione fornita da eqlim. Ripetere lesercizio per lequazione u (x ) = 1 + x e x con soluzione esatta u (x ) = e x 1 (e 5/3)x x 2 /2 x 3 /6. In questo caso lerrore relativo ottenuto con i metodi iterativi ` e paragonabile a quello ottenuto risolvendo il sistema lineare con il metodo diretto.
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson
Precondizionatori Il metodo di Richardson non stazionario
I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson
Precondizionatori Il metodo di Richardson non stazionario
I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson
Precondizionatori Il metodo di Richardson non stazionario
Precondizionatori
La matrice P che compare nellespressione del metodo di Richardson si chiama matrice di precondizionamento. La scelta di P deve essere guidata dalla seguente condizione: K (P 1 A) << K (A). Lideale sarebbe avere K (P 1 A) 1 e quindi P 1 rappresenta unapprossimazione dellinversa di A.
I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson
Precondizionatori Il metodo di Richardson non stazionario
1/2
2 aij
I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
A = (I CD 1 )D . Quindi linversa ` e data da: A1 = D 1 (I CD 1 )1 = D 1 (I +CD 1 +(CD 1 )2 +. . . ) Troncando lo sviluppo in serie ad una certa potenza si ottiene un valore approssimato di A1 . Per esempio si pu` o scegliere P 1 = D 1 (I + CD 1 ).
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson
Precondizionatori Il metodo di Richardson non stazionario
Fattorizzazione incompleta
I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
[L,U]=luinc(A,0) fornisce i fattori L e U con lo stesso schema di sparsit` a della matrice A. [L,U]=luinc(A,droptol) calcola la fattorizzazione incompleta eliminando i termini della fattorizzazione che sono inferiori a droptol.
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson
Precondizionatori Il metodo di Richardson non stazionario
Function richstaz
[x,iter]=richstaz(A,b,x0,toll,nmax,alfa,out,prec,P1,P2) INPUT A, b x0 toll nmax out prec prec=1 prec=2 prec=3 matrice e termine noto vettore iniziale tolleranza numero massimo di iterazioni se out=1 ottengo la tabella tipo di precondizionatore: precondizionatore diag: P1=P, P2 non assegnata P=P1*P2 con P1 e P2 matrici triangolari inf e sup approssimazione di P 1 = D 1 (I + CD 1 ) assegnare P1=D e P 2 = I + CD 1
I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson
Precondizionatori Il metodo di Richardson non stazionario
Problema di Neumann
Sia f C 0 ([a, b ]) tale che a f (x )dx = 0. Si consideri il seguente problema dierenziale: u (x ) = f (x ) per x (a, b ), u (a) = u (b ) = 0
b
I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
u (x )dx = 0.
a
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson
Precondizionatori Il metodo di Richardson non stazionario
I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
u h Rn soluzione discreta, m valore della media e 1 1 0 . . . 0 1 2 1 . . . 0 1 A1 = 2 . . . . . . . . . . . . . . . h 0 . . . 1 2 1 0 ... 0 1 1 1/2 f (x1 )/2 1 f ( x2 ) ... v = . . . b1 = 1 f (x ) n 1 1/2 f (xn )/2
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson
Precondizionatori Il metodo di Richardson non stazionario
Esercizio (segue)
Costruire la matrice Ah in formato sparse. Costruire il vettore e=ones(n,1); [-e 2*e -e] d` a una matrice che ha su ciascuna colonna le diagonali di A1 ; usare il comando A=spdiags([-e 2*e -e],-1:1,n,n) per costruire la matrice A1 ; correggere gli elementi A(1,1) e A(n,n); dividere per h2 la matrice costruita; costruire il vettore v ; mettere insieme tutti i blocchi A=[A v;-v 1]. visualizzare la struttura della matrice con il comando spy Costruire il vettore b . Risolvere il sistema lineare. La soluzione u h ` e data dalle prime n componenti del vettore soluzione. Plottare la soluzione ottenuta insieme a quella esatta.
I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson
Precondizionatori Il metodo di Richardson non stazionario
I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
1/2
2 aij
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson
Precondizionatori Il metodo di Richardson non stazionario
I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
La function dirichlet costruisce la matrice in formato sparse e il termine noto mediante il seguente comando: [X,Y,U,A,f]=dirichlet(effe,a1,a2,b1,b2,g,Nx,Ny)
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson
Precondizionatori Il metodo di Richardson non stazionario
Esercizio
Risoluzione del problema del Laplaciano con i metodi iterativi
Costruire la matrice dei coecienti e il termine noto corrispondente alla soluzione del problema (1) con dierenze nite. Per risolvere il sitema lineare ottenuto applicare i seguenti metodi (usare toll=1.e-5 e nmax=300): metodo diretto con eliminazione di Gauss (dirichlet); metodo di Jacobi; metodo di Gauss-Seidel; metodo di Richardson con precond. diagonale ( = .8); metodo di Richardson precond. con la fattorizzazione incompleta ( = 1); metodo di Richardson con precond. polinomiale ( = 1); Confrontare il numero di iterazioni richieste per n = 10. Per ciascun metodo calcolare lerrore relativo (usare la norma norm(v,fro)).
I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson
Precondizionatori Il metodo di Richardson non stazionario
I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
Per ricostruire la soluzione dopo aver applicato un metodo iterativo usare il comando [X,Y,U]=plottasol(u,a1,a2,b1,b2,g,Nx,Ny) i dati in input sono gli stessi della function dirichlet
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson
Precondizionatori Il metodo di Richardson non stazionario
Algoritmo
1. 2. 3. 4. Assegnazione dei dati: A, b , x (0) ; Calcolo del residuo iniziale: r (0) = b Ax (0) ; Calcolo della direzione iniziale: Pz (0) = r (0) ; Fino a convergenza ripetere:
z (k ) Az (k ) b. x = x (k ) + k z (k ) c. r (k +1) = r (k ) k Az (k ) d. Pz (k +1) = r (k +1)
(k +1)
I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
a. k =
z (k ) r (k )
T
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
Algoritmo
1. Assegnazione dei dati: A, b , x (0) ; 2. Calcolo del residuo iniziale: r (0) = b Ax (0) ; 3. Fino a convergenza ripetere:
r (k ) Ar (k ) b. x = x (k ) + k r (k ) (k +1) c. r = r (k ) k Ar (k )
(k +1)
a. k =
r (k ) r (k )
T
La function gradiente risolve il sistema lineare Ax = b con il metodo del gradiente: [x,iter]=gradiente(A,b,x0,toll,nmax)
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
Il metodo del gradiente coniugato si applica nel caso di matrici simmetriche e denite positive ed ` e caratterizzato dalla scelta di direzioni z (k ) tali che: z (k ) Az (j ) = 0
T
per k = j .
Siccome le direzioni z (k ) sono linearmente indipendenti il metodo del gradiente coniugato ` e a terminazione nita.
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
1. Assegnazione dei dati: A, b , x (0) ; 2. Residuo e direzione iniziale: r (0) = b Ax (0) , z (0) = r (0) ; 3. Fino a convergenza ripetere:
z (k ) Az (k ) b. x (k +1) = x (k ) + k z (k ) c. r (k +1) = r (k ) k Az (k ) T z (k ) Ar (k +1) d. k = T z (k ) Az (k ) (k +1) (k +1) e. z =r + k z ( k ) a. k = z (k ) r (k )
T T
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
x = pcg(A,b,toll,nmax)
Viene specicata la tolleranza (default tol=1.e-6) e il numero massimo di iterazioni (default nmax=min(N,20)).
x = pcg(A,b,toll,nmax,P)
fornisce la soluzione del sistema lineare precondizionato P 1 Ax = P 1 b .
x = pcg(A,b,toll,nmax,M1,M2)
fornisce la soluzione di P 1 Ax = P 1 b , essendo P = M 1 M 2.
x = pcg(A,b,toll,nmax,M1,M2,x0)
vettore iniziale x0 assegnato dallutente (default x0=zeros(size(b))).
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
il metodo ha ottenuto la soluzione; dopo nmax iterate non ` e stata raggiunta la soluzione; flag=2 la matrice P ` e mal condizionata; 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 eettuate resvec vettore dei residui in norma (iterata per iterata) flag=0 flag=1
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
Esercizio
Risoluzione del problema del Laplaciano con i metodi iterativi
Costruire la matrice dei coecienti e il termine noto corrispondente alla soluzione del problema (1) con dierenze nite (usare la function dirichlet). Per risolvere il sitema lineare ottenuto applicare i seguenti metodi (usare toll=1.e-5 e nmax=300): metodo di Richardson precondizionato con la fattorizzazione incompleta ( = 1); metodo del gradiente o di massima discesa; metodo del gradiente coniugato; metodo del gradiente coniugato precondizionato con la fattorizzazione incompleta; Confrontare il numero di iterazioni richieste per n = 10.
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
Nel caso di matrici non simmetriche o non denite positive si possono usare i seguenti metodi iterativi, che hanno la propriet` a di essere a terminazione nita, ossia in matematica esatta forniscono la soluzione esatta dopo n iterazioni. Funzione gmres cgs bicg bicgstab Metodo Generalized Minimum Residual Method Conjugate Gradients Squared Method BiConjugate Gradients Method BiConjugate Gradients Stabilized Method
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
gmres
x = gmres(A,b)
fornisce la soluzione del sistema lineare Ax = b mediante il metodo gmres.
x = gmres(A,b,restart)
il metodo gmres viene riinizializzato ogni restart iterazioni. Se restart=N o restart=[] il metodo non viene mai riinizializzato.
x = gmres(A,b,restart,toll,nmax)
Viene specicata la tolleranza (default tol=1.e-6) e il numero massimo di iterazioni esterne (default nmax=min(N/restart,10)).
x = gmres(A,b,restart,toll,nmax,P) x = gmres(A,b,restart,toll,nmax,M1,M2)
fornisce la soluzione del sistema lineare precondizionato P 1 Ax = P 1 b o P = M 1 M 2.
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
gmres (segue)
[x,flag,relres,iter,resvec] = gmres(A,b,...)
fornisce ulteriori informazioni:
flag
il metodo ha ottenuto la soluzione; dopo nmax iterate non ` e stata raggiunta la soluzione; flag=2 la matrice P ` e mal condizionata; flag=3 due successive iterate erano uguali; relres residuo relativo norm(b-A*x)/norm(b) iter numero di iterazioni eettuate: iter(1)<=nmax ` e il numero delle iterazioni del ciclo esterno; iter(1)<=restart numero delle iterate interne. resvec vettore dei residui in norma (iterata per iterata) flag=0 flag=1
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
Esercizio
Neumann con 10, 20 e 50 punti. Usare la fattorizzazione incompleta provvista da luinc per ottenere la soluzione nel caso di 50 punti.
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
x = solver(A,b,toll,nmax)
Viene specicata la tolleranza (default tol=1.e-6) e il numero massimo di iterazioni (default nmax=min(N,20)).
x = solver(A,b,toll,nmax,P)
fornisce la soluzione del sistema lineare precondizionato P 1 Ax = P 1 b .
x = solver(A,b,toll,nmax,M1,M2)
fornisce la soluzione di P 1 Ax = P 1 b , essendo P = M 1 M 2.
x = solver(A,b,toll,nmax,M1,M2,x0)
vettore iniziale x0 assegnato dallutente (default x0=zeros(size(b))).
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
il metodo ha ottenuto la soluzione; dopo nmax iterate non ` e stata raggiunta la soluzione; flag=2 la matrice P ` e mal condizionata; 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 eettuate resvec vettore dei residui in norma (iterata per iterata) flag=0 flag=1
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
Esercizio
Costruire la matrice: A=gallery(wilk,21); Costruire il termine noto in modo che la soluzione sia il
vettore di componenti tutte uguali a 1; Risolvere con bicgstab usando toll=1e-12 e nmax=15.
Sistemi lineari Lucia Gastaldi Metodi iterativi classici Metodi di Jacobi e di Gauss-Seidel Il metodo di Richardson I metodi del gradiente e del gradiente coniugato Metodi a terminazione nita per matrici qualunque
Esercizio
Costruire la matrice A con i seguenti comandi
load west0479;
A = west0479;
vettore di componenti tutte uguali a 1; Usare bicgstab come segue (tol=1e-12; nmax=20): [x0,fl0,rr0,it0,rv0] = bicgstab(A,b,tol,nmax); Controllare i valori di fl0 e it0; Plottare il residuo: semilogy(0:0.5:nmax,rv0/norm(b),-o); Usare luinc(A,0) per costruire il precondiziotore; Usare bicgstab come segue: [x1,fl1,rr1,it1,rv1] = bicgstab(A,b,tol,nmax,L,U); Poich eU` e singolare il metodo non converge. Riprovare usando luinc(A,droptol) con droptol=1e-5 e droptol=1e-6. Se fl1=0 plottare il residuo: semilogy(0:0.5:it1,rv1/norm(b),-o);