function [x, h] = newton_raphson(x_start, h_max, f, f_prim)
% Returnerar roten x närmast x_start till funktionen f, med högst 
% fel h_max
% Obs: ingen konvergenskontroll!

% Initialt relativfel
prev_h = 1;

% Startvärde
prev_x = x_start;

% Skriv ut tabellhuvud
disp('iteration         x           h')
disp('------------------------------------')
disp(sprintf('    0 %19.9e', x_start))

% Newton-Raphson
iter = 0;
while prev_h >= h_max
	iter = iter + 1;
	
	% Beräkna f(prev_x) och f'(prev_x)
	f_val = f(prev_x);
	f_prim_val = f_prim(prev_x);
	
	x = prev_x - f_val/f_prim_val;
	h = abs((x - prev_x)/x);
	disp(sprintf('%5i %19.9e %10.4e',iter, x, h))

	prev_x = x;
	prev_h = h;
end
