function [x,it] = newton(f,df,x0,tol)
% [x,it] = newton(f,df,x0,tol)
%
% funkce nalezne reseni rovnice 
%      f(x) = 0
% Newtonovou metodou
%
% x ... reseni rovnice
% it ... pocet iteraci
%
% f ... predpis f(x) zadany ve stringu (promenna x), napr. f = 'log(x)+(x-1)^3'
% df ... derivace funkce f zadana ve stringu (promenna x), napr. df = '1/x + 3*(x-1)^2'
% x0  ... pocatecni aproximace
% tol ... pozadovana presnost

f = eval(['@(x)', f]); % function handle
df = eval(['@(x)', df]); % function handle

% doplnte kod
%
%
%
%
%
% doplnte kod

% vypis vysledku
disp(['Nalezena aproximace reseni dane rovnice ma hodnotu ', num2str(x, '%.15f.')])
disp(['Pocet potrebnych iteraci: ', num2str(it, '%d')])

% konec