% Halvering.m 
%
% Dette skriptet implementerer halveringsmetoden, og er basert paa
% pseudokoden Bisection1, s. 94 i C&K.
% 
% Denne koden loeser ligning (1), oeving 2. 
% Du maa selv endre a, b og funksjonen f dersom du vil teste det
% paa andre problemer. 

a = 0;
b = 1;
nmax = 10;

u = a^3-3*a+1;
v = b^3-3*b+1;

if u*v > 0 
    error('Det er ikke sikkert at det er en rot i intervallet (a,b)');
end
for n=1:nmax
    c = (a+b)/2;
    w = c^3-3*c+1;
    fprintf('n=%3d   c=%15.12f  f(c)=%9.2e\n',n,c,w)
    if abs(u*v) < eps
	break;
    else
	if w*u < 0
	    b = c;
	    v = w;
	else
	    a = c;
	    u = w;
	end
    end
end

	





