%author: Emanuele Natale
%email: natema89@gmail.com
%date: 6 febrary 2011
%Version number: 1.0
%Ispirata alla dimostrazione del secondo teorema di Gershgorin,
%otteniamo la seguente funzione "ploteig" che ci disegna le traiettorie
%degli autovalori sul piano complesso, partendo da quelli della matrice M,
% al variare del peso della matrice di perturbazione B.
%(Il parametro T in imput definisce la finezza del calcolo della
%traiettoria)
function perteig(M,B,T)
%Eseguiamo un test preliminare sulla correttezza dell'input
error(nargchk(nargin,3,3));
if size(M,1) ~= size(M,2)
error('The first matrix should be square');
return;
end
if size(B,1) ~= size(B,2)
error('The second matrix should be square');
return;
end
%Grafichiamo la traiettoria degli autovalori, segnando con 'ro'
%gli autovalori di M e con '+' gli autovalori di M+B
eigens=eig(M);
plot(real(eigens),imag(eigens),'ro','MarkerSize',12);
hold on;
for k=1:(T-1)
eigens=eig(M+(k/T)*B);
plot(real(eigens),imag(eigens),'c*','MarkerSize',3);
hold on;
end
eigens=eig(M+B);
graph=plot(real(eigens),imag(eigens),'b+','MarkerSize',12);
legend(graph,'Final Eigenvalues');
grid;
hold off;
axis vis3d;
end