Recherche linéaire Dichotomique

Cette recherche linéaire utilise le principe de la dichotomie pour trouver le meilleur $t$ dans un intervalle qu'il faut tout d'abord déterminer.

Contents

function[tm] = dichotomic(f,x,d,tr,sigma)

Initialisation

tl = 0;
if nargin==3
    tr = 0.1;
end
z = -1;
FIN = 0;

Recherche d'intervalle

while (z<0)
    z = feval(f,x+tr*d)*d';
    if (z<0)
        tl = tr;
        tr = 2*tr;
    end
end

Recherche dichotomique

while (abs(tl-tr)>2*eps) && (FIN==0)
    tm = (tl+tr)/2;
    h = feval(f,x+tm*d)*d';
    if (h<eps)
        FIN = 1;
    elseif h>0
        tr=tm;
    else
        tl=tm;
    end
end
end

Retour au sujet