Está en la página 1de 5

Procedimiento Punto 9:

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
_________________________________________________

el resultado es: 15.9272


código usado:

e=0.01

%declaramos la funcion que queremos resolver


function Y=f(x);
a=42;
b=28;
c=4;
d=0.016;
Y=((c+x)/((a-2*x)^2 * (b-x)))-d;
end

%verificamos si los intervalos contienen raiz


while (s=1) %usamos un ciclo while para validar que se introdusca el
intervalo correcto
prompt = 'digite el intervalo a';%mensaje que vera el usuario
a = input(prompt) %le pedimos el intervalo a al usuario
prompt = 'digite el intervalo b';%mensaje que vera el usuario
b = input(prompt)%le pedimos el intervalo b al usuario
%usamos las condicines del teorema de bolzano para comprobar
if f(a)*f(b)<0
disp('f(a)*f(b)<0')
disp('el intervalo contiene raiz')
break
end
if f(a)*f(b)>0 || f(a)*f(b)==0
disp ('el intervalo no contiene raiz')
end
end
disp('r=(a+b)/2') % recordamos la definicion de r

disp('El numero de iteraciones a usar es: ')


n= (log((b-a)/e))/log(2)%esta ecuacion nos indica el numero de
itraciones a usar

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

txt=['el resultado es: ',num2str(r)];


disp('_________________________________________________') %se imprime
el resultado
disp(txt)

También podría gustarte