Está en la página 1de 2

23/05/21 12:15 PM C:\Users\jarje\OneDrive\Es...\Untitled.

m 1 of 2

% Método de la Bisección
% ingrese todos los datos del problema
clear
format long
clc
%funcion del lado derecho f(x)=0
funcion=inline('exp(x)-cos(x)-x.^2/2-1','x');

%Paso 1: Ingreso de datos del problema


a=input('Ingrese el extremo izquierdo del intervalo a: ');
b=input('Ingrese el extremo derecho del intervalo b: ');
tol=input('Ingrese el valor de la tolerancia: ');

%Paso 2: Cuerpo del programa


i=1;
a(i)=a;
b(i)=b;
if(funcion(a)*funcion(b)>0)
error('la funcion no tiene raices en el intervalo')
end
%Calculo del numero de iteraciones
m=log2((b-a)/tol);
if round(m)>m
n=round(m);
fprintf('\nEl numero de iteraciones necesarias son %d: \n',n);
else
n=round(m)+1;
fprintf('\nEl numero de iteraciones necesarias son %d: \n',n);
end
fa(i)=funcion(a(i));
fb(i)=funcion(b(i));
while(abs(b(i)-a(i))>tol)
if(fa(i)*fb(i)==0)

if(fa(i)==0)
y(i)=a(i);
break
else
y(i)=b(i);
break
end
else
y(i)=(a(i)+b(i))/2;
fp(i)=funcion(y(i));
if (fa(i)*fp(i)>0)
a(i+1)=y(i);
b(i+1)=b(i);
fa(i+1)=fp(i);
fb(i+1)=fp(i);
i=i+1;
else
23/05/21 12:15 PM C:\Users\jarje\OneDrive\Es...\Untitled.m 2 of 2

a(i+1)=a(i);
b(i+1)=y(i);
fa(i+1)=fa(i);
fb(i+1)=fp(i);
i=i+1;
end
end
end

%Paso 3 ,Elaboracion de tabla


fprintf(' n a b p f(a) f(b) f(b)\n')
N=length(y);
for i =1:N
fprintf('%4.1f %11.6f %11.6f %11.6f %11.6f %11.6f %11.6f\n',i,a(i),b(i),y(i),fa(i),fb(i),
fp(i))
end
fprintf('la aproximacion a la solucion de la ecuacion es\n:')
fprintf('%10.6f',y(N))

% Paso 4 Elaboracion de graficas


z=a:0.01:b;
plot(z,funcion(z),'r')
hold on
plot(y,fp,'+:b')

También podría gustarte