1 5 a -6 a lezione di laboratorio 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
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:
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 l’aspetto 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 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.
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
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.
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.
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
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,
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] .
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. 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
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',[-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
18
figure(2)ezplot('cos(t)','sin(t)') % forma parametrica
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
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
21
Risultati file figure
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')
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
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
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 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
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
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
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
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'))
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.
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
,
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% !!!
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.')
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.
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)
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
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
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
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=[1 1 1 1 1 1]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
ix
ix
ierr
ires
i
i
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.
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;
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)
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
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');
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.
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] .
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:
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
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.
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
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')
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
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.