%% Regla falsa clear clc close all % f = @(x) cos(3*x) - x; % x^* \approx 0.3900 f = @(x) 3*exp(-x) - 1; % x^* = log(3) \approx 1.0986 a = 0; b = 2; n_falsa = 0; x_falsa = []; tol = 1e-4; 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 b-a > tol && n_falsa < 10 x = (f(b)*a-f(a)*b)/(f(b)-f(a)); if f(x)*f(b) > 0 b = x; else a = x; end 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 n_falsa = n_falsa + 1; x_falsa = [x_falsa; x]; end n_falsa %% para el ejemplo con f = @(x) 3*exp(-x) - 1 raiz = log(3); errs = x_falsa - raiz; for k = 1:length(errs)-1 errs(k+1)./errs(k) end