% NOZIONI DI ALGEBRA LINEARE
% norme di vettore
v = [1 2 3 4]
v =
1 2 3 4
norm(v)
ans =
5.4772
% norma 1 di vettore e' la somma dei
% valori assoluti degli elementi
norm(v,1)
ans =
10
% norma infinito e' il valore assoluto
% piu' grande tra quello dei vari elementi
% del vettore
norm(v,'inf')
ans =
4
norm(v,inf)
ans =
4
% --- GUARDARE doc norm
% AUTOVALORI
A = [1 2 3; 0 3 4;0 0 5]
A =
1 2 3
0 3 4
0 0 5
eig(A)
ans =
1
3
5
% L'insieme degli autovalori di una matrice รจ
% detto spettro della matrice
R = rand(10)
R =
Columns 1 through 5
0.8147 0.1576 0.6557 0.7060 0.4387
0.9058 0.9706 0.0357 0.0318 0.3816
0.1270 0.9572 0.8491 0.2769 0.7655
0.9134 0.4854 0.9340 0.0462 0.7952
0.6324 0.8003 0.6787 0.0971 0.1869
0.0975 0.1419 0.7577 0.8235 0.4898
0.2785 0.4218 0.7431 0.6948 0.4456
0.5469 0.9157 0.3922 0.3171 0.6463
0.9575 0.7922 0.6555 0.9502 0.7094
0.9649 0.9595 0.1712 0.0344 0.7547
Columns 6 through 10
0.2760 0.7513 0.8407 0.3517 0.0759
0.6797 0.2551 0.2543 0.8308 0.0540
0.6551 0.5060 0.8143 0.5853 0.5308
0.1626 0.6991 0.2435 0.5497 0.7792
0.1190 0.8909 0.9293 0.9172 0.9340
0.4984 0.9593 0.3500 0.2858 0.1299
0.9597 0.5472 0.1966 0.7572 0.5688
0.3404 0.1386 0.2511 0.7537 0.4694
0.5853 0.1493 0.6160 0.3804 0.0119
0.2238 0.2575 0.4733 0.5678 0.3371
eig(R)
ans =
5.2897
0.4240 + 0.9379i
0.4240 - 0.9379i
0.6325
0.2537
-0.5688 + 0.3900i
-0.5688 - 0.3900i
-0.2948 + 0.3151i
-0.2948 - 0.3151i
-0.4149
% rappresentazione degli autovalori
% di R sul piano di Gauss
lambda = eig(R);
plot(lambda,'o','lineWidth',3)
clear,clc
newtonTest
newtonTest
??? Attempted to access f(3.99429); index
must be a positive integer or logical.
Error in ==> newton at 13
x(n+1) = x(n)-f(x(n))/df(x(n));
Error in ==> newtonTest at 20
x = newton(f, df, x0, toll, nmax);
newtonTest
??? Attempted to access f(3.99429); index
must be a positive integer or logical.
Error in ==> newton at 13
x(n+1) = x(n)-f(x(n))/df(x(n));
Error in ==> newtonTest at 20
x = newton(f, df, x0, toll, nmax);
clear all,clc
newtonTest
diary off
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
LISTATO FUNCTION
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function normv = normavett(v)
%NORMAVETT norma Euclidea di vettore
% NORMV = NORMAVETT(V) restituisce in
% NORMV la norma Euclidea del vettore V.
%
% $ Roberto Bertelle $ $ 30-03-2015 $
numElem = length(v);
S2 = 0;
for k=1:numElem
% aggiungo il contributo dell'elemento v(k)
S2 = S2+v(k)^2;
end
normv = sqrt(S2);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function x = pfisso(g, x0, toll, nmax)
%PFISSO metodo di punto fisso
% X = PFISSO(G,X0,TOLL,NMAX) metodo di punto fisso
% per il calcolo di un punto fisso X di
% G(x).
%
% Il metodo di punto fisso crea le
% iterate
%
% x0 dato
% x(n+1) = g( x(n) ), n=0,1,2,...
%
%
% Arresto le iterate quando
% | x(n+1)-x(n) |= toll && n <= nmax)
% calcolo nuova iterata del metodo
% di punto fisso
n = n+1;
x(n+1) = g( x(n) );
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% FILE DI PROVA PER LA FUNZIONE DI
% PUNTO FISSO
% definisco la funzione
g = inline('sqrt(x)');
xVero = 1.0;
x0 = 4;
toll = 1E-9;
nmax = 100;
x = pfisso(g, x0, toll, nmax);
% riporto in un grafico i risultati
AbsErrore = abs( x-xVero );
semilogy(AbsErrore,'-bo')
grid on
% aggiungo legende agli assi
xlabel('n','fontSize',18)
ylabel('| E(n) |','fontSize',18)
legend('Errore')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function x = newton(f, df, x0, toll, nmax)
%NEWTON ....
%
% x(n+1) = x(n) - f(xn)/f'(xn)
x(1) = x0;
x(2) = x(1)- f( x(1) )/df( x(1) );
n = 1;
while( abs( x(n+1)-x(n) )>=toll && n<=nmax )
n = n+1;
x(n+1) = x(n)-f(x(n))/df(x(n));
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% FILE PER NEWTON
% definisco la funzione
%f = inline('x.^2-1');
%df = inline('2*x');
f = inline('(x-1).^5.*log(x)');
df = inline('5*((x-1).^4).*log(x)+((x-1).^5)./x');
xVero = 1.0;
x0 = 4;
toll = 1E-9;
nmax = 100;
% definisco la funzione
g = inline('sqrt(x)');
xVero = 1.0;
x0 = 4;
toll = 1E-9;
nmax = 100;
x = newton(f, df, x0, toll, nmax);
% riporto in un grafico i risultati
AbsErrore = abs( x-xVero );
semilogy(AbsErrore,'-bo')
grid on
% aggiungo legende agli assi
xlabel('n','fontSize',18)
ylabel('| E(n) |','fontSize',18)
legend('Errore');