Code covered by the BSD License  

Highlights from
Trajectories of eigenvalues

image thumbnail
from Trajectories of eigenvalues by Emanuele Natale
Program that plots the changing eigenvalues obtained progressively adding a matrix B to a matrix M.

perteig(M,B,T)
%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

Contact us