function x=newton(f,d,x0) % x=newton(f,d,x0) % newton method with graphics clf hold off f=fixs(f); d=fixs(d); c0=x0; c1=x0; for n=1:20, f0 = feval(f,x0); d0 = feval(d,x0); x1=x0 - f0/d0; f1= feval(f,x1); b1=(x1-x0)*1.3+x0; b0=(x0-x1)*1.3+x1; c0=min([c0,b0,b1]); c1=max([c1,b0,b1]); fplot(f,[c0,c1],'k'); hold on plot([x0;x1],[f0,0],'b'); plot([x0,x1],[f0,0]','r+'); plot([x1,x1],[0,f1],'b'); %text(x1,f1,num2str(n)); plot([c0,c1],[0,0],'-k') fprintf('step %g x=%g f=%g\n',n,x1,f1) x0=x1; pause end function g=fixs(f) if ischar(f), g=inline(f); else g=f; end