Starting diary file "diary-2016-02-03.txt" on Wed Feb 03 2016 12:27 PM. load pagerankmats whos Name Size Bytes Class Attributes EG1 4x4 128 double EG2 5x5 200 double EG3 500x500 2000000 double HarvardCrawl 500x1 96816 cell E = EG1 E = 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 0 E(1,3) = 0 E = 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 [n,n] = size(E) n = 4 n = 4 outdegree = sum(E) outdegree = 3 2 0 2 for j=1:n, if outdegree(j)==0, E(:,j) = ones(n,1); end;end E E = 0 0 1 1 1 0 1 0 1 1 1 1 1 1 1 0 outdegree = sum(E) outdegree = 3 2 4 2 A = E * diag( 1 ./ sum(E)) A = 0 0 0.2500 0.5000 0.3333 0 0.2500 0 0.3333 0.5000 0.2500 0.5000 0.3333 0.5000 0.2500 0 [V,D] = eig(A); V V = Columns 1 through 2 0.4143 0.5979 0.3157 -0.2617 - 0.5000i 0.7103 0.0819 + 0.3435i 0.4735 -0.4181 + 0.1565i Columns 3 through 4 0.5979 0.5979 -0.2617 + 0.5000i -0.0746 0.0819 - 0.3435i -0.7617 -0.4181 - 0.1565i 0.2383 D D = Columns 1 through 2 1.0000 0 0 -0.3154 + 0.2745i 0 0 0 0 Columns 3 through 4 0 0 0 0 -0.3154 - 0.2745i 0 0 -0.1192 diag(D) ans = 1.0000 -0.3154 + 0.2745i -0.3154 - 0.2745i -0.1192 x = V(:,1) x = 0.4143 0.3157 0.7103 0.4735 norm(x) ans = 1.0000 [xx, perm] = sort(x,'descend'); perm perm = 3 4 1 2 E = EG2 E = 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 A = E * diag( 1 ./ sum(E)) A = 0 1.0000 0 0 0 1.0000 0 0 0 0 0 0 0 1.0000 0.5000 0 0 1.0000 0 0.5000 0 0 0 0 0 [V,D] = eig(A) V = 0.7071 -0.7071 0 0 0 0.7071 0.7071 0 0 0 0 0 0.7071 -0.7071 -0.4082 0 0 0.7071 0.7071 -0.4082 0 0 0 0 0.8165 D = 1 0 0 0 0 0 -1 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 [n,n] = size(E) n = 5 n = 5 outdegree = sum(E) outdegree = 1 1 1 1 2 A A = 0 1.0000 0 0 0 1.0000 0 0 0 0 0 0 0 1.0000 0.5000 0 0 1.0000 0 0.5000 0 0 0 0 0 S =ones(n) / n S = 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 m = 15/100 m = 0.1500 M = (1-m) * A + m * S M = 0.0300 0.8800 0.0300 0.0300 0.0300 0.8800 0.0300 0.0300 0.0300 0.0300 0.0300 0.0300 0.0300 0.8800 0.4550 0.0300 0.0300 0.8800 0.0300 0.4550 0.0300 0.0300 0.0300 0.0300 0.0300 sum(M) ans = 1.0000 1.0000 1.0000 1.0000 1.0000 [V,D] = eig(M) V = -0.7071 0.4054 0.5000 0 -0.0084 0.7071 0.4054 0.5000 0.0000 0.0084 0.0000 0.5777 -0.5000 -0.4082 -0.7071 0.0000 0.5777 -0.5000 -0.4082 0.7071 0.0000 0.0608 0.0000 0.8165 -0.0000 D = -0.8500 0 0 0 0 0 1.0000 0 0 0 0 0 0.8500 0 0 0 0 0 -0.0000 0 0 0 0 0 -0.8500 x = V(:,2) x = 0.4054 0.4054 0.5777 0.5777 0.0608 norm(x) ans = 1 [xx, perm] = sort(x,'descend'); perm perm = 4 3 2 1 5 clear load pagerankmats whos Name Size Bytes Class Attributes EG1 4x4 128 double EG2 5x5 200 double EG3 500x500 2000000 double HarvardCrawl 500x1 96816 cell E = EG3; [n,n] = size(E) n = 500 n = 500 outdegree = sum(E) outdegree = Columns 1 through 8 26 4 12 6 1 0 14 10 ... hist(outdegree) HarvardCrawl HarvardCrawl = 'http://www.harvard.edu' 'http://atwork.harvard.edu' 'http://lib.harvard.edu' 'http://www.president.harvard.edu' 'http://www.athletics.harvard.edu' 'http://www.haa.harvard.edu' 'http://search.harvard.edu:8765' 'http://www.fas.harvard.edu' 'http://www.ksg.harvard.edu' 'http://www.hbs.edu' 'http://www.law.harvard.edu' ... nnz(E) ans = 2636 spy(E) for j=1:n, if outdegree(j)==0, E(:,j) = ones(n,1); end;end nnz(E) ans = 63636 spy(E),shg A = E * diag( 1 ./ sum(E)); nnz(A) ans = 63636 size(A) ans = 500 500 max(sum(A)) ans = 1.0000 min(sum(A)) ans = 1.0000 goodcol = (sum(A) == 1); size(goodcol) ans = 1 500 nnz(goodcol) ans = 258 m = .15 m = 0.1500 S = ones(n)/n; M = (1-m) * A + m * S; max(sum(M)) ans = 1.0000 min(sum(M)) ans = 1.0000 [V,D] = eig(M); d = diag(D) d = 1.0000 -0.5972 0.8489 0.8500 0.7868 0.7599 0.7401 ... 0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 -0.0000 d(1) - 1 ans = 2.8866e-15 v = V(:,1); norm(v) ans = 1.0000 max(v) ans = 0.7923 min(v) ans = 0.0053 [xx, perm] = sort(v,'descend'); perm perm = 1 10 42 130 18 15 9 17 46 13 260 19 121 52 ... 497 perm(1:10) ans = 1 10 42 130 18 15 9 17 46 13 HarvardCrawl(1:10) ans = 'http://www.harvard.edu' 'http://atwork.harvard.edu' 'http://lib.harvard.edu' 'http://www.president.harvard.edu' 'http://www.athletics.harvard.edu' 'http://www.haa.harvard.edu' 'http://search.harvard.edu:8765' 'http://www.fas.harvard.edu' 'http://www.ksg.harvard.edu' 'http://www.hbs.edu' HarvardCrawl(perm(1:10)) ans = 'http://www.harvard.edu' 'http://www.hbs.edu' [1x48 char] 'http://www.med.harvard.edu' 'http://www.gse.harvard.edu' 'http://www.hms.harvard.edu' 'http://www.ksg.harvard.edu' 'http://www.hsph.harvard.edu' 'http://www.gocrimson.com' 'http://www.hsdm.med.harvard.edu' h = HarvardCrawl(perm(3)) h = [1x48 char] h{1} ans = http://search.harvard.edu:8765/custom/query.html clc clear load webGoogle whos Name Size Bytes Class Attributes Problem 1x1 89019636 struct Problem Problem = name: 'SNAP/web-Google' title: 'Web graph from Google' A: [916428x916428 double] id: 2301 date: '2002' author: 'Google' ed: 'J. Leskovec' kind: 'directed graph' notes: [37x79 char] A = Problem.A; size(A) ans = 916428 916428 nnz(A) ans = 5105039 spy(A),shg [V,D] = eig(A); {??? Error using ==> eig Use eigs for sparse eigenvalues and vectors. } M = randn(100); M = M + M'; eigsvdgui(M) M = randn(100); eigsvdgui(M) clear load pagerankmats E = EG1; A = E * diag( 1 ./ sum(E)); [n,n] = size(E) n = 4 n = 4 S = ones(n)/n S = 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 m = .15 m = 0.1500 M = (1-m) * A + m * S M = 0.0375 0.0375 0.8875 0.4625 0.3208 0.0375 0.0375 0.0375 0.3208 0.4625 0.0375 0.4625 0.3208 0.4625 0.0375 0.0375 eig(M) ans = 1.0000 -0.3065 + 0.3493i -0.3065 - 0.3493i -0.2369 [V,D] = eig(A); v = V(:,1) v = 0.7210 0.2403 0.5408 0.3605 x = rand(n,1) x = 0.6246 0.6257 0.2923 0.9011 x = x / norm(x) x = 0.4820 0.4829 0.2256 0.6954 v v = 0.7210 0.2403 0.5408 0.3605 A*x ans = 0.5733 0.1607 0.7498 0.4021 x = A*x; x = x / norm(x) x = 0.5521 0.1547 0.7220 0.3872 x = A*x; x = x / norm(x) x = 0.8547 0.1718 0.4247 0.2440 x = A*x; x = x / norm(x) x = 0.6270 0.3267 0.5651 0.4252 % repeat a bunch of times... x = A*x; x = x / norm(x) x = 0.7209 0.2404 0.5408 0.3606 x=ones(4,1) x = 1 1 1 1 x = A*x; x = x / norm(x) x = 0.6823 0.1516 0.6065 0.3790 % again repeat a bunch of times... x = A*x; x = x / norm(x) x = 0.7210 0.2403 0.5408 0.3605 load webGoogle A = Problem.A; size(A) ans = 916428 916428 [V,D] = eigs(A); % This took almost a minute. size(V) ans = 916428 6 diag(D) ans = 37.6396 -29.4205 32.8955 31.7113 25.9948 25.5653 diary off