function [a,b] = min_zlaty_rez(fce,a,b,e)
% min_zlaty_rez - hledani minima funkce na danem intervalumetodou zlateho rezu
% [a,b] = min_zlaty_rez(fce,a,b,e)
% fce ... handle funkce, kterou minimalizujeme
% a,b ... zacatek a konec intervalu, kde hledame minimum
% e ..... pozadovana presnost (delka konecneho intervalu), 0<e<1
% --- vystupy:
% a,b ..... zacatek a konec upresneneho intervalu, kde lezi minimum

if ~isa(fce,'function_handle')
    error('1. vstup musi byt handle funkce!')
end
if a>=b
    error('Zacatek intervalu musi byt mensi nez konec (2. a 3. vstup)!')
end
if e<=0 || e>=1
    error('Delka intervalu musi byt kladne cislo mensi nez 1 (4. vstup)!')
end
% metoda zlateho rezu:
t = (sqrt(5)-1)/2; % koeficient
L = abs(b-a);

while L>=e % dokud neni dosazena presnost
    a_ = a + (1-t)*(b-a);
    b_ = a + t*(b-a);
    if fce(a_)<=fce(b_) % porovnani fcnich hodnot
        b = b_; % zahodime 'b'
    else
        a = a_; % zahodime 'a'
    end
    L = abs(b-a); % nova delka
end
        