Código: de Bisección
funcion = input('Escriba la f(x) entre parentesis:','s')
funcion = inline(funcion);
xi = input('Ingrese el valor de xi inferior: ');
xu = input('Ingrese el valor de xu superior: ');
cantidad = input('Ingrese el numero de iteraciones:');
i=1;
if funcion(xi)*funcion(xu)<0
fprintf("%s\t%s\t%s\t%s\t%s\t\%s\t\%s\n", 'i','xi','xu','xr','f(xi)','f(xr)', 'f(xi)*f(xr)')
while i < cantidad
xr = (xi + xu)/2;
fprintf("%d\t", i)
fprintf("%.4f\t", xi)
fprintf("%.4f\t", xu)
fprintf("%.4f\t", xr)
fprintf("%.4f\t", funcion(xi))
fprintf("%.4f\t", funcion(xr))
if funcion(xi)*funcion(xr)<0
fprintf("%.4f\t", funcion(xi)*funcion(xr))
xu = xr;
elseif funcion(xi)*funcion(xr)>0
fprintf("%.4f\t", funcion(xi)*funcion(xr))
xi = xr;
elseif funcion(xr)==0
fprintf("%s","raiz encontrada")
break
endif
fprintf("\n")
i++;
endwhile
fprintf(" la raiz aproximada es: %.4f \n", xr)
else
fprintf("%s","no se puede resolver por este metodo")
endif
Ventana de Comando
ં>> Bisecc
Escriba la f(x) entre parentesis:(e^x +2^-x +2*cos(x)-6)
funcion = (e^x +2^-x +2*cos(x)-6)
warning: inline is obsolete; use anonymous functions instead
Ingrese el valor de xi inferior: 0
Ingrese el valor de xu superior: 4
Ingrese el numero de iteraciones:20
i xi xu xr f(xi) f(xr) f(xi)*f(xr)
1 0.0000 4.0000 2.0000 -2.0000 0.8068 -1.6135
2 0.0000 2.0000 1.0000 -2.0000 -1.7011 3.4022
3 1.0000 2.0000 1.5000 -1.7011 -1.0233 1.7407
4 1.5000 2.0000 1.7500 -1.0233 -0.3046 0.3117
5 1.7500 2.0000 1.8750 -0.3046 0.1944 -0.0592
6 1.7500 1.8750 1.8125 -0.3046 -0.0683 0.0208
7 1.8125 1.8750 1.8438 -0.0683 0.0596 -0.0041
8 1.8125 1.8438 1.8281 -0.0683 -0.0052 0.0004
9 1.8281 1.8438 1.8359 -0.0052 0.0270 -0.0001
10 1.8281 1.8359 1.8320 -0.0052 0.0109 -0.0001
11 1.8281 1.8320 1.8301 -0.0052 0.0029 -0.0000
12 1.8281 1.8301 1.8291 -0.0052 -0.0012 0.0000
13 1.8291 1.8301 1.8296 -0.0012 0.0008 -0.0000
14 1.8291 1.8296 1.8293 -0.0012 -0.0002 0.0000
15 1.8293 1.8296 1.8295 -0.0002 0.0003 -0.0000
16 1.8293 1.8295 1.8294 -0.0002 0.0001 -0.0000
17 1.8293 1.8294 1.8294 -0.0002 -0.0000 0.0000
18 1.8294 1.8294 1.8294 -0.0000 0.0000 -0.0000
19 1.8294 1.8294 1.8294 -0.0000 0.0000 -0.0000
la raiz aproximada es: 1.8294