“INSTITUTO POLITECNICO NACIONAL”
ESCUELA SUPERIOR DE INGENIERIA
MECANICA Y ELECTRICA
INGENIERIA EN CONTROL Y AUTOMATIZACION
ANALISIS NUMERICO
“METODO DE BISECCION”
Alumno: Hernández Barragán Jesús Maximiliano
Profesor: JIMENEZ GUZMAN MIGUEL
Grupo: 3AV1
Método de bisección:
El método de bisección, conocido también como de corte binario, de partición
de intervalos o de Bolzano, es un tipo de búsqueda incremental en el que el
intervalo se divide siempre a la mitad. Si la función cambia de signo sobre un
intervalo, se evalúa el valor de la función en el punto medio. La posición de la
raíz se determina situándola en el punto medio del subintervalo, dentro del cual
ocurre un cambio de signo. El proceso se repite hasta obtener una mejor
aproximación.
Como ya vimos este método se aproxima a la raíz o solución de una ecuación
o una función no lineal. Teniendo el intervalo sobre el cual se trabajará, el
método consiste básicamente en:
1. Verificar si existe una raíz.
2. Calcular el punto medio.
3. Evaluar la función en los puntos medios.
4. Modificar el intervalo según la evaluación de los puntos medios.
5. Calcular el error absoluto hasta que éste sea menor que 1%.
MÉTODO DE BISECCIÓN
Como primer paso es importante tener un intervalo sobre el cual se empezará a
trabajar. Supongamos que tenemos el intervalo [ x a , x b ] y una función f ( x ), la
cual lógicamente tiene que ser no lineal. Se deben de evaluar los intervalos en
la función, quedando
f ( x a ) Función evaluado en el punto x a
f ( x b ) Función evaluada en el punto x b
Si existe un cambio de signo en la evaluación del intervalo, es decir,
f ( x a )∗f ( x b ) < 0 entonces si existe una raíz y se procede a realizar el siguiente
paso, que es calcular el punto medio de dicho intervalo mediante la siguiente
fórmula
xa + xb
x r=
2
Se debe de evaluar la función en el punto medio ( f ( x r )) y mediante esta
evaluación, sabremos cual será el nuevo intervalo. Los posibles casos en los
que se puede llegar a caer, son los siguientes:
Si la evaluación de x r con respecto a x a tiene un cambio de signo, es
decir, f ( x a )∗f ( x r ) <0, entonces el intervalo nuevo será [ x a , x r ]. Se debe
de tener en cuenta que x r será el nuevo punto x b.
Si la evaluación de x r con respecto a x a no tiene cambio de signo, es
decir, f ( x a )∗f ( x r ) >0, entonces el nuevo intervalo será [ x r , x b ], donde
x r será el nuevo punto x a.
Una vez definido cual será el nuevo intervalo, se procede a calcular
nuevamente el punto medio
xa + xb
xr =
2
2
Recordemos que cuando se trabaja con métodos que requieren de iteraciones,
es necesario calcular el error absoluto, el cual nos dirá que tan lejos o cerca
estamos de la posible raíz. Siempre que se trabaja a mano con este tipo de
métodos, el error absoluto debe de cumplir la condición de que sea menor a 1 (
Ea <1 ) . El error absoluto se calcula de la siguiente manera
x nuevo−x antiguo
|E a|= | x nuevo |
∗100 %
Entonces, al haber ya calculado dos puntos medios, se puede calcular el primer
error absoluto, el cual quedaría
x r −x r
|E a|= | 2
xr 2
∗100 %
|
Si el resultado del error fuera menor a 1, entonces se concluye que la raíz o
solución más próxima a cumplir con la ecuación o función, será el último valor
de x r. En caso contrario, se debe de repetir el procedimiento hasta el error sea
menor a 1 y con esto se cumpla el objetivo.
Aplicaciones:
Encontramos así aplicaciones de los métodos numéricos en los ámbitos más
diversos desde sectores tecnológicos tan clásicos como la ingeniería
estructural, o la aerodinámica de aviones, hasta aplicaciones más sofisticadas
como la ingeniería de alimentos, ingeniería médica, ingeniería mecánica,
diseño de fármacos, biología, etc. En la actualidad, gracias a la gran evolución
que han tenido los métodos numéricos y su implementación en potentes
computadoras, es posible, por ejemplo, hacer el análisis aerodinámico
estructural de un avión, resolviendo en cada caso sistemas algebraicos de
ecuaciones con varios cientos de miles (a veces millones) de incógnitas.
Método de Bisección:
f ( x )=x 3 +e x −3
Intervalo inicial:
[ 0.5 , 1 ]
Comprobar si existe una raíz:
f ( 0.5 ) ∙ f ( 1 )=(−0.226 ) ( 0.718 )=−0.8806< 0 Hay una Raiz
0.5+1
x r 1= =0.75
2
f ( 0.75 ) ∙ f ( 1 )=(−0.461 )( 0.718 ) =−0.331<0 Hay una Raiz
0.75+1
x r 2= =0.875
2
f ( 0.875 ) ∙ f ( 1 )=( 0.0687 )( 0.718 )=0.0493>0 No hay una Raiz
f ( 0.75 ) ∙ f ( 0.875 ) =(−0.461 )( 0.0687 )=−0.0317 <0 Hay una Raiz
0.75+0.875
x r 3= =0.8125
2
f ( 0.8125 ) ∙ f ( 0.875 ) =(−0.210 ) ( 0.0687 )=−0.014<0 Hay una Raiz
0.8125+ 0.875
xr 4 = =0.8437
2
f ( 0.8437 ) ∙ f ( 0.875 )=(−0.074 )( 0.0687 )=−5.10 x 10−3< 0 Hay una Raiz
0.8437+0.875
x r 5= =0.8593
2
|Ea|= |0.8593−0.8437
0.8593 |∗100 %=1.81 %
f ( 0.8593 ) ∙ f ( 0.875 ) =(−3.98 x 10−3 ) ( 0.0687 )=−2.74 x 10−4 < 0 Hay una Raiz
0.8593+0.875
x r 6= =0.8671
2
|Ea|= |0.8671−0.8593
0.8671 |∗100 %=0.905 %
LA SOLUCION ES: X =0.8671
Código:
%Programa para calculo de raíces de ecuaciones no lineales.
%Método de Bisección.
clear all
clc
fprintf('Calculo de la raiz de una ecuacion no lineal por el metodo de
Biseccion\n\n');
Y=input('Dame la funcion: ','s');
Xa=input('Dame el intervalo inferior: ');
Xb=input('Dame el intervalo superior: ');
error=input('Dame el porciento de error: ');
x=Xa;
Ya=eval(Y);
x=Xb;
Yb=eval(Y);
if(Ya*Yb)>0
fprintf('No existe una raiz en el intervalo [Xa,Xb]');
fprintf('Ejecute de nuevo el programa, por favor');
%break
end
fprintf('\n\n')
disp(' N Xa Xb Xr
F(Xa) F(Xb) F(Xr) Error ');
disp('|-------|----------------|-----------------|------------------|-
--------------|--------------------|-------------|-----------');
Xant=0;
N=0;
while N<50
Xr=(Xa+Xb)/2;
Xact=Xr;
x=Xr;
Yr=eval(Y);
Ea=abs((Xact-Xant)/Xact)*100;
ds_i=sprintf('%4d %17.8f %17.8f %17.8f %17.8f %17.8f %17.8f
%10.5f',N,Xa,Xb,Xr,Ya,Yb,Yr,Ea);
disp(ds_i);
if Ea<error
fprintf('\n\nLa raiz exacta es: %f',Xr);
fprintf('\nNumero de iteraciones: %d\n',N);
break
end
if(Ya*Yr)<0
Xb=Xr;
elseif(Ya*Yr)==0
fprintf('\n\nLa raiz exacta es: %17.9f',Xr);
fprintf('\nNumero de iteraciones: %d',N);
break
else
Xa=Xr;
end
Xant=Xr;
N=N+1;
end
EJECUCIONES:
CONCLUSION:
Este proceso es considerado un método cerrado por que dentro del
intervalo de operación se encuentra la raíz que converge en la ecuación,
para hallar dicha raíz con cálculos manuales se encuentra con que es
necesario tener un intervalo para comenzar a posicionarnos en lo que
será la solución, de ahí aplicamos una simple operación, el problema del
método seria en la cantidad de iteraciones que sean necesarias para que
la raíz se aproxime a nuestro margen de error establecido, lo cual implica
más operaciones, además es de lenta convergencia pero una de sus
ventajas es que este método es general para cualquier tipo de ecuación y
siempre se llega a una solución.
En cuestión del código de programación suele ser sencillo por no usar
más que una operación para aproximar la solución. Pero de igual forma
se hace extenso en el número de iteraciones realizadas.