1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica...

56
1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008

Transcript of 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica...

Page 1: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

1

5a-6a lezione di laboratorio

Laurea Specialistica in Ingegneria MATEMATICA

Laurea Specialistica in Ingegneria MATEMATICA

a.a. 2007-2008

Page 2: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

2

Come creare un grafico 2-D

Sintassi per disegnare una curva con:

• specifica dei dati nel vettore x e/o y

• specifica del colore e dello stile della linea

plot(x, y, ‘colore_stilelinea’)plot(x, y, ‘colore_stilelinea’)

plot(x1, y1,’r*’,x2, y2,‘b-’,...)plot(x1, y1,’r*’,x2, y2,‘b-’,...)

Sintassi per disegnare più curve:

Page 3: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

3

Completamento di un grafico

Per completare un grafico si può aggiungere:

• un titolo: title('Grafico ed …');• la griglia: grid;• le label sugli assi:

xlabel('x');ylabel('y')

Page 4: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

4

Editore grafico

Uno dei modi per migliorare l’aspetto di un grafico è il seguente:

selezionare View e, dal menu che compare, scegliere Plot Edit Toolbar; nella finestra compare una seconda barra.

Page 5: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

5

Come operare con l’editor grafico

Cliccando sull’icona si ottengono i tool del plot che consentono di modificare la grafica della figura.

Le icone indicate dalle linee, consentono di inserire testo, frecce e linee su una figura.

Page 6: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

6

Come inserire un testo sulla figura1. Selezionare l’icona T dalla barra oppure cliccare su ‘Insert’ e scegliere TextBox1. Posizionarsi nel

punto desiderato e scrivere

2. Scrivere x_3 per ottenere x3 (opp. x^3 per x3)

3. cliccare fuori dal riquadro per rendere attivo lo scritto

Page 7: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

7

Come inserire una freccia sulla figura• Selezionare

l’icona oppure dal menu di Insert selezionare Arrow• Posizionarsi nel punto di inizio della freccia, trascinare il mouse tenendo premuto il suotasto sinistro fino al punto di arrivo della freccia.

Page 8: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

8

Esercizio 1

a - Scrivere un file script che consenta di disegnare, sull’intervallo [0,4], le funzioni:

y=3*sin(pi*x) e y=exp(-0.2*x) nella stessa finestra grafica. Si consideri la partizione x=0:0.02:4. b - Inserire le label per gli assi x, y ed il

titolo. c - Usare gtext per indicare i vari punti di intersezione delle due curve. d - Memorizzare il file col nome grafico.

Page 9: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

9

File grafico.mclear allx=0:0.02:4;y=3*sin(pi*x);plot(x,y,'r'),xlabel('x');ylabel('y');gridhold on y1=exp(-0.2*x);plot(x,y1,'g') %osservare il numero delle intersezionigtext('x1');gtext('x2');gtext('x3');gtext('x4');% oppure%C=strvcat(‘x1’,’x2’,’x3’,’x4’);%gtext(C)title('Grafico ed intersezioni di 3*sin(pi*x) e exp(-

0.2*x)')hold off

clear allx=0:0.02:4;y=3*sin(pi*x);plot(x,y,'r'),xlabel('x');ylabel('y');gridhold on y1=exp(-0.2*x);plot(x,y1,'g') %osservare il numero delle intersezionigtext('x1');gtext('x2');gtext('x3');gtext('x4');% oppure%C=strvcat(‘x1’,’x2’,’x3’,’x4’);%gtext(C)title('Grafico ed intersezioni di 3*sin(pi*x) e exp(-

0.2*x)')hold off

Page 10: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

10

Risultato esercizio 1 titolo

» title('Grafico ed …')

etichetta asse y

» ylabel('y')

etichetta asse x

» xlabel('x')

gtext

»gtext('x3')

Page 11: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

11

Esercizio 2

Scrivere un file script che consenta di disegnare,

nell’intervallo [-2,2] e su due “finestre grafiche distinte ”, il grafico della funzione: f(x)=exp(-x2)cos(20x)

che viene definita nella function fun.

Si utilizzino i due comandi MATLAB:• plot per la figura 1 • fplot per la figura 2.

N.B. Nell’utilizzare il comando plot si può

considerare la partizione x=[-2:0.1:2] .

Page 12: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

12

Soluzione esercizio 2: comando plot

function y=fun(x)y=exp(-x.^2).*cos(20*x);

function y=fun(x)y=exp(-x.^2).*cos(20*x);

figure(1)x=[-2:0.1:2];y=fun(x); plot(x,y),title('Comando plot')xlabel('x');ylabel('y');grid

figure(1)x=[-2:0.1:2];y=fun(x); plot(x,y),title('Comando plot')xlabel('x');ylabel('y');grid

Page 13: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

13

function y=fun(x)y=exp(-x.^2).*cos(20*x); function y=fun(x)y=exp(-x.^2).*cos(20*x);

figure(2)I=[-2,2];fplot('fun',I), grid % Matlab ver.6% utilizzabile anche nella ver. 7title('Comando fplot')xlabel('x');ylabel('y')figure(3) % metodo alternativoI=[-2,2];fplot(@fun,I), grid % Matlab ver.7title('Comando fplot')xlabel('x');ylabel('y')

Soluzione esercizio 2: comando fplot

Page 14: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

14

Figura 1

Page 15: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

15

Figura 2 e 3 (sono uguali)

Page 16: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

16

Comandi plot e fplot

x=[-2:0.1:2];

y=exp(-x.^2).*cos(20*x);

figure(1)

plot(x,y),grid

%oppure f='exp(-x.^2).*cos(20*x)';%stringa

%y=eval(f); %crea il vettore di dimensione

% =length(x)

%plot(x,y),grid

f='exp(-x.^2).*cos(20*x)';% stringa

figure(2)

fplot(f,[-2,2]),grid

E’ possibile utilizzare i comandi plot e fplot, senza definire un file function esterno:

Page 17: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

17

Comando ezplot

figure(1)ezplot('x.^2-y.^2-1',[-4 4 -4 4]) %forma implicita

figure(1)ezplot('x.^2-y.^2-1',[-4 4 -4 4]) %forma implicita

Il comando ezplot consente di graficare funzioni date in forma implicita ed in forma parametrica

Page 18: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

18

figure(2)ezplot('cos(t)','sin(t)') % forma parametrica

Page 19: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

19

Più grafici in una finestra graficaE’ possibile inserire più di un grafico nella stessa finestra grafica .

% Comando plotx=-1:0.1:1;y1=sin(2*x);y2=x.*exp(-x);plot(x,y1,x,y2)

% Comando fplotfplot(@(x)[sin(2*x) x.*exp(-x)], [-1 1]) %Matlab7

Alternativamente si puòutilizzare il comando hold on:fplot('sin(2*x)',[-1 1])hold onfplot('x.*exp(-x)',[-1 1])hold off

1)

2)

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1-3

-2.5

-2

-1.5

-1

-0.5

0

0.5

1

x

Page 20: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

20

Più finestre grafiche in una sola figura: subplot

%file figurex=0.1:.1:5;subplot(2,3,1);plot(x,x);title('y=x');xlabel('x'); ylabel('y');subplot(2,3,2);plot(x,x.^2);title('y= x^2');xlabel('x'); ylabel('y');subplot(2,3,3),plot(x,x.^3);title('y= x^3');xlabel('x'); ylabel('y');subplot(2,3,4),plot(x,cos(x));title('y=cos(x)');xlabel('x');ylabel('y');subplot(2,3,5),plot(x,cos(2*x));title('y=cos(2x)');xlabel('x');ylabel('y')subplot(2,3,6),plot(x,cos(3*x));title('y=cos(3x)');xlabel('x');ylabel('y')% I colori e lo spessore sono stati% aggiunti utilizzando i tool del plot

%file figurex=0.1:.1:5;subplot(2,3,1);plot(x,x);title('y=x');xlabel('x'); ylabel('y');subplot(2,3,2);plot(x,x.^2);title('y= x^2');xlabel('x'); ylabel('y');subplot(2,3,3),plot(x,x.^3);title('y= x^3');xlabel('x'); ylabel('y');subplot(2,3,4),plot(x,cos(x));title('y=cos(x)');xlabel('x');ylabel('y');subplot(2,3,5),plot(x,cos(2*x));title('y=cos(2x)');xlabel('x');ylabel('y')subplot(2,3,6),plot(x,cos(3*x));title('y=cos(3x)');xlabel('x');ylabel('y')% I colori e lo spessore sono stati% aggiunti utilizzando i tool del plot

Page 21: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

21

Risultati file figure

Page 22: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

22

Comandi: plot e semilog

Due modi di graficare la funzione 0,50xy e x Scala lineare su entrambi gli Assi

Scala logaritmica sull’Asse Y

0 20 40 600

1

2

3

4

5

6x 10

21 plot

0 20 40 6010

0

105

1010

1015

1020

1025

semilogy

x=0:0.1:50;y=exp(x);subplot(1,2,1);plot(x,y);grid;title('plot')subplot(1,2,2);semilogy(x,y);grid;title('semilogy')

Page 23: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

23

Esercizio 3 (Esame 02/12/2002)

Si considerino i sistemi lineari Ai xi=bi, i=1,2,3, con i vettori dei termini noti bi, i=1,2,3, scelti in modo che la soluzione dei sistemi sia i=[1,1,1,1]T, i=1,2,3. Supponiamo che:

1 1

15 6 8 11

6 6 5 3, per 2,3.

8 5 7 6

11 3 6 9

iiA A A i

Page 24: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

24

Si determini, mediante MATLAB, il condizionamento K2(Ai ), i = 1, 2, 3 e si verifichi che K2(Ai ) = (K2 ( A1 ) )i , i=2, 3.

Si spieghi il motivo di tale relazione e se ne prevedano le conseguenze.

Quesito 1

Page 25: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

25

Si costruisca un file MATLAB: Cognome_Nome.m, che una volta avviato:

a) faccia visualizzare una schermata con i dati personali (cognome, nome, matricola, corso di Laurea) ed una breve presentazione del problema;

Quesito 2a

Page 26: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

26

b) mediante un ciclo for, determini i dati Ai , bi , i=1, 2, 3;

risolva quindi i sistemi applicando il metodo di Gauss con pivoting parziale;

calcoli l’errore relativo in norma 2;

Quesito 2b

i iiA x b

Page 27: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

27

c) faccia visualizzare una tabella riassuntiva che riporti: intestazione: indice iter soluzione errore

e su ogni riga il valore dell’indice della matrice, il numero di iterazioni effettuate nel raffinamento, la soluzione corrispondente scritta come vettore riga e l’errore relativo ;

Si utilizzino i seguenti formati di stampa:

1 cifra intera per il valore di ;

2 cifre intere per il valore di ;

10 cifre decimali e formato virgola fissa per le

componenti di ;

2 cifre decimali e formato esponenziale per .

Quesito 2c

ix

ix

iiteri

ierr

i

iiter

ierr

Page 28: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

28

Soluzione teorica del Quesito 1

1A

11 1 1 1

2 21 1 1 1 1 12

1 1 11 1 1 12

T T

T

T

A A A A

A A A A A A

A A A A

Proprietà della matrice e conseguenze:

max 11 12 1 1 1 1 12 2

min 1

AK A A A A A

A

Page 29: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

29

Soluzione teorica del Quesito 1, 2, 3iA i

2

2 1 2 2TA A A A

2 22 2 1 12

A A A A

Proprietà delle matrici

Analogamente per i = 3. K2(A1)

per la simmetria di 1 .A

1 1 2 12 2 12

A A A quindi:

21 1

2 2 2 2 1 12 2K A A A A A

Page 30: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

30

Istruzioni relative al Quesito 1% file script: punto1.m

clear all

disp('Numero di condizionamento delle matrici Ai')

A1=[15 6 8 11 ; 6 6 5 3 ; 8 5 7 6; 11 3 6 9];

cond_Ai=[];cond_A=[];

for i =1:3

Ai=A1^i;

cond_Ai=[cond_Ai,cond(Ai)]; % vettore dei cond(Ai)

cond_A=[cond_A,cond(A1)^i]; % vettore dei cond(A1)^i

end

disp('cond(Ai)')

disp(num2str(cond_Ai,'%13.3e'))

disp('(cond(A1))^i')

disp(num2str(cond_A,'%13.3e'))

Page 31: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

31

Output punto1>> punto1

Numero di condizionamento delle matrici Ai

cond(Ai)

6.499e+003 4.224e+007 2.746e+011

(cond(A1))^i

6.499e+003 4.224e+007 2.745e+011

Conseguenze del numerodi condizionamento grande?

Indicheremo con K1, K2, K3 il condizionamento in norma

2 delle matrici A1, A2, A3 rispettivamente.

Page 32: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

32

Calcolo della soluzione di

22

446 199 272 330 1247

199 106 131 141 577,

272 131 174 199 776

330 141 199 247 917

A b

22A x b

>> x2=A2\b2 % Operatore \x2 = 1.00000000037954 0.99999999968201 1.00000000023455 0.99999999948547 >> err2=norm(x2-alpha)/norm(alpha)err2 = 3.76e-010=.376e-009

>> nc=log10(K2)nc =

7.6257

Numero di cifre significative perse

10 cifre signific., 9 decimali corretti

1

1

1

1

,

Page 33: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

33

Oltre che sul numero di cifre significative che si perdono, come incide il valore grande

di K2(A2)?>> A2m=A2;>> A2m(2,2)=A2(2,2)+1e-3; % perturbazione data % sulla matrice>>pert=norm(A2-A2m)/norm(A2) pert = 1.0546e-006 % entità della perturbazione>> x2m=A2m\b2 % soluzione perturbatax2m = 2.06050813471394 0.11143302866360 1.65544907516937 -0.43770893706830>> err2m=norm(x2m-alpha)/norm(alpha)err2m = 1.0501 >100% !!!

Page 34: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

34

Istruzioni relative al Quesito 2aclear alldisp('Cognome e nome studente: XXXX XXX')disp('Numero di matricola: XXXX')disp('Corso di Laurea: XXXX')disp(' ')disp('Questo programma calcola e visualizza la soluzione dei ')disp('sistemi lineari A_i x_i=b_i, i =1,2,3, con i vettori b_i tali che sia')disp('alpha=[1,1,1,1]'',essendo: ')A1=[15 6 8 11;6 6 5 3;8 5 7 6;11 3 6 9];disp('A1=');disp(A1)disp( 'e A_i= A1^i per i=2,3.')

Page 35: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

35

Output file Cognome_Nome.m>> Cognome_NomeCognome e nome studente: XXXX XXXNumero di matricola: XXXX Corso di Laurea:XXXXQuesto programma calcola e visualizza la soluzione dei sistemi lineari A_i x_i=b_i, i =1,2,3, con i vettori b_i tali che sia alpha=[1 1 1 1]', essendo: A1= 15 6 8 11 6 6 5 3 8 5 7 6 11 3 6 9e A_i= A1^i per i=2,3.

Page 36: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

36

Istruzioni relative al Quesito 2btab=[]; toll=1e-13;

alpha=ones(4,1); % soluzionefor i =1:3 A=A1^i; b=A*alpha; % vettore termini noti [L,U,P] = lu(A); y=L\(P*b); x=U\y; [x,iter]=Raff_iter(A,b,L,U,P,x,toll); residuo=b-A*x; norm_residuo=norm(b-A*x); err=norm(alpha-x)/norm(alpha); tab=[tab;[i,iter,x',err,norm_residuo]];end

Istr

uzi

oni d

i Gau

ssp

v_r.

m

%La chiamata di Gausspv_r è:[x,iter] = Gausspv_r(A,b,toll)

Page 37: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

37

Risultati File Quesito 2b Tabella Quesito 2c

fprintf('i iter \t\t\t soluzione \t\t \t\t errore residuo\n')fprintf('%1d %2d %14.10f %14.10f %14.10f %14.10f %10.2e %10.2e \n',tab');

i iter soluzione errore residuo1 0 1.0000000000 1.0000000000 1.0000000000 1.0000000000 8.17e-015 3.55e-015 2 0 1.0000000007 0.9999999994 1.0000000004 0.9999999991 6.81e-010 1.97e-013 3 0 0.9999998145 1.0000001554 0.9999998854 1.0000002514 1.84e-007 0.00e+000

Nell’ultimo caso calcolando la stima del numerodi cifre che si perdono, si ottiene:

>> nc=log10(K3)nc =

11.4386

Numero di cifre significative perse

Page 38: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

38

Istruzioni utilizzate in Raff_iterfunction [x,iter]=Raff_iter(A,b,L,U,P,x,toll) %_________________________________________...iter=0;residuo=b-A*x;while norm(residuo)>toll*norm(b)& iter<100 y=L\(P*residuo); err=U\y; x=x+err; residuo=b-A*x; iter=iter+1;endif iter==100 disp('Raggiunto il numero massimo di iterazioni')end

Page 39: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

39

Esercizio 4Sia dato il sistema lineare avente la matrice dei coefficienti ed il vettore dei termini noti così assegnati:

4 1 0 0 0 0 3

1 5 2 0 0 0 2

0 2 6 3 0 0 1

0 0 3 5 1 0 1

0 0 0 1 3 1 3

0 0 0 0 1 2 4

A b

Page 40: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

40

1. Si studi la convergenza dei metodi di Jacobi, Gauss-Seidel e Rilassamento in serie (SOR) per il sistema assegnato.

2. Si dica quale di questi metodi è il più veloce giustificando teoricamente la risposta e calcolando, mediante Matlab, i raggi spettrali delle rispettive matrici di iterazione ed il valore ottimale del parametro per il metodo SOR.

Quesiti 1 e 2

Page 41: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

41

3. Si costruisca un file MATLAB che:

a) calcoli la soluzione numerica del problema assegnato applicando il metodo con convergenza migliore e fissando una precisione non inferiore a 1.e-4, nmax=20 ed un vettore di innesco pari a

x0=[1 1 1 1 1 1]T;

Quesito 3a

Page 42: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

42

b) faccia visualizzare una tabella riassuntiva che riporti: intestazione: iterazioni soluzione residuo;

e su ogni riga, il numero dell’ iterazione , la soluzione approssimata corrispondente e la norma del residuo ;

Si utilizzino i seguenti formati di stampa:

2 cifre intere per il valore di ;

5 cifre decimali e formato virgola fissa per la

soluzione approssimata ;

1 cifra decimale e formato esponenziale per la

norma del residuo .

Quesito 3b

ix

ix

ierr

ires

i

i

Page 43: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

43

Convergenza dei metodi

Caratteristiche di A:a) diagonalmente dominante Jacobi conv.b) tridiagonale anche Gauss-Seidel

converge; inoltre:

2 2GS J GS JB B R B R B

c) simmetrica d) definita positiva perché è a), c) e tutti gli

elementi sulla diagonale principale sono positivi.

Page 44: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

44

Qual è il metodo più veloce?

2

.1 1

ott

GSB

Per la proprietà d) SOR converge per

è inoltre il metodo più veloce se si assume:

: 0 < < 2;

Page 45: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

45

Istruzioni relative al Quesito 2I0=[4 5 6 5 3 2];I1=[1 2 3 -1 1]; A=diag(I0)+diag(I1,-1)+diag(I1,1)D=diag(diag(A)); [n,m]=size(A);B_J=eye(n)-inv(D)*A; % metodo di Jacobi rho_J=max(abs(eig(B_J)))R_J=-log(rho_J)omega=1; % metodo di Gauss-SeidelOE=omega*tril(A,-1);B_GS=eye(n)-omega*inv(D+OE)*A; rho_GS=max(abs(eig(B_GS)))R_GS=-log(rho_GS)omega_ott=2/(1+sqrt(1-rho_GS)) % metodo SOROE=omega_ott*tril(A,-1);B_r=eye(n)-omega_ott*inv(D+OE)*A; rho_r=max(abs(eig(B_r)))R_r=-log(rho_r)

Page 46: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

46

Risultati file Quesito 2

rho_J = 0.7196 R_J = 0.3290

rho_GS = 0.5179 R_GS = 0.6580

omega_ott = 1.1804

rho_r = 0.1804 R_r = 1.7126

rho_J = 0.7196 R_J = 0.3290

rho_GS = 0.5179 R_GS = 0.6580

omega_ott = 1.1804

rho_r = 0.1804 R_r = 1.7126

Page 47: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

47

Istruzioni relative al Quesito 3b=[3 -2 1 -1 3 4]';K=cond(A,inf);

precisione=input('precisione = '); % 1.e-4

toll=precisione/K % toll = 9.3310e-006

x0=ones(n,1);omega=omega_ott;nmax=20;

[x,iter,res,rho]=Gauss_Seidel_ril(A,b,x0,omega,nmax,toll);

it=[0:iter]';tab=[it x res];

s='--------------------------------------------';

disp(s)

fprintf('iter soluzione errore\n')

fprintf('%2d %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %9.1e\n',tab');

Page 48: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

48

Risultati file Quesito 3iter soluzione errore

------------------------------------------------------------------

0 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 2.5e+000

1 0.40980 -1.22145 -0.09326 -0.11434 0.56155 1.84897 1.1e+000

2 1.17181 -0.48443 0.47164 -0.41692 0.18755 1.91655 4.2e-001

3 0.81686 -0.80030 0.67260 -0.59295 0.15916 1.92112 1.3e-001

4 0.97411 -0.87533 0.76977 -0.63672 0.14526 1.92850 3.4e-002

5 0.96788 -0.90620 0.79022 -0.64659 0.14099 1.92969 8.7e-003

6 0.97811 -0.91270 0.79491 -0.64914 0.14028 1.92989 1.1e-003

7 0.97819 -0.91376 0.79599 -0.64961 0.14015 1.92993 3.4e-004

8 0.97849 -0.91415 0.79622 -0.64972 0.14011 1.92995 5.1e-005

9 0.97855 -0.91421 0.79627 -0.64974 0.14010 1.92995 1.3e-005

10 0.97855 -0.91422 0.79628 -0.64975 0.14010 1.92995 2.5e-006 Si invitano gli studenti a determinare la soluzione con precisione = 1.e-8 e riportare le componenti della soluzione approssimata con 10 cifre e virgola fissa.

Page 49: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

49

Esercizio 5 (Esame 05-12-05)

6.36091 0 1.6685 0.9371 2.5369

0 2.5000 0 0 0 0

1.6685 0 3.4695 0 0 1.8615

0.9371 0 0 4.6653 0 0.8399

0 0 0 0 2.0000 0

2.5369 0 1.8615 0.8399 0 5.8043

A

6.36091 0 1.6685 0.9371 2.5369

0 2.5000 0 0 0 0

1.6685 0 3.4695 0 0 1.8615

0.9371 0 0 4.6653 0 0.8399

0 0 0 0 2.0000 0

2.5369 0 1.8615 0.8399 0 5.8043

A

Sia data la seguente matrice:

0

e vettore b tale che la soluzione del sistema sia

Ax b'[1 1 1 1 1 1] .

Page 50: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

50

Quesiti 1, 2 e 31 - Dopo aver determinato con MATLAB gli autovalori, si deduca motivando la risposta, la caratteristica fondamen_ tale della matrice;

2 - si determini il condizionamento in norma 2 e si dica, sempre motivando la risposta, se il sistema è ben condi_zionato calcolando, inoltre, il numero di cifre significative che si perdono, rispetto alle 16 del MATLAB, risolvendo il sistema;

3 - Si costruisca un file MATLAB: Cognome_NomeStudente.m che, una volta avviato:

Page 51: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

51

Quesiti a), b) e c) a- faccia visualizzare una schermata con i dati personali e una breve presentazione del problema; b- calcoli la soluzione numerica del sistema assegnato con il metodo di Gauss e raffinamento iterativo con una tolleranza di 1e-14 e calcoli l’errore relativo;calcoli anche, sempre con lo stesso metodo, la soluzione del sistema che ha la stessa matrice dei coefficienti e vettore termini noti perturbato, rispetto a quello dato, nel termine b(4) della quantità ;c- faccia visualizzare una tabella in cui si riporti:

intestazione: iterazioni soluzione errore,il numero di iterazioni eseguite nel raffinamento,la soluzione ottenuta e l’errore relativo nel primo e nel secondo caso

410

Page 52: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

52

Quesito 4utilizzando i seguenti formati di stampa:

3 cifre e formato intero per il numero dell’ iterazione, 6 cifre decimali e virgola fissa per le soluzioni nei due casi, 2 cifre decimali e formato floating point per l’errore nel primo caso.

4- Si confrontino e si commentino i risultati.

Page 53: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

53

Istruzioni relative al quesito 1clear allclc% Costruzione della matriced=[6.36091 2.5 3.4695 4.6653 2 5.8043];n=length(d);d1=zeros(1,n-1);d2=[-1.6685 0 0 -0.8399];d3=[-0.9371 0 1.8615];d4=zeros(1,n-4);d5=2.5369;A1=diag(d1,1)+diag(d2,2)+diag(d3,3)+diag(d4,4)+diag(d5,5);A2=A1';A=(A1+A2+diag(d))alpha=ones(n,1);b=A*alphaSimmetria=(A==A');if Simmetria==1 disp('A e'' simmetrica')endautovalori=eig(A)if autovalori>0 disp('A e'' definita positiva')end

Page 54: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

54

Istruzioni relative ai quesiti 2 e 3K2=cond(A)% stima cifre persecifre_perse=round(log10(K2))toll=1e-14;[x,iter]=Gausspv_r(A,b,toll);err_rel=norm(x-alpha)/norm(alpha);bp=b;bp(4)=b(4)+1e-4;[x1,iter1]=Gausspv_r(A,bp,toll);err_rel1=norm(x1-alpha)/norm(alpha);tab=[[iter;iter1] [x';x1'] [err_rel;err_rel1]];st='%3d';for i=1:n st=[st,' %10.6f '];endst=[st,'%10.2e \n'];fprintf('iter \t\t\t\t soluzione \t\t\t\t\t\t errore \n\n')fprintf(st,tab')

Page 55: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

55

Risultati quesito 1A =

6.3609 0 -1.6685 -0.9371 0 2.5369 0 2.5000 0 0 0 0 -1.6685 0 3.4695 0 0 1.8615 -0.9371 0 0 4.6653 0 -0.8399 0 0 0 0 2.0000 0 2.5369 0 1.8615 -0.8399 0 5.8043b = 6.2922 2.5000 3.6625 2.8883 2.0000 9.3628

A e' simmetricaA e' definita positiva

A =

6.3609 0 -1.6685 -0.9371 0 2.5369 0 2.5000 0 0 0 0 -1.6685 0 3.4695 0 0 1.8615 -0.9371 0 0 4.6653 0 -0.8399 0 0 0 0 2.0000 0 2.5369 0 1.8615 -0.8399 0 5.8043b = 6.2922 2.5000 3.6625 2.8883 2.0000 9.3628

A e' simmetricaA e' definita positiva

autovalori =

1.0000 2.0000 2.5000 4.3000 6.0000 9.0000

autovalori =

1.0000 2.0000 2.5000 4.3000 6.0000 9.0000

format short

Page 56: 1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a. 2007-2008.

56

Tabella dei risultati

iter soluzione errore

0 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.11e-016 0 1.000002 1.000000 1.000000 1.000022 1.000000 1.000002 9.21e-006

iter soluzione errore

0 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.11e-016 0 1.000002 1.000000 1.000000 1.000022 1.000000 1.000002 9.21e-006

K2 =

9.0001Quindi:

cifre_perse =

1

K2 =

9.0001Quindi:

cifre_perse =

1

Il condizionamento K2 di A è buono.A piccole perturbazioni sui dati corrispondonopiccole variazioni sui risultati.