Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % Lab 3.
- % Marta Trzaska 171632 SiSR
- format compact
- close all;
- clc;
- d = 0.86;
- N = 11; % liczba wszystkich stron www
- E = ones(N, N); % macierz jedynek o wymiarze N x N
- B = zeros(N, N);
- x = [1/2, 1/10, 1, 1, 1/2, 1/2, 1/2, 1/2, 1/2, 1, 1]; % jeśli nie ma linków wychodzących L(p) = N-1 -> 1/L(p) = 1/10
- LAMBDA = diag(x);
- fid = fopen('input_graph.txt');
- EDGES = fscanf(fid, '%i -> %i', [2 inf]);
- fclose(fid);
- %macierz sąsiedztwa B
- for i=1:16 % b(p_i, p_j) = 1 jeśli p_j ma link do p_i
- p_j = EDGES(1, i);
- p_i = EDGES(2, i);
- B(p_i, p_j) = 1;
- end
- %macierz M
- M = d*B*LAMBDA + ((1 - d)/N*E);
- %wektor startowy R0
- R0 = 1/N * ones(N, 1);
- %METODA POTĘGOWA
- R = R0;
- k = 1;
- for j=1:100
- R = M * R;
- R = R / norm(R, 1);
- lambda(k) = (R' * M * R) / (R' * R);
- if(k == 1)
- roznica = lambda(k);
- else
- roznica = abs(lambda(k) - lambda(k-1));
- end
- k = k + 1;
- if(roznica < 1e-6)
- break;
- end
- end
- R_final = R;
- figure;
- bar([1:11], R_final);
- title('Wizualizacja wyników');
- xlabel('Numer strony www');
- ylabel('Wartość PageRank');
- %do zad.4
- R = R0;
- k = 1;
- for j=1:100
- R = M * R;
- R = R / norm(R, 1);
- lambda(k) = (R' * M * R) / (R' * R);
- power_err(k) = norm(R - R_final);
- if(k == 1)
- roznica = lambda(k);
- else
- roznica = abs(lambda(k) - lambda(k-1));
- end
- k = k + 1;
- if(roznica < 1e-6)
- break;
- end
- end
- figure;
- plot([1:j], log(power_err));
- title('Wykres wartości log(power_ eff)');
- xlabel('Liczba iteracji');
- ylabel('Wartość log(power_ eff)');
- predkosc_zbieznosci_ap = polyfit(1:length(power_err(1:(k-2))), log(power_err(1:(k-2))), 1)
- WW = abs(eig(M));
- predkosc_zbieznosci_teor = log(abs((WW(1))/abs(WW(2))))
Add Comment
Please, Sign In to add comment