-
Notifications
You must be signed in to change notification settings - Fork 0
/
Zad2a.m
78 lines (48 loc) · 1.27 KB
/
Zad2a.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
n = [5 10 50 100 200]';
eps1 = zeros( length(n), 1 );
T = zeros( length(n), 1 );
for k=1:length(n)
% Generowanie macierzy A
% A(i,j) = 12 dla i=j
% A(i,j) = 3.8 dla i=j-1 lub i=j+1
% A(i,j) = 0 dla pozostalych
A = zeros( n(k) );
for i=1:n(k)
A(i,i) = 12;
end
for j=2:n(k)
A(j-1,j) = 3.8;
end
for j=1:n(k)-1
A(j+1,j) = 3.8;
end
% Generowanie wektora b
% b(i) = 4.5 - 0.5*i
b = zeros( n(k), 1 );
for i=1:n(k)
b(i) = 4.5 - 0.5*i;
end
tic;
x = GJ( A, b, n(k) );
T(k) = toc;
eps1(k) = norm( A*x - b );
end
T = T .* 1000; % aby wyniki byly w ms
% Wykres bledu rozwiazania od liczby rownan
figure(1);
hold on;
plot(n,eps1,'r.', 'MarkerSize', 25);
grid on;
title('Zależnosc bledu rozwiazania od liczby rownan (czesc a))');
xlabel('Liczba rownan n');
ylabel('Blad rozwiazania eps1');
hold off;
% Wykres czasu dzialania algorytmu od liczby rownan
figure(2);
hold on;
plot(n,T,'r.', 'MarkerSize', 25);
grid on;
title('Zaleznosc czasu dzialania algorytmu od liczby rownan (czesc a))');
xlabel('Liczba rownan n');
ylabel('Czas działania algorytmu [ms]');
hold off;