    function [a,b]=gausspiv(a,b)
    % Gausselimination med partiell pivotering
    % Matrisen a innehåller efter anropet den 
    % högertriangulära matrisen
    [n,n]=size(a);
    for k=1:n-1
      [a,b]=pivot(a,b,k);
      for i=k+1:n, m(i,k)=a(i,k)/a(k,k); end
      for i=k+1:n
        for j=k+1:n
          a(i,j)=a(i,j)-m(i,k)*a(k,j);
        end
        b(i)=b(i)-m(i,k)*b(k);
      end
    end
    
    function [C,d]=pivot(C,d,k)
    % Sök största elementet i kolonn k av C
    % (på och under diagonalen)
    % och byt denna rad och rad k
    [n,n]=size(C);
    [y,ind]=max(abs(C(k:n,k))); ind=ind+k-1;
    rad=C(k,:); C(k,:)=C(ind,:); C(ind,:)=rad;
    t=d(k); d(k)=d(ind); d(ind)=t;



