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