Sunteți pe pagina 1din 1

function [Y,A]=bisezione(x,d)

y=x;
yn=y+.01*d;
% vedo se devo andare nella direzione d o nella direzione opposta
f=funzione(y);
fn=funzione(yn);
if fn-f>1e-20
a=-1;
else a=+1;
end
fn=1;
f=10;
A=0;
Y=x;
while norm(fn-f)<10e-5 && A<1e20
A=A+1;
if norm(fn-f)>5
alfa=0.1;
elseif norm(fn-f)>3
alfa=1e-5;
elseif norm(fn-f)>1
alfa=1e-8;
else
end
yn=Y+a*alfa*d;
fn=funzione(yn);
f=funzione(Y);
Y=yn;
end

S-ar putea să vă placă și