Sei sulla pagina 1di 1

function [ALFA,alfa]=alfa_armijo(x,g,d)

delta=.5*rand(1);
gamma=(1e-5)*rand(1);
c=rand(1);
DELTA=c*norm(g'*d)/(norm(d)^2);
xn=x+DELTA*d;
fn=funzione(xn);
f=funzione(x);
ALFA=zeros(1,1000);
h=0;
if fn>f+gamma*DELTA*(g'*d)
while fn>f+gamma*DELTA*(g'*d) && h<1000
h=h+1;
DELTA=delta*DELTA;
xn=x+DELTA*d;
fn=funzione(xn);
ALFA(h)=DELTA;
end
else
end
alfa=DELTA;

Potrebbero piacerti anche