% MÉTODO DE BISECCIÓN
clear all, clc
format long
tol=0.00000000001; % Se permiten 10 cifras decimales de exactitud
exactitud=1; % Se asume un valor inicial de la exactitud para poder iniciar un while
n=1; % Contador
a0=-1.9; % Inicio del intervalo a evaluar
b0=-0.8; % Final del intervalo a evaluar
c0=(a0+b0)/2; % Mitad del primer intervalo
y=@(x) x^7-(2*x^6)-(4*x^5)+(10*x^4)-(x^3)-(8*x^2)+(4*x);%funcion
while exactitud>=tol
fa=y(a0); % La función evaluada en el inicio del intervalo a evaluar
fb=y(b0); % La función evaluada en el final del intervalo a evaluar
fc=y(c0); % La función evaluada en promedio del intervalo a evaluar
resultado(n,:)=[n a0 b0 c0 fc]; % Registro de resultados
if fa*fc>0 && fc*fb>0
disp('No hay cambio de signo')
return
elseif fa*fc<=0
a0=a0; % a sigue siendo a
b0=c0; % Se actualiza el valor de b
c=(a0+b0)/2;
exactitud=abs(c-c0);
c0=c;
n=n+1;
elseif fc*fb<=0
a0=c0; % Se actualiza el valor de a
b0=b0; % b sigue siendo b
c=(a0+b0)/2;
exactitud=abs(c-c0);
c0=c;
n=n+1;
end
end
disp(resultado)