x=linspace(-2,2); y=x; [X Y]=meshgrid(x,y); pl=contourf(X,Y,ros(X,Y),-.5:10:150); ##axis([0 2 0 2]); pause hold on plot(1,1,"og","markersize",10,"markerfacecolor","g") plot(-1,1.8,"or","markersize",10,"markerfacecolor","r") hold off pause xold=[-1;1.8]; ops=optimset("fminunc"); ops=optimset(ops,"MaxIter",20); for i=1:100 ## caso 1: utilizando fminunc ## xnew=fminunc(@rosenbrock0,xold,ops); ## caso 2: fazendo Newton na mao [funcao grad hessiana]=rosenbrock(xold); direcao=-hessiana\grad'; xnew=xold+direcao pl=contourf(X,Y,ros(X,Y),-.5:10:150); ##axis([0 2 0 2]); hold on plot(1,1,"og","markersize",10,"markerfacecolor","g") plot(xold(1),xold(2),"or","markersize",12,"markerfacecolor","r") plot(xnew(1),xnew(2),"ow","markersize",10,"markerfacecolor","w") hold off pause xold=xnew; end