- %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