function [X,x]=laplace(n,xn,xs,xe,xw)
% Beregner løsningen av den 2-dimensjonale Laplace-lingningen(u_xx+u_yy=0) på
% området (0,1)x(0,1) med n indre punkter i hver retning.
%
%   - Dirichlet randbetingelser på hver av de fire rendene gis inn i
%     xn,xs,xe,xw. Disse må være vektorer av lengde n+2. 
%  
% For å teste programmet, prøv følgende kommando:
% [X,x]=laplace(20,ones(22,1),zeros(22,1),ones(22,1),zeros(22,1));
% Resultatet kan plottes med kommandoen surf(x,x,X)
% 
% AA-07

tol = 10e-10;
h = 1/(n+1);
x = 0:h:1;
X = zeros(n+2,n+2);
Xgammel = zeros(n+2,n+2);

X(n+2,1:n+2) = xn;
X(1,1:n+2) = xs;
X(1:n+2,1) = xe;
X(1:n+2,n+2) = xw;


% Løs systemet med Gauss-Seidel
while max(max(abs(X-Xgammel)))>tol
  Xgammel = X;
  for i=2:n+1
    for j=2:n+1
      X(i,j) = (X(i+1,j)+X(i-1,j)+X(i,j+1)+X(i,j-1))/4;
    end
  end
end

