function [x_new,k] = secant(f,x0,x1) % Computes iterates of the secant method for solving f(x) = 0 % returns iterate where |f(x_k)| < 1e-10 or k=100 % Initialize values maxsteps = 100; k = 0; x_old = x0; x_new = x1; f_old = f(x0); f_new = f(x1); while ((k < maxsteps) && abs(f_new) > 1e-10) % compute new value and update stored values x_next = x_new - f_new*(x_new-x_old)/(f_new-f_old); f_old = f_new; f_new = f(x_next); x_old = x_new; x_new = x_next; k = k+1; end end