%zad1 N = 10; d = 0.85; Edges = [1, 1, 2, 2, 2, 2, 3, 3, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 10, 10, 4, 4, 4, 4, 4, 4, 4, 4, 4; 2, 4, 3, 7, 8, 10, 1, 7, 7, 2, 4, 5, 8, 4, 5, 6, 7, 8, 5, 8, 1, 2, 3, 5, 6, 7, 8, 9, 10]; % Skonstruuj macierze A, B, I i wektor b dla po³¹czeñ wygenerowanych w Zadaniu A dla parametru d = 0.85. % Wszystkie macierze powinny byæ przechowywane w formacie sparse, poniewa¿ s¹ to macierze rzadkie I = eye(N); B = full(sparse(Edges(2, :), Edges(1, :), 1)); A = diag(1./sum(B)); b = []; b = ((1 - d) / N) * ones(N, 1); M = I - d*B*A; r = M\b; r = r / norm(r); %zad2 N = 10; d = 0.85; Edges = [1, 1, 2, 2, 2, 2, 3, 3, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 10, 10, 4, 4, 4, 4, 4, 4, 4, 4, 4; 2, 4, 3, 7, 8, 10, 1, 7, 7, 2, 4, 5, 8, 4, 5, 6, 7, 8, 5, 8, 1, 2, 3, 5, 6, 7, 8, 9, 10]; % Skonstruuj macierze A, B, I i wektor b dla po³¹czeñ wygenerowanych w Zadaniu A dla parametru d = 0.85. % Wszystkie macierze powinny byæ przechowywane w formacie sparse, poniewa¿ s¹ to macierze rzadkie I = eye(N); B = full(sparse(Edges(2, :), Edges(1, :), 1)); A = diag(1./sum(B)); b = []; b = ((1 - d) / N) * ones(N, 1); M = I - d*B*A; D = diag(diag(M)); L = tril(M) - D; U = triu(M) - D; % Jacobi % LU = L + U; D_inv = inv(D); r = ones(N, 1)./N; k = 0; tic; while norm(M*r - b) > 10^-14 r = -D_inv * LU * r + D_inv * b; k = k + 1; end time = toc k % Gauss-Seidl % DL = (D + L); r = ones(N, 1)./N; k = 0; tic; while norm(M*r - b) > 10^-14 r = ((-DL) \ (U * r)) + (DL \ b); k = k + 1; end time = toc k