%% Secante clear clc close all % f = @(x) cos(3*x) - x; % f = @(x) 3*exp(-x)-1; % f = @(x) abs(x); f = @(x) x+x.^3; a = 2; b = -1; n_secante = 0; x_secante = [a; b]; tol = 1e-6; vec = linspace(a,b); % para graficar plot(vec,f(vec),'-b','LineWidth',2) hold on plot(vec, f(a)+(vec-a)*(f(b)-f(a))./(b-a),'-r'); plot([a b], [f(a) f(b)], 'or') plot(vec, 0*vec, '--k') pause while abs(b-a) > tol && n_secante < 10 c = a; a = b; b = b + (b - c)/(f(c)/f(b)-1); vec = linspace(a,b); % para graficar plot(vec, f(a)+(vec-a)*(f(b)-f(a))./(b-a),'-r'); plot([a b], [f(a) f(b)], 'or') plot(vec, 0*vec, '--k') pause x_secante = [x_secante; b]; n_secante = n_secante + 1; end n_secante % f(x_secante(end)) %% para el ejemplo con f = @(x) 3*exp(-x) - 1 raiz = log(3); errs = abs(x_secante - raiz); phi = (1+sqrt(5))/2; for k = 1:length(errs)-1 errs(k+1)./(errs(k).^phi) end %% para el ejemplo con f = @(x) x + x.^3 raiz = 0; errs = abs(x_secante - raiz); phi = (1+sqrt(5))/2; for k = 1:length(errs)-1 errs(k+1)./(errs(k).^2) end