Documentos de Académico
Documentos de Profesional
Documentos de Cultura
f(x)=((c+x)/((a-2*x)^2 * (b-x)))-d = 0
a=42
b=28
c=4
d=0.016
error = 0.01
intervalo a> 1
a= 1
intervalo b> 20
b = 20
f(a)*f(b)<0 por ende el intervalo contiene raíz
recordemos que r=(a+b)/2
Usando la formula n= (log((b-a)/e))/log(2) donde n es el número de iteraciones.
El número de iteraciones a usar es:
n = 10.892
_________________________________________________
_________________________________________________
iteracion = 1
r=(1+20)/2
r = 10.500
f(a)*f(r) es mayor a 0, entonces "a" toma el valor de r
a = 10.500
_________________________________________________
iteracion = 2
r=(10.5+20)/2
r = 15.250
f(a)*f(r) es mayor a 0, entonces "a" toma el valor de r
a = 15.250
_________________________________________________
iteracion = 3
r=(15.25+20)/2
r = 17.625
f(a)*f(r) es menor a 0, entonces "b" toma el valor de r
b = 17.625
_________________________________________________
iteracion = 4
r=(15.25+17.625)/2
r = 16.438
f(a)*f(r) es menor a 0, entonces "b" toma el valor de r
b = 16.438
_________________________________________________
iteracion = 5
r=(15.25+16.4375)/2
r = 15.844
f(a)*f(r) es mayor a 0, entonces "a" toma el valor de r
a = 15.844
_________________________________________________
iteracion = 6
r=(15.8438+16.4375)/2
r = 16.141
f(a)*f(r) es menor a 0, entonces "b" toma el valor de r
b = 16.141
_________________________________________________
iteracion = 7
r=(15.8438+16.1406)/2
r = 15.992
f(a)*f(r) es menor a 0, entonces "b" toma el valor de r
b = 15.992
_________________________________________________
iteracion = 8
r=(15.8438+15.9922)/2
r = 15.918
f(a)*f(r) es mayor a 0, entonces "a" toma el valor de r
a = 15.918
_________________________________________________
iteracion = 9
r=(15.918+15.9922)/2
r = 15.955
f(a)*f(r) es menor a 0, entonces "b" toma el valor de r
b = 15.955
_________________________________________________
iteracion = 10
r=(15.918+15.9551)/2
r = 15.937
f(a)*f(r) es menor a 0, entonces "b" toma el valor de r
b = 15.937
_________________________________________________
iteracion = 11
r=(15.918+15.9365)/2
r = 15.927
f(a)*f(r) es menor a 0, entonces "b" toma el valor de r
b = 15.927
_________________________________________________
e=0.01
disp(' ')
disp('_________________________________________________')
s=1;
iteracion=1;
temp=a;
while (s=1) %se declara un ciclo "infinito" ya qu siempre "s" sera 1
disp('_________________________________________________')
iteracion
txt=['r=(',num2str(a),'+',num2str(b),')/',num2str(2)]; %calculqmos
r para la iteracion n
disp(txt)
r=(a+b)/2
%aplicamos las condiciones del metodo de biseccion
if f(a)*f(r)>0
disp('f(a)*f(r) es mayor a 0, entonces "a" toma el valor de
r')
a=r
end
if f(a)*f(r)<0
disp('f(a)*f(r) es menor a 0, entonces "b" toma el valor de
r')
b=r
end
if sqrt((temp-r)*(temp-r))<e%corroboramos que el error sea menor
que el deseado
break %si se cumple la condicion de error se rompe el ciclo
end
temp=r;
iteracion=iteracion+1;
end