% PEng 7.3

% Skapa en 100x100 (sparse) matris där 5% av elementen är slumptal, resten 0
% Sätt diagonalelementen till 1
a = sprand(100, 100, 0.05);
a = min(1, a + speye(100, 100));
% 5x5-exempel:
% a =
%  (1,1)       1.0000
%  (5,1)       0.5168
%  (2,2)       1.0000
%  (3,2)       0.4559
%  (1,3)       0.4714
%  (3,3)       1.0000
%  (2,4)       0.1554
%  (4,4)       1.0000
%  (5,5)       1.0000

% Skapa en 100x1 (sparse) vektor med slumptal
b = sprand(ones(100, 1));
% 5x5-exempel:
% b =
%   (1,1)       0.9555
%   (2,1)       0.4500
%   (3,1)       0.1387
%   (4,1)       0.3933
%   (5,1)       0.5659

% a) Skapa en full matris a_full
a_full = full(a);
% 5x5-exempel:
% a_full =
%    1.0000         0    0.4714         0         0
%         0    1.0000         0    0.1554         0
%         0    0.4559    1.0000         0         0 
%         0         0         0    1.0000         0
%    0.5168         0         0         0    1.0000  
%
% Sparse mer effektivt i detta fall

% b) Plotta 
spy(a)

% c) Skapa en full vektor b_full
b_full = full(b);
% 5x5-exempel:
% b_full =
%    0.9555
%    0.4500
%    0.1387
%    0.3933
%    0.5659
%
% Full mer effektivt i detta fall

% d) lös ekvsyst

tic
x = a\b;
toc
% 0.01-0.02 s, x är sparse

tic
x_full = a_full\b_full;
toc
% 0.005-0.007 s, x_full är full
