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

Slides:



Advertisements
Presentazioni simili
Training On Line - CONP. 2 Richiesta Da Menu: Conferimenti ad inizio anno termico > Agosto > Pluriennali > Nuova Richiesta Si accede alla pagina di Richiesta.
Advertisements

Laboratorio di Matematica Applicata Parte 3
Equazioni non lineari Gabriella Puppo.
Metodi numerici in Matlab
Sistema di riferimento sulla retta
MATLAB.
MATLAB.
MATLAB. Outline Grafica 2D Esercizi Grafica 3D Esercizi.
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
COORDINATE POLARI Sia P ha coordinate cartesiane
LE MATRICI.
Frontespizio Economia Monetaria Anno Accademico
La scelta del paniere preferito
1 la competenza alfabetica della popolazione italiana CEDE distribuzione percentuale per livelli.
Training On Line – CONA. 2 Richiesta Da Menu: Conferimenti ad inizio anno termico > Agosto > Annuali > Nuova Richiesta Si accede alla pagina di Richiesta.
8 a lezione - laboratorio a.a Esercizi Preparziale Corso di Laurea ING. MECCANICA.
2 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
3 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
1 4 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
Lez. 3 - Gli Indici di VARIABILITA’
Quinta lezione: Stampare e salvare una mappa Stampa e salvataggio in vari formati. Utilizzare il prodotto per inserirlo in relazioni Utilizzarlo come base.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
8. Reti di Code Nella maggior parte dei processi produttivi risulta troppo restrittivo considerare una sola risorsa. Esempio: linea tandem arrivi 1 v.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Indipendenza lineare,
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Interpolazione polinomiale a tratti
Soluzione FEM di problemi parabolici
Interpolazione polinomiale
Metodi iterativi semplici G. Puppo. Riassunto Problema del fill-in Memorizzazione di matrici sparse Metodo di Jacobi.
FEM -2 Gabriella Puppo.
Metodi FEM per problemi ellittici lineari a tratti Gabriella Puppo.
Metodi numerici per equazioni lineari iperboliche Gabriella Puppo.
Metodi conservativi per equazioni iperboliche
Realizzazione e caratterizzazione di una semplice rete neurale per la separazione di due campioni di eventi Vincenzo Izzo.
Trimr Gauss, tra le altre, fornisce una preziosissima funzione che risulta di estrema utilità nell’ambito matriciale. Questa funzione, chiamata trimr(x,t,b),
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Microsoft Excel Nozioni avanzate
3 a -4 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Laurea Specialistica in Ingegneria Matematica a.a
11 a bis lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica.
13 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Ingegneria dei Sistemi Energetici Laurea Specialistica in Ingegneria Matematica.
10a lezione di laboratorio
Num / 36 Lezione 9 Numerosità del campione.
Analisi di Immagini e Dati Biologici
Introduzione alle basi di dati
EXCEL FORMATTAZIONE DATI.
INTRODUZIONE A MATLAB.
INTRODUZIONE A MATLAB LEZIONE 4 Sara Poltronieri slide3.4 matlabintro
I NUMERI IMMAGINARI X2 + 1 = 0 X2 = -1
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Programmare in Matlab Funzioni di Libreria Funzioni definite.
In che formato devo salvare la mia presentazione di PowerPoint se voglio che sia “eseguibile” cioè che parta facendo un doppio “click” sul file? Presentazione.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
A cosa serve GWAESSE? E’ un software di semplice utilizzo per la configurazione e la preventivazione di quadri AS (per moli e campeggi), ASC (per cantiere)
TRASFORMAZIONI GEOMETRICHE
QUIZ – PATENTE EUROPEA – ESAME WORD
Diagrammi 2D e 3D Funzioni di ordine superiore
1 Se seleziono le colonne da A – F e modifico con il mouse la larghezza della colonna C, cosa succede alle altre colonne selezionate? 1.Assumono tutte.
QUIZ – PATENTE EUROPEA – ESAME WORD
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
Le Toolbar di default Quando avviamo Writer vengono visualizzate di default due toolbar o barre degli strumenti La toolbar superiore è definita Standard.
XLS ESERCIZIO BASE EXCEL – ESERCIZIO BASE
Modulo 6 Test di verifica
1 Microsoft Access Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni Informatica per laurea triennale.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Transcript della presentazione:

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

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(x1, y1,r*,x2, y2,b-,...) Sintassi per disegnare più curve:

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')

4 Editore grafico Uno dei modi per migliorare laspetto di un grafico è il seguente: selezionare View e, dal menu che compare, scegliere Plot Edit Toolbar; nella finestra compare una seconda barra.

5 Come operare con leditor grafico Cliccando sullicona 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.

6 Come inserire un testo sulla figura 1.Selezionare licona T dalla barra oppure cliccare su Insert e scegliere TextBox 1.Posizionarsi nel punto desiderato e scrivere 2.Scrivere x_3 per ottenere x 3 (opp. x^3 per x 3 ) 3.cliccare fuori dal riquadro per rendere attivo lo scritto

7 Come inserire una freccia sulla figura Selezionare licona oppure dal menu di Insert selezionare Arrow Posizionarsi nel punto di inizio della freccia, trascinare il mouse tenendo premuto il suo tasto sinistro fino al punto di arrivo della freccia.

8 Esercizio 1 a - Scrivere un file script che consenta di disegnare, sullintervallo [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.

9 File grafico.m clear all x=0:0.02:4; y=3*sin(pi*x); plot(x,y,'r'),xlabel('x');ylabel('y');grid hold on y1=exp(-0.2*x); plot(x,y1,'g') %osservare il numero delle intersezioni gtext('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 all x=0:0.02:4; y=3*sin(pi*x); plot(x,y,'r'),xlabel('x');ylabel('y');grid hold on y1=exp(-0.2*x); plot(x,y1,'g') %osservare il numero delle intersezioni gtext('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

10 Risultato esercizio 1 titolo » title('Grafico ed …') etichetta asse y » ylabel('y') etichetta asse x » xlabel('x') gtext »gtext('x3')

11 Esercizio 2 Scrivere un file script che consenta di disegnare, nellintervallo [-2,2] e su due finestre grafiche distinte, il grafico della funzione: f(x)=exp(-x 2 )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. Nellutilizzare il comando plot s i può considerare la partizione x=[-2:0.1:2].

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

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. 7 title('Comando fplot') xlabel('x');ylabel('y') figure(3) % metodo alternativo I=[-2,2]; grid % Matlab ver.7 title('Comando fplot') xlabel('x');ylabel('y') Soluzione esercizio 2: comando fplot

14 Figura 1

15 Figura 2 e 3 (sono uguali)

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:

17 Comando ezplot figure(1) ezplot('x.^2-y.^2-1',[ ]) %forma implicita figure(1) ezplot('x.^2-y.^2-1',[ ]) %forma implicita Il comando ezplot consente di graficare funzioni date in forma implicita ed in forma parametrica

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

19 Più grafici in una finestra grafica E possibile inserire più di un grafico nella stessa finestra grafica. % Comando plot x=-1:0.1:1; y1=sin(2*x); y2=x.*exp(-x); plot(x,y1,x,y2) % Comando fplot x.*exp(-x)], [-1 1]) %Matlab7 Alternativamente si può utilizzare il comando hold on: fplot( ' sin(2*x) ',[-1 1]) hold on fplot( ' x.*exp(-x) ',[-1 1]) hold off 1) 2)

20 Più finestre grafiche in una sola figura: subplot %file figure x=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 figure x=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

21 Risultati file figure

22 Comandi: plot e semilog Due modi di graficare la funzione Scala lineare su entrambi gli Assi Scala logaritmica sullAsse Y 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')

23 Esercizio 3 (Esame 02/12/2002) Si considerino i sistemi lineari A i x i =b i, i=1,2,3, con i vettori dei termini noti b i, 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:

24 Si determini, mediante MATLAB, il condizionamento K 2 (A i ), i = 1, 2, 3 e si verifichi che K 2 (A i ) = (K 2 ( A 1 ) ) i, i=2, 3. Si spieghi il motivo di tale relazione e se ne prevedano le conseguenze. Quesito 1

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

26 b) mediante un ciclo for, determini i dati A i, b i, i=1, 2, 3; risolva quindi i sistemi applicando il metodo di Gauss con pivoting parziale; calcoli lerrore relativo in norma 2; Quesito 2b

27 c) faccia visualizzare una tabella riassuntiva che riporti: intestazione: indice iter soluzione errore e su ogni riga il valore dellindice della matrice, il numero di iterazioni effettuate nel raffinamento, la soluzione corrispondente scritta come vettore riga e lerrore 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

28 Soluzione teorica del Quesito 1 Proprietà della matrice e conseguenze:

29 Soluzione teorica del Quesito 1 Proprietà delle matrici Analogamente per i = 3. K2(A1)K2(A1) per la simmetria di quindi:

30 Istruzioni relative al Quesito 1 % file script: punto1.m clear all disp('Numero di condizionamento delle matrici Ai') A1=[ ; ; ; ]; 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'))

31 Output punto1 >> punto1 Numero di condizionamento delle matrici Ai cond(Ai) 6.499e e e+011 (cond(A1))^i 6.499e e e+011 Conseguenze del numero di condizionamento grande? Indicheremo con K1, K2, K3 il condizionamento in norma 2 delle matrici A1, A2, A3 rispettivamente.

32 Calcolo della soluzione di >> x2=A2\b2 % Operatore \ x2 = >> err2=norm(x2-alpha)/norm(alpha) err2 = 3.76e-010=.376e-009 >> nc=log10(K2) nc = Numero di cifre significative perse 10 cifre signific., 9 decimali corretti

33 Oltre che sul numero di cifre significative che si perdono, come incide il valore grande di K 2 (A 2 )? >> A2m=A2; >> A2m(2,2)=A2(2,2)+1e-3; % perturbazione data % sulla matrice >>pert=norm(A2-A2m)/norm(A2) pert = e-006 % entità della perturbazione >> x2m=A2m\b2 % soluzione perturbata x2m = >> err2m=norm(x2m-alpha)/norm(alpha) err2m = >100% !!!

34 Istruzioni relative al Quesito 2a clear all disp('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=[ ; ; ; ]; disp('A1=');disp(A1) disp( 'e A_i= A1^i per i=2,3.')

35 Output file Cognome_Nome.m >> Cognome_Nome Cognome e nome studente: XXXX XXX Numero di matricola: XXXX Corso di Laurea:XXXX Questo 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=[ ]', essendo: A1= e A_i= A1^i per i=2,3.

36 Istruzioni relative al Quesito 2b tab=[]; toll=1e-13; alpha=ones(4,1); % soluzione for 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 Istruzioni di Gausspv_r.m %La chiamata di Gausspv_r è: [x,iter] = Gausspv_r(A,b,toll)

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 residuo e e e e e e+000 Nellultimo caso calcolando la stima del numero di cifre che si perdono, si ottiene: >> nc=log10(K3) nc = Numero di cifre significative perse

38 Istruzioni utilizzate in Raff_iter function [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; end if iter==100 disp('Raggiunto il numero massimo di iterazioni') end

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

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

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=[ ] T ; Quesito 3a

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

43 Convergenza dei metodi Caratteristiche di A: a)diagonalmente dominante Jacobi conv. b)tridiagonale anche Gauss-Seidel converge; inoltre: c) simmetrica d) definita positiva perché è a), c) e tutti gli elementi sulla diagonale principale sono positivi.

44 Qual è il metodo più veloce? Per la proprietà d) SOR converge per è inoltre il metodo più veloce se si assume:

45 Istruzioni relative al Quesito 2 I0=[ ];I1=[ ]; 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-Seidel OE=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 SOR OE=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)

46 Risultati file Quesito 2 rho_J = R_J = rho_GS = R_GS = omega_ott = rho_r = R_r = rho_J = R_J = rho_GS = R_GS = omega_ott = rho_r = R_r =

47 Istruzioni relative al Quesito 3 b=[ ]';K=cond(A,inf); precisione=input('precisione = '); % 1.e-4 toll=precisione/K % toll = e-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');

48 Risultati file Quesito 3 iter soluzione errore e e e e e e e e e e e-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.

49 Esercizio 5 (Esame ) Sia data la seguente matrice: 0 e vettore b tale che la soluzione del sistema sia

50 Quesiti 1, 2 e 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:

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 lerrore 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 lerrore relativo nel primo e nel secondo caso

52 Quesito 4 utilizzando 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 lerrore nel primo caso. 4- Si confrontino e si commentino i risultati.

53 Istruzioni relative al quesito 1 clear all clc % Costruzione della matrice d=[ ]; n=length(d); d1=zeros(1,n-1); d2=[ ];d3=[ ]; 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*alpha Simmetria=(A==A'); if Simmetria==1 disp('A e'' simmetrica') end autovalori=eig(A) if autovalori>0 disp('A e'' definita positiva') end

54 Istruzioni relative ai quesiti 2 e 3 K2=cond(A) % stima cifre perse cifre_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 ']; end st=[st,'%10.2e \n']; fprintf('iter \t\t\t\t soluzione \t\t\t\t\t\t errore \n\n') fprintf(st,tab')

55 Risultati quesito 1 A = b = A e' simmetrica A e' definita positiva A = b = A e' simmetrica A e' definita positiva autovalori = autovalori = format short

56 Tabella dei risultati iter soluzione errore e e-006 iter soluzione errore e e-006 K2 = Quindi: cifre_perse = 1 K2 = Quindi: cifre_perse = 1 Il condizionamento K2 di A è buono. A piccole perturbazioni sui dati corrispondono piccole variazioni sui risultati.