Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clc
- clear all
- close all
- % odpowiednie fragmenty kodu można wykonać poprzez znazaczenie i wciśnięcie F9
- % komentowanie/ odkomentowywanie: ctrl+r / ctrl+t
- % Włączanie dziennika:
- diary('dziennik_indeks_lab3');
- % Zadanie A
- %------------------
- N = 10;
- density = 3; % parametr decydujący o gestosci polaczen miedzy stronami
- indeks = 165325 ;
- [Edges] = generate_network(N, 3, 165325);
- max(max(Edges))
- %-----------------
- % Zadanie B
- %------------------
- % generacja macierzy I, A, B i wektora b
- % ...
- T=sparse(Edges(2,:),Edges(1,:),ones(1,length(Edges)));
- B=full(T);
- I= eye(N);
- A=zeros(N);
- for i =1:1:N
- A(i,i)=1/(sum(B(:,i)));
- end
- M = 0.85*B;
- M = M*A;
- M = I-M;
- b = ones(N,1);
- %A = sparse(A); % macierze A, B i I muszą być przechowywane w formacie sparse (rzadkim)
- %B = sparse(B);
- %I = sparse(I);
- for i =1:1:N
- b(i)=(1-0.85)/N;
- end
- r = M\b;
- bar(r);
- save zadC indeks r
- save zadB_indeks A B I b
- %-----------------
- % Zadanie D
- %------------------
- clc
- clear all
- close all
- N = [500, 1000, 3000, 6000, 12000];
- tic
- for j = 1:5
- % obliczenia
- [Edges] = generate_network(N(j), 3, 165325);
- max(max(Edges))
- T=sparse(Edges(2,:),Edges(1,:),ones(1,length(Edges)));
- B=full(T);
- I= eye(N(j));
- A=zeros(N(j));
- for i =1:1:N(j)
- A(i,i)=1/(sum(B(:,i)));
- end
- M = 0.85*B;
- M = M*A;
- M = I-M;
- b = ones(N(j),1);
- %A = sparse(A); % macierze A, B i I muszą być przechowywane w formacie sparse (rzadkim)
- %B = sparse(B);
- %I = sparse(I);
- for i =1:1:N(j)
- b(i)=(1-0.85)/N(j);
- end
- r = M\b;
- czas_Gauss(j) = toc;
- end
- %plot(N, czas_Gauss)
- saveas(plot(N, czas_Gauss),'zadD_165325','png')
- %------------------
- % Zadanie E
- %------------------
- clc
- clear all
- close all
- % przykład działania funkcji tril, triu, diag:
- %Z = rand(4,4)
- N = [500, 1000, 3000, 6000, 12000];
- tic
- density = 10;
- k =zeros(5);
- for j = 1:5
- % obliczenia
- [Edges] = generate_network(N(j), 10, 165325);
- max(max(Edges));
- T=sparse(Edges(2,:),Edges(1,:),ones(1,length(Edges)));
- B=full(T);
- I= eye(N(j));
- A=zeros(N(j));
- for i =1:1:N(j)
- A(i,i)=1/(sum(B(:,i)));
- end
- M = 0.85*B;
- M = M*A;
- M = I-M;
- M=sparse(M);
- b= ones(N(j),1)*((1-0.85)/N(j));
- L=tril(M,-1);
- U=triu(M,1);
- D=diag(diag(M));
- res = 0;
- r0=ones(N(j),1)*(1/N(j));
- while true
- k(j)=k(j)+1;
- r1 = (-1)*(D\(L+U)*r0 + (D\b));
- r0=r1;
- res = M*r0 - b;
- if norm(res)<=10^-14
- break;
- end
- end
- czas_Jacobi(j) = toc;
- end
- plot(N, czas_Jacobi)
- saveas(plot(N,czas_Jacobi),'zadE_165325_1','png');
- semilogy(res);
- plot(N, k)
- saveas(plot(N, k),'zadE_165325_2','png');
- semilogy(res)
- saveas(semilogy(res),'zadE_165325_3','png');
- plot(k,1:5)
- %------------------
- diary off
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement