function [A,L,U,x]=gauss_meth(A,b)
% Megoldja az Ax=b egyenletrendszert. Az A mátrixban a kibõvített mátrix alakját adja vissza a
% transzformáció után: fõátló alatt L megfelelõ elemei, a fõátlóban és
% fölötte az U mátrix elemei, a jobboldali vektor pedig az egyenletrendszer
% megoldása. L és U az LU-felbontás két mátrixa és x az egyenletrendszer
% megoldása.
[~,n]=size(A);
tril(A,-1)
A=[A,b];
for k=1:n-1
   for i=k+1:n
      A(i,k)=A(i,k)/A(k,k);
      A(i,k+1:n+1)=A(i,k+1:n+1)-A(i,k)*A(k,k+1:n+1);
   end
end

for j = n:-1:2
   A(j,n+1)=A(j,n+1)/A(j,j); 
   A(1:j-1,n+1)=A(1:j-1,n+1)-A(j,n+1)*A(1:j-1,j);
end
A(1,n+1) = A(1,n+1)/A(1,1);

U=triu(A(:,1:n));
L=speye(n)+tril(A(:,1:n),-1);
x=A(:,n+1);
