function x1=SG(A,b,x0,ni)
% function SG(A,b,x0,ni)
% Metody sdruzenych gradinetu pro system rovnic Ax=b
% x0 - pocatecni iterace
% ni - pocet iteraci (implicitni hodnota 10)
% Iterace jsou prubezne vypisovany.


if nargin==3
    ni=10;
end

disp('Pocatecni iterace:')
x0
disp('Neco stiskni.')
pause
r=b-A*x0;
% prvni iterace
v=r;
alfa=r'*v/(v'*A*v);
disp('Dalsi iterace:')
x1=x0+alfa*v
r=r-alfa*A*v;
x0=x1;
for k=1:ni
    disp('Neco stiskni.')
    pause
    beta=-r'*A*v/(v'*A*v);
    v=r+beta*v;
    alfa=r'*v/(v'*A*v);
    disp('Dalsi iterace:')
    x1=x0+alfa*v
    r=r-alfa*A*v;
    x0=x1;
end
