1 4 a lezione - laboratorio a.a 2004-2005 corso di laurea ingegneria meccanica
TRANSCRIPT
![Page 1: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/1.jpg)
1
4a lezione - laboratorio
a.a 2004-2005
Corso di Laurea Ingegneria MECCANICA
![Page 2: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/2.jpg)
2
Esercizio 1 (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 3: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/3.jpg)
3
Si determini con 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 4: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/4.jpg)
4
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 2
![Page 5: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/5.jpg)
5
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 6: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/6.jpg)
6
c) faccia visualizzare una tabella riassuntiva che riporti: intestazione: indice iter soluzione errore;
e su ogni riga il valore dell’indice i della matrice, il numero di iterazioni iter effettuate nel raffinamento, la soluzione corrispondente scritta come vettore riga e l’errore relativo err;
Si utilizzino i seguenti formati di stampa:
1 cifra intera per il valore di i;
2 cifre intere per il valore di iter;
10 cifre decimali e formato virgola fissa per le componenti di ;
2 cifre decimali e formato esponenziale per err.
Quesito 2c
ix
ix
![Page 7: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/7.jpg)
7
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 8: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/8.jpg)
8
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 9: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/9.jpg)
9
Istruzioni relative al Quesito 1clear 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'))
Nome file script: punto1
![Page 10: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/10.jpg)
10
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?
![Page 11: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/11.jpg)
11
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
>> x1=A2\b2 % Operatore \x1 = 1.00000000154209 0.99999999870797 1.00000000095304 0.99999999790943>> err1=norm(x1-alfa)/norm(alfa)err1 = 1.53e-009=.153e-008
>> nc=log10(K2)nc =
7.6257
Numero di cifre significative perse
9 cifre signific., 8 decimali corretti
![Page 12: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/12.jpg)
12
Come incide il valore 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>> x1m=A2m\b2 % soluzione perturbatax1m = 2.06050813486122 0.11143302854021 1.65544907526039 -0.43770893726797>> err1m=norm(x1m-alfa)/norm(alfa)err1m = 1.0501 >100% !!!
![Page 13: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/13.jpg)
13
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('alfa=[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 14: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/14.jpg)
14
Output file Cognome_Nome.m>> Cognome_Nome.mCognome 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 alfa=[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 15: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/15.jpg)
15
Istruzioni relative al Quesito 2b
tab=[];alfa=ones(4,1); % soluzionefor i =1:3 A=A1^i; b=A*alfa; % vettore termini noti [L,U,P] = lu(A); %[L,U]=lu(A); y = forwsub(L,P*b); % y = L\(P*b); x = backsub(U,y); % x=U\y; R=eye(size(A)); [x,iter]=raff_iter(A,b,L,U,P,R,x); err=norm(alfa-x)/norm(alfa); tab=[tab;[i,iter,x',err]];end
Istr
uzi
oni d
i gau
ssp
v_r.
m
![Page 16: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/16.jpg)
16
Risultati File Punto 2b Tabella Punto 2c
fprintf('i iter \t\t\t soluzione \t\t \t\t errore \n')fprintf('%1d %2d %14.10f %14.10f %14.10f %14.10f %12.2e \n',tab');
i iter soluzione errore
1 0 1.0000000000 1.0000000000 1.0000000000 1.0000000000 2.42e-014
2 1 1.0000000016 0.9999999987 1.0000000010 0.9999999978 1.59e-009
3 5 0.9999992309 1.0000006444 0.9999995247 1.0000010427 7.62e-007
![Page 17: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/17.jpg)
17
Esercizio 2Sia 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 18: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/18.jpg)
18
Problema I°: quesiti 1, 2
1. Si studino le caratteristiche della matrice A e si stabilisca quale tipo di fattorizzazione è
possibile effettuare.
2. Si risolva il sistema usando ogni tipo di fattorizzazione possibile e con l’operatore \ applicato alla matrice A ed al vettore b.
![Page 19: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/19.jpg)
19
Caratteristiche di A: conseguenzeCaratteristiche di A:a) simmetricab) tridiagonale; c) diagonalmente dominante;d) definita positiva perché è a), c) e tutti gli
elementi in diagonale principale sono >0.
Conseguenze:
a) È possibile la fattorizzazione A=L*U;
b) È possibile la fattorizzazione di Cholesky A=R*R’
![Page 20: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/20.jpg)
20
Verifica MATLAB e soluz. sistemaI0=[4 5 6 5 3 2];I1=[1 2 3 -1 1];[n,m]=size(A);
A=diag(I0)+diag(I1,-1)+diag(I1,1); % matrice A
b=[3 –2 1 –1 3 4]; % termine noto
A==A’; % controllo simmetria
for i=1:size(A,1)
minore(i)=det(A(1:i,1:i));
end % minori principali di testa
disp(minore)
[L U P]=lu(A) % fattorizzazione LU
Rt=chol(A) % fattorizzazione di Cholesky
y=Rt’\b;alpha=Rt\y; %soluzione sistema utilizzando Chol
y=L\b;alpha1=U\y; %soluzione sistema utilizzando A=Lu
alpha2=A\b % soluzione sistema (\ utilizza A=LU)
![Page 21: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/21.jpg)
21
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.
Problema II°: quesiti 1 e 2
![Page 22: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/22.jpg)
22
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 ed un vettore di innesco pari a x0=[1 1 1 1 1 1]T;
Quesito 3a
![Page 23: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/23.jpg)
23
b) faccia visualizzare una tabella riassuntiva che riporti: intestazione: iterazioni soluzione errore;
e su ogni riga il numero di iterazione iter , la soluzione corrispondente e la norma del residuo err;
Si utilizzino i seguenti formati di stampa:
2 cifre intere per il valore di iter;
5 cifre decimali e formato virgola fissa per la
soluzione approssimata ;
1 cifra decimale e formato esponenziale per err.
Quesito 3b
ix
ix
![Page 24: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/24.jpg)
24
Soluzione quesito 1: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 anche SOR convergeper 0 < < 2;
![Page 25: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/25.jpg)
25
Qual è il metodo più veloce?
2
.1 1
ott
GSB
Il metodo più veloce è SOR se si assume:
![Page 26: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/26.jpg)
26
Istruzioni relative ai quesiti 1, 2% file Punto2I0=[4 5 6 5 3 2];I1=[1 2 3 -1 1];[n,m]=size(A);A=diag(I0)+diag(I1,-1)+diag(I1,1)D=diag(diag(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 27: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/27.jpg)
27
Risultati file Punto2
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 28: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/28.jpg)
28
Istruzioni relative ai quesiti 3a, 3bb=[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;
[x,iter,err,rho]=Gauss_Seidel_ril(A,b,x0,omega,nmax,toll);
it=[1:iter]';
tab=[it x err];
s='-------------------------------------------------';
disp(s)
fprintf('iter soluzione errore\n')
disp(s)
fprintf('%2d %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %9.1e\n‘… ,tab');
![Page 29: 1 4 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader036.vdocuments.site/reader036/viewer/2022062418/5542eb4d497959361e8bb39c/html5/thumbnails/29.jpg)
29
Risultati quesiti 3a, 3biter soluzione errore
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.