ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi...

31
ISTITUTO DI ISTRUZIONE ISTITUTO DI ISTRUZIONE SUPERIORE SUPERIORE A. EINSTEIN A. EINSTEIN CORSO AM08 CORSO AM08 Approfondimenti di Approfondimenti di matematica matematica

Transcript of ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi...

Page 1: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

ISTITUTO DI ISTRUZIONE ISTITUTO DI ISTRUZIONE SUPERIORESUPERIORE

““A. EINSTEINA. EINSTEIN””

CORSO AM08CORSO AM08Approfondimenti di Approfondimenti di

matematicamatematica

Page 2: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

Sistemi lineari e Sistemi lineari e Metodi iterativiMetodi iterativi

Prof. Fernando Prof. Fernando DD’’AngeloAngelo

Page 3: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

CosCos’è’è un metodo iterativo?un metodo iterativo?

I metodi iterativi consentono di I metodi iterativi consentono di ottenere una soluzione approssimata ottenere una soluzione approssimata del sistema lineare del sistema lineare AxAx = b mediante = b mediante una successione di vettori {una successione di vettori {xxkk,k ,k ≥≥ 0}, 0}, a partire da un vettore iniziale xa partire da un vettore iniziale x00

AffinchAffinchèè il metodo iterativo sia efficace il metodo iterativo sia efficace èè necessario che la successione necessario che la successione converga verso la soluzione x del converga verso la soluzione x del sistema. sistema.

Page 4: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

La struttura generale di un La struttura generale di un metodo iterativometodo iterativo

Ax=bAx=bSi decompone la matrice A dei Si decompone la matrice A dei

coefficienticoefficientiA=MA=M--NNIn modo cheIn modo che

e M sia facilmente invertibilee M sia facilmente invertibile

0)det( ≠M

Page 5: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

Il sistema si riscrive:Il sistema si riscrive:

a)a) Ax=bAx=bb)b) (M(M--N)N)x=bx=bc)c) Mx=Nx+bMx=Nx+bd)d) x=Mx=M--11Nx+MNx+M--11bbe)e) x=Px+qx=Px+q

Page 6: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

Iterazione di x=Px+qIterazione di x=Px+q

xx(o)(o) vettore inizialevettore inizialexx(1)(1)=P=P xx(o)(o) +q+qxx(2)(2)=P=P xx(1)(1) +q+q……………………xx(i+1)(i+1)=P=P xx(i)(i) +q+q

Page 7: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

Convergenza di un metodo iterativoConvergenza di un metodo iterativo

Un metodo iterativo si dice Un metodo iterativo si dice convegenteconvegente se la se la successione successione {x{x(i)(i)} } èè convergente per ogni convergente per ogni possibile scelta del vettore iniziale possibile scelta del vettore iniziale xx(o)(o)

Condizione necessaria e sufficiente per la Condizione necessaria e sufficiente per la convergenza di un metodo iterativo convergenza di un metodo iterativo èè che il che il raggio spettrale della matrice di iterazioneraggio spettrale della matrice di iterazioneP=MP=M--11N sia minore di 1N sia minore di 1

Il raggio spettrale di una matrice si calcola in Il raggio spettrale di una matrice si calcola in OctaveOctave nel modo seguente:nel modo seguente:

ρρ(P)=(P)=max(abs(eig(Pmax(abs(eig(P))))))

Page 8: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

SoluzioneSoluzione

xx**=x=x¶¶=lim=limii-->>¶¶xx(i)(i)

Page 9: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

I Metodi di I Metodi di JacobiJacobi e e GaussGauss--SeidelSeidel

Page 10: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

Il metodo di Il metodo di JacobiJacobi

⎩⎨⎧

≤>−

=jijia

b ijij 0 ⎩

⎨⎧

<−≥

=jiaji

cij

ij

0

Data la matrice quadrata A definiamo Data la matrice quadrata A definiamo tre nuove matrici:tre nuove matrici:

D:matrice dei valori diagonali di AD:matrice dei valori diagonali di AB,C:matrici triangolari inferiori e B,C:matrici triangolari inferiori e superiori definite dasuperiori definite da

Page 11: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

A=DA=D--((B+CB+C))M=DM=D

N=B+CN=B+CPPJJ=M=M--11N=DN=D--11((B+CB+C))

qqJJ =M=M--11b=Db=D--11bb

Page 12: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

Iterazione di Iterazione di x=x= PPJJ x+x+ qqJJ

xx(o)(o) vettore inizialevettore inizialexx(1)(1)==PPJJ xx(o)(o) + + qqJJ

xx(2)(2)==PPJJ xx(1)(1) + + qqJJ

……………………xx(i+1)(i+1)==PPJJ xx(i)(i) + + qqJJ

Page 13: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

Il metodo di Il metodo di GaussGauss--SeidelSeidel

⎩⎨⎧

≤>−

=jijia

b ijij 0 ⎩

⎨⎧

<−≥

=jiaji

cij

ij

0

Data la matrice quadrata A definiamo Data la matrice quadrata A definiamo tre nuove matrici:tre nuove matrici:

D:matrice dei valori diagonali di AD:matrice dei valori diagonali di AB,C:matrici triangolari inferiori e B,C:matrici triangolari inferiori e superiori definite dasuperiori definite da

Page 14: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

A=DA=D--((B+CB+C)=(D)=(D--B)B)--CCM=DM=D--BBN=CN=C

PPGSGS=M=M--11N=(DN=(D--B)B)--11CCqqGSGS =M=M--11b=(Db=(D--B)B)--11bb

Page 15: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

Iterazione di Iterazione di x=x=PPGSGSx+ x+ qqGSGS

xx(o)(o) vettore inizialevettore inizialexx(1)(1)==PPGSGS xx(o)(o) + + qqGSGS

xx(2)(2)==PPGSGS xx(1)(1) + + qqGSGS

……………………xx(i+1)(i+1)==PPGSGS xx(i)(i) + + qqGSGS

Page 16: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

ApplicazioneApplicazione deidei metodimetodi in un in un casocasoconcretoconcreto utilizzandoutilizzando OctaveOctave

Page 17: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

Il Il programmaprogramma principaleprincipale sisi trovatrova nelnelfile file jac_gs.mjac_gs.m;;

DalDal programmaprogramma principaleprincipale vengonovengonochiamatechiamate due functions :due functions :

(a)(a) matrice.mmatrice.m cheche èè semplicementesemplicementeunauna proceduraprocedura per per inserireinserire dadatastieratastiera matricimatrici o o vettorivettori con con comoditcomoditàà;;

(b)(b) met_jac_gs.mmet_jac_gs.m cheche èè la la proceduraproceduracheche svolgesvolge i i calcolicalcoli..

Page 18: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

## Listato del file ## Listato del file jac_gs.mjac_gs.m## ## AuthorAuthor: Prof. Fernando : Prof. Fernando DD’’AngeloAngelo## ## CreatedCreated: 2009: 2009--0101--1111

dispdisp("Questo script consente di risolvere iterativamente un sistema ("Questo script consente di risolvere iterativamente un sistema lineare lineare Ax=bAx=b ");");dispdisp("quale metodo iterativo vuoi usare ?")("quale metodo iterativo vuoi usare ?")n_met=input("scrivi 1 per n_met=input("scrivi 1 per jacobijacobi oppure 2 per oppure 2 per gaussgauss--seidelseidel ");");dispdisp("definisci la matrice A dei coefficienti mediante procedura gui("definisci la matrice A dei coefficienti mediante procedura guidata: ");data: ");nr=inputnr=input("inserisci il numero di righe ")("inserisci il numero di righe ")nc=inputnc=input("inserisci il numero di colonne ")("inserisci il numero di colonne ")nome_elemento="a";nome_elemento="a";A=matriceA=matrice((nrnr,,ncnc,,nome_elementonome_elemento))dispdisp("definisci il vettore colonna b dei termini noti mediante proce("definisci il vettore colonna b dei termini noti mediante procedura dura guidata: ");guidata: ");b=matriceb=matrice((nrnr,1,"b"),1,"b")x0=rand(x0=rand(nrnr,1),1)tol=inputtol=input("quanto deve valere la tolleranza ? ");("quanto deve valere la tolleranza ? ");[sol,iter,errore]=met_jac_gs(A,b,x0,[sol,iter,errore]=met_jac_gs(A,b,x0,toltol,,n_metn_met););dispdisp("la soluzione e':");("la soluzione e':");solsoldispdisp("il numero di iterazioni impiegato e' :");("il numero di iterazioni impiegato e' :");iteriterdispdisp("guarda il grafico dell'errore in funzione del numero di iteraz("guarda il grafico dell'errore in funzione del numero di iterazioni");ioni");plot(1:plot(1:lengthlength(errore),(errore),erroreerrore,"1,"1--*")*")

Page 19: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

## Listato del file ## Listato del file met_jac_gs.mmet_jac_gs.m## ## AuthorAuthor: Prof. Fernando : Prof. Fernando DD’’AngeloAngelo## ## 20092009--0101--1111

functionfunction [sol,iter,errore]=met_jac_gs(A,b,x0,[sol,iter,errore]=met_jac_gs(A,b,x0,toltol,,n_metn_met))itermax=100;itermax=100;D=diagD=diag((diagdiag(A));(A));ifif (n_met==1)(n_met==1)

M1=inv(D);M1=inv(D);N=N=--(A(A--D);D);Pj=M1*N;Pj=M1*N;dispdisp("raggio spettrale matrice iterazione di ("raggio spettrale matrice iterazione di JacobiJacobi");");maxmax((absabs((eigeig((PjPj))))))qj=M1*b;qj=M1*b;x1=Pj*x0+qj;x1=Pj*x0+qj;iter=1;iter=1;errore(iter)errore(iter)=norm=norm(x1(x1--x0);x0);whilewhile((normnorm(x1(x1--x0,2)>x0,2)>=tol=tol & iter <& iter <=itermax=itermax))

x0=x1;x0=x1;x1=Pj*x0+qj;x1=Pj*x0+qj;iter=iter+1;iter=iter+1;errore(iter)errore(iter)=norm=norm(x1(x1--x0);x0);

endend((segue nella prossima pagina)segue nella prossima pagina)

Page 20: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

elseelseL=trilL=tril(A)(A)--D; D; U=triuU=triu(A)(A)--D; D; DI=invDI=inv((D+LD+L); ); GS=GS=--DI*U;DI*U;dispdisp("raggio spettrale matrice iterazione di ("raggio spettrale matrice iterazione di GaussSeidelGaussSeidel");");maxmax((absabs((eigeig(GS)))(GS)))b1=DI*b;b1=DI*b;x1=GS*x0+b1;x1=GS*x0+b1;iter=1;iter=1;errore(iter)errore(iter)=norm=norm(x1(x1--x0);x0);whilewhile((normnorm(x1(x1--x0,2)>x0,2)>=tol=tol & iter<& iter<=itermax=itermax))

x0=x1;x0=x1;x1=GS*x0+b1;x1=GS*x0+b1;iter=iter+1;iter=iter+1;errore(iter)errore(iter)=norm=norm(x1(x1--x0);x0);

endendendendifif iter>iter>itermaxitermax

errorerror('non converge nel numero di iterazioni prefissate')('non converge nel numero di iterazioni prefissate')elseelse

sol=x1;sol=x1;iter=iteriter=iter--1;1;

endendendend

Page 21: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

## Listato del file ## Listato del file matrice.mmatrice.m## ## AuthorAuthor: Prof. Fernando : Prof. Fernando DD’’AngeloAngelo## 2009## 2009--0101--1111

functionfunction [y][y]=matrice=matrice((nrnr,,ncnc,,labellabel))%Funzione%Funzione per inserire una matrice in per inserire una matrice in OctaveOctave%da%da usare con la seguente sintassi:usare con la seguente sintassi:% [y]% [y]=matrice=matrice((nrnr,,ncnc))%in%in cui si cui si avra'avra' che:che:% % nrnr = numero di righe della matrice da inserire= numero di righe della matrice da inserire% % ncnc = numero di colonne della matrice da inserire= numero di colonne della matrice da inserire% % labellabel èè l'etichetta della matrice o vettore passata dal l'etichetta della matrice o vettore passata dal programma chiamanteprogramma chiamanteforfor i=1:i=1:nrnrforfor j=1:j=1:ncncy(i,j)y(i,j)=input=input((sprintfsprintf([([labellabel,"[,"[%o%o,,%o%o]="],i,j));]="],i,j));end;end;end;end;endend

Page 22: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

Applicazione dei metodi di Applicazione dei metodi di JacobiJacobi e e GaussGauss--SeidelSeidel in un caso in un caso

concreto.concreto.

bXA =⋅

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

−−−

−−−

=

4011141111401114

A

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

=

4

3

2

1

xxxx

X

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

−=

01

21

b

Page 23: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

⎛−

=

4000040000400004

D A=DA=D--((B+CB+C))

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

=

0011001100000000

B

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

−−−−

=

0000100011001110

C

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

−−−

−−−

=

4011141111401114

A

Page 24: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

Risoluzione con il metodo della matrice inversaRisoluzione con il metodo della matrice inversa

>> >> A=A=[[4 [[4 --1 1 1];[0 1 1 1];[0 --4 4 --1 1];[1 1];[--1 1 --11 4 1];[1 4 1];[1 --1 0 4]]1 0 4]]A =A =

4 4 --1 1 11 1 10 0 --4 4 --1 11 1--1 1 --11 4 14 11 1 --1 0 41 0 4

>>>>b=b=[1 2 [1 2 --1 0]'1 0]'b =b =

1122--1100

>> >> xstar=invxstar=inv(A)(A)*b*bxstarxstar ==

0.241380.24138--0.478930.47893--0.264370.26437--0.180080.18008

Page 25: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

Adesso invece utilizziamo il metodo di Adesso invece utilizziamo il metodo di JacobiJacobi..octaveoctave--3.0.2.exe:1:C:3.0.2.exe:1:C:\\ProgrammiProgrammi\\OctaveOctave\\3.0.2_gcc3.0.2_gcc--4.3.04.3.0\\binbin> > jac_gsjac_gsQuesto script consente di risolvere iterativamente un sistema liQuesto script consente di risolvere iterativamente un sistema lineare neare Ax=bAx=bquale metodo iterativo vuoi usare ?quale metodo iterativo vuoi usare ?scrivi 1 per scrivi 1 per jacobijacobi oppure 2 per oppure 2 per gaussgauss--seidelseidel 11definisci la matrice A dei coefficienti mediante procedura guidadefinisci la matrice A dei coefficienti mediante procedura guidata:ta:inserisci il numero di righe 4inserisci il numero di righe 4nrnr = 4= 4inserisci il numero di colonne 4inserisci il numero di colonne 4ncnc = 4= 4a[1,1]=4a[1,1]=4a[1,2]=a[1,2]=--11a[1,3]=1a[1,3]=1a[1,4]=1a[1,4]=1a[2,1]=0a[2,1]=0a[2,2]=a[2,2]=--44a[2,3]=a[2,3]=--11a[2,4]=1a[2,4]=1a[3,1]=a[3,1]=--11a[3,2]=a[3,2]=--11a[3,3]=4a[3,3]=4a[3,4]=1a[3,4]=1a[4,1]=1a[4,1]=1a[4,2]=a[4,2]=--11a[4,3]=0a[4,3]=0a[4,4]=4a[4,4]=4A =A =

4 4 --1 1 11 1 10 0 --4 4 --1 11 1

--1 1 --11 4 14 11 1 --1 0 41 0 4

Page 26: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

definisci il vettore colonna b dei termini noti mediante procedudefinisci il vettore colonna b dei termini noti mediante procedura guidata:ra guidata:b[1,1]=1b[1,1]=1b[2,1]=2b[2,1]=2b[3,1]=b[3,1]=--11b[4,1]=0b[4,1]=0b =b =

1122

--1100

x0 =x0 =

0.805020.805020.263730.263730.730390.730390.928850.92885

quanto deve valere la tolleranza ? quanto deve valere la tolleranza ? 1.e1.e--88raggio spettrale matrice iterazione di raggio spettrale matrice iterazione di JacobiJacobiansans = 0.39369= 0.39369la soluzione e':la soluzione e':sol =sol =

0.241380.24138--0.478930.47893--0.264370.26437--0.180080.18008

il numero di iterazioni impiegato e' :il numero di iterazioni impiegato e' :iter = 20iter = 20guarda il grafico dell'errore in funzione del numero di iterazioguarda il grafico dell'errore in funzione del numero di iterazionini

Page 27: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

Andamento dellAndamento dell’’errore in funzione errore in funzione del numero di iterazioni per il del numero di iterazioni per il

metodo di metodo di JacobiJacobi

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

5 10 15 20

Page 28: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

Adesso invece utilizziamo il metodo di Adesso invece utilizziamo il metodo di GaussGauss--SeidelSeidel..ctavectave--3.0.2.exe:1:C:3.0.2.exe:1:C:\\ProgrammiProgrammi\\OctaveOctave\\3.0.2_gcc3.0.2_gcc--4.3.04.3.0\\binbin> > jac_gsjac_gsQuesto script consente di risolvere iterativamente un sistema liQuesto script consente di risolvere iterativamente un sistema lineare neare Ax=bAx=bquale metodo iterativo vuoi usare ?quale metodo iterativo vuoi usare ?scrivi 1 per scrivi 1 per jacobijacobi oppure 2 per oppure 2 per gaussgauss--seidelseidel 22definisci la matrice A dei coefficienti mediante procedura guidadefinisci la matrice A dei coefficienti mediante procedura guidata:ta:inserisci il numero di righe 4inserisci il numero di righe 4nrnr = 4= 4inserisci il numero di colonne 4inserisci il numero di colonne 4ncnc = 4= 4a[1,1]=4a[1,1]=4a[1,2]=a[1,2]=--11a[1,3]=1a[1,3]=1a[1,4]=1a[1,4]=1a[2,1]=0a[2,1]=0a[2,2]=a[2,2]=--44a[2,3]=a[2,3]=--11a[2,4]=1a[2,4]=1a[3,1]=a[3,1]=--11a[3,2]=a[3,2]=--11a[3,3]=4a[3,3]=4a[3,4]=1a[3,4]=1a[4,1]=1a[4,1]=1a[4,2]=a[4,2]=--11a[4,3]=0a[4,3]=0a[4,4]=4a[4,4]=4A =A =

4 4 --1 1 11 1 10 0 --4 4 --1 11 1

--1 1 --11 4 14 11 1 --1 0 41 0 4

Page 29: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

definisci il vettore colonna b dei termini noti mediante procedudefinisci il vettore colonna b dei termini noti mediante procedura guidata:ra guidata:b[1,1]=1b[1,1]=1b[2,1]=2b[2,1]=2b[3,1]=b[3,1]=--11b[4,1]=0b[4,1]=0b =b =

1122

--1100

x0 =x0 =0.3330530.3330530.5439480.5439480.0743530.0743530.0809330.080933

quanto deve valere la tolleranza ? 1.equanto deve valere la tolleranza ? 1.e--88raggio spettrale matrice iterazione di raggio spettrale matrice iterazione di GaussSeidelGaussSeidelansans = 0.17678= 0.17678la soluzione e':la soluzione e':sol =sol =

0.241380.24138--0.478930.47893--0.264370.26437--0.180080.18008

il numero di iterazioni impiegato e' :il numero di iterazioni impiegato e' :iter = iter = 1111guarda il grafico dell'errore in funzione del numero di iterazioguarda il grafico dell'errore in funzione del numero di iterazioninioctaveoctave--3.0.2.exe:2:C:3.0.2.exe:2:C:\\ProgrammiProgrammi\\OctaveOctave\\3.0.2_gcc3.0.2_gcc--4.3.04.3.0\\binbin>>

Page 30: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

Andamento dellAndamento dell’’errore in funzione errore in funzione del numero di iterazioni per il del numero di iterazioni per il

metodo di metodo di GaussGauss--SeidelSeidel

0

0.2

0.4

0.6

0.8

1

1.2

2 4 6 8 10 12

Page 31: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” fileCos’è un metodo iterativo? I metodi iterativi consentono di ottenere una soluzione approssimata del sistema lineare Ax = b

Cosa succede applicando i metodi Cosa succede applicando i metodi iterativi al seguente sistema?iterativi al seguente sistema?(lieve modifica alla matrice A)(lieve modifica alla matrice A)

bXA =⋅'

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

−−−

−−−

=

1411141111401114

'A

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

=

4

3

2

1

xxxx

X

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

−=

01

21

b