function x=fixpunkt1(g,x0,tol)
% fixpunkt1 - fixpunktsiteration för den skalära ekvationen x=g(x) 
% 
%   Syntax: 
%           x = fixpunkt1(g,x0,tol)
%   Inargument: 
%           g - funktionshandtag till en funktionsfil  
%           x0 - ett tal, startapproximation
%           tol - en tolerans
%   Utargument: 
%           x - en kolonnvektor innehållande den beräknade följden
%   Beskrivning:
%          Programmet fixpunkt använder fixpunktsiteration för att 
%          beräkna en approximativ lösning till den skalära ekvationen 
%          x=g(x).  Funktionsfilen som g pekar på måste innehålla
%          funktionen y=g(x). Funktionen g:I->I måste vara en kontraktion
%          på något slutet intervall I.  Då har g en unik fixpunkt x_exakt
%          i I. Om startapproximationen x0 tillhör I, så beräknar 
%          programmet en approximativ lösning x med felet
%          |x-x_exakt| < tol/(1-L), där L är Lipschitz-konstanten för g.  
%   Exempel: 
%          x = fixpunkt1(@cos, 1, 1e-7) beräknar x= 1.000000000000000
%                                                   0.540302305868140
%                                                   0.857553215846393
%                                                          ...          
%                                                   0.739085169944554
%   Se också:
%          bisekt.m
%
%----------------------------------------------------------------------

i=1;                          % Numret på aktuellt tal i följden.
x(i)=x0;                      % Sätt x(1) = startapproximationen. 
x(i+1)=g(x(i));               % Beräkna x(2).

while abs(x(i+1)-x(i))>tol    % Fortsätt så länge skillnaden > tol:
  i=i+1;                      %   Öka i med 1.
  x(i+1)=g(x(i));             %   Beräkna nästa tal i följden.
end

x=x';                         % Transponera från rad- till kolonnvektor.
