function vxk=busca_dic(nomefun,ak,bk,kmax)
  // Mat01032 - Calculo Numerico A - UFRGS
  // Busca Dicotomica para aproximar minimo de funcao
  // como usar:  vxk=busca_dic('f',0.3,2.3,6)
  // para funcao f(x) no intervalo [0.3, 2.3] e aplicando 6 iteracoes
  ep=10**(-7); vxk=zeros(kmax,1);
  mxk = ak + (bk-ak)/2; // primeiro ponto medio
  for k=1:kmax
    sk= mxk -ep; uk= mxk + ep; 
    fsk = evstr(nomefun+"("+string(sk)+")");
    fuk = evstr(nomefun+"("+string(uk)+")");

    if sign(fsk-fuk)==-1
      bk=uk; // continuamos com intervalo [ak, uk]
    else
      ak=sk; // continuamos com intervalo [sk, bk] 
    end
    mxk = ak + (bk-ak)/2; // novo ponto medio
    vxk(k)= mxk;  // vetor de novos pontos medios
  end   
endfunction

