Buscar

trabalhomatlab com entrada

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

%Trabalho de ciência das redes.
%Aluno: Ewerton Figueiroa.
clear
%Solicitando o número de nós do grafo:
nos=input('Digite a quantidade de nós do grafo a ser gerado:');
%Gerando a matriz adjacência de um grafo:
A=round(rand(nos)); 
for i=1:nos
 for j=1:nos
 A(i,j)=A(j,i);
 if i==j
 A(i,j)=0;
 end
 end
end
%Representando o grafo:
cm = A; 
ids = [];
bg2 = biograph(cm,ids,'LayoutType','equilibrium','ShowArrows','off');
get(bg2.nodes,'ID')
view(bg2)
%Menores caminhos do grafo:
DG=sparse(cm);
MC=graphallshortestpaths(DG,'directed',false);
%Diâmetro do grafo:
Di=max(MC);
Diametro=0;
for i=1:nos;
 if Di(1,i)>Diametro
 Diametro=Di(1,i);
 end
end
%Histograma de menores caminhos:
z=1:Diametro;
[bincounts] = histc(MC,z);
y=bincounts';
w=sum(y);
figure
bar(z,w)
title({'Histograma de menores caminhos'});
xlabel({'Menores caminhos'});
ylabel({'Frequência'});
%Menor caminho médio:
Le=mean(MC);
mcm=mean(Le);
%Gerando a matriz D:
AB=sum(A,2);
D=diag(AB);
%Calculando a matriz Laplaceana:
L=D-A;
%Conectividade algébrica:
autov=eig(L);
CA=autov(2,1);
%Histograma de autovalores:
figure
bar(autov)
title({'Histograma de autovalores'});
xlabel({'Sequência de autovalores'});
ylabel({'Autovalor'});
%Raio espectral:
Ra=autov(nos,1);
%Entropia:
EN=0;
BC=AB';
for j=1:nos
 EN=BC(1,j)*log2(BC(1,j))+EN;
end
%Mostrando as matrizes e métricas:
disp('Matriz adjacência:');
disp(A);
disp('Matriz de grau:');
disp(D);
disp('Matriz laplaceana:');
disp(L);
disp('Autovalores:');
disp(autov);
disp('Conectividade algébrica:');
disp(CA);
disp('Raio espectral:');
disp(Ra);
disp('Matriz de menores caminhos:');
disp(MC);
disp('Diâmetro do grafo:');
disp(Diametro);
disp('Menor caminho médio:');
disp(mcm);
disp('Entropia:');
disp(-EN);

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais