%{ 
Lista 4 zadanie 2. Dana jest macierz A, kwadratowa i nieosobliwa, trzeba rozwiazac 
uklad rownan
                  Ax=b
metoda eliminacji Gaussa z pelnym wyborem elementu podstawowego. Pelny wybor elementu 
podstawowego oznacza, ze zawsze wybieramy do normalizacji element o najwiekszym module.
%}

n=3;			%trzeba podac rozmiar macierzy A
A=[1 2 4;-0.3 0.4 0.1;-2 0.3 0.1]			%oraz sama macierz
b=[1;2;3]			%oraz wektor prawej strony
B=[A b];		%macierz rozszerzona, ostatnia kolumna to wektor b
c=[1:n];
for k=1:n
  max=abs(B(k,k));
  i_max=k;
  j_max=k;
  for i=k:n
    for j=k:n
      if abs(B(i,j))>max
        max=abs(B(i,j));
        i_max=i;
        j_max=j;
      end;
    end;
  end;
  if i_max>k
    for j=k:n+1
      t=B(k,j);
      B(k,j)=B(i_max,j);
      B(i_max,j)=t;
    end;
  end;
  if j_max>k
    for i=1:n
      t=B(i,k);
      B(i,k)=B(i,j_max);
      B(i,j_max)=t;
    end;
    t=c(k);
    c(k)=c(j_max);
    c(j_max)=t;
  end;
  t=B(k,k);
  for j=k:n+1
    B(k,j)=B(k,j)/t;
  end;
  for i=1:k-1
    t=B(i,k);
    for j=k:n+1
      B(i,j)=B(i,j)-t*B(k,j);
    end;
  end;
  for i=k+1:n
    t=B(i,k);
    for j=k:n+1
      B(i,j)=B(i,j)-t*B(k,j);
    end;
  end;
end;
for i=1:n
  x(c(i))=B(i,n+1);
end;
x.'			%x to jest wektor rozwiazañ