for k:=1 to n-1
begin

   for i:=k+1 to n
	begin

      m := a[i][k]/a[k][k];

      a[i][k] := 0;

      for j := k+1 to n
         a[i][j] := a[i][j] - (m*a[k][j]);

      b[i] := b[i] - (m*b[k])

	end;

end;

x[n] := b[n]/a[n][n];

for l := n-1 downto 1
begin

   soma :=0;

   for j:=l+1 to n
      soma:= soma + a[l][j];

   x[l] := (b[l] -(soma*x[j]))a[l][l];

end;
