Método de Bisección
Encontrar las raíces de una ecuación es hallar un conjunto de valores para los cuales se cumple que esa ecuación sea igual a cero.
Cuando una función no permite un simple despeje algebraico una posible solución para hallar sus raíces es la aplicación de un método numérico.
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
Método Bisección.pptx
1. Método de La Bisección
SOLUCIÓN NUMÉRICA DE ECUACIONES
Dr. Carlos Alberto Morales Rergis
2. Contenidos de la Clase
Solución numérica de ecuaciones
Generalidades del método de la bisección
Interpretación geométrica del método
Ejemplo numérico
Breves conclusiones
Appendices
2
3. Bibliografía de Interés
• Chapra, Steven C., and Raymond P. Canale. Numerical methods for engineers. Boston: McGraw-Hill
Higher Education, 2010. Print.
• Burden, R. & Faires, J. (2011). Numerical analysis. Boston, MA: Brooks/Cole, Cengage Learning.
3
4. Solución numérica de ecuaciónes
Encontrar las raíces de una ecuación es hallar un
conjunto de valores para los cuales se cumple que
esa ecuación sea igual a cero.
Cuando una función no permite un simple despeje
algebraico una posible solución para hallar sus raíces
es la aplicación de un método numérico.
4
𝑓 𝑥 = 3𝑥 − 2
3𝑥 − 2 = 0
3𝑥 = 2
𝑥 =
2
3
𝑓 𝑥 = 3 cos 𝑥 −
2𝜋
3
𝑒3𝑥
− 𝑙𝑛 12𝑥2
+ 3
𝑓 𝑥 = 0
𝑓 𝑥 = 0
𝑥 =?
5. Generalidades del método de la bisección
El método de la bisección es un método numérico que sirve para encontrar las raíces de una ecuación
basado en el concepto de la media.
5
𝑥 𝑛 + 1 =
𝑥 𝑛 + 𝑥 𝑛 − 1
2
𝑥 𝑛
𝑥 𝑛 − 1 𝑥 𝑛 + 1
6. Generalidades del método de la bisección II
Se basa en el Teorema de Bolsano: Sea una función continua en un intervalo
cerrado y que toma valores de signo contrario en los extremos, entonces
existe al menos un valor tal que .
Es un método cerrado, o de intervalo, estos métodos aprovechan el hecho de que
una función cambia de signo en la vecindad de una raíz.
Consiste en reducir el intervalo dentro del cual se encuentra la raíz, sustituyendo los
límites inferior o superior dependiendo los resultados obtenidos al evaluar el valor
de la media.
6
17. Ejemplo numérico
Utilice el método de la bisección con un error εr = 0.5 %, para determinar el coeficiente de arrastre c
necesario para que un paracaidista de masa m = 68.1 kg tenga una velocidad de 40 m/s después de
una caída libre de t = 10 s. Nota: La aceleración de la gravedad es 9.8 m/s2.
17
𝑣 =
𝑔𝑚
𝑐
1 − 𝑒
−
𝑐
𝑚 𝑡
𝑓 𝑐 =
𝑔𝑚
𝑐
1 − 𝑒
−
𝑐
𝑚
𝑡
− 𝑣
𝑓 𝑐 =
667.38
𝑐
1 − 𝑒−0.146843𝑐 − 40
667.38
𝑐
1 − 𝑒−0.146843𝑐 − 40 = 0
18. Ejemplo numérico
Utilice el método de la bisección con un error εr = 0.5 %, para determinar el coeficiente de arrastre c
necesario para que un paracaidista de masa m = 68.1 kg tenga una velocidad de 40 m/s después de
una caída libre de t = 10 s. Nota: La aceleración de la gravedad es 9.8 m/s2.
18
c f(c)
12 6.06694996
12.5 4.87315055
13 3.72701387
13.5 2.62625495
14 1.56870973
14.5 0.55232821
15 -0.42483189
15.5 -1.36461116
16 -2.26875421
16.5 -3.13891498
17 -3.97666178
17.5 -4.78348204
18 -5.56078676 -6
-4
-2
0
2
4
6
12 13 14 15 16 17 18
Grafico de la Función
𝑓(𝑐)=667.38/𝑐〖(1−𝑒^(−0.146843𝑐) )−40〗
x=14.7802
19. Ejemplo numérico
Utilice el método de la bisección con un error εr = 0.5 %, para determinar el coeficiente de arrastre c
necesario para que un paracaidista de masa m = 68.1 kg tenga una velocidad de 40 m/s después de
una caída libre de t = 10 s. Nota: La aceleración de la gravedad es 9.8 m/s2.
19
-6
-4
-2
0
2
4
6
12 13 14 15 16 17 18
Grafico de la Función
𝑓(𝑐)=667.38/𝑐〖(1−𝑒^(−0.146843𝑐) )−40〗
c f(c)
12 6.06694996
12.5 4.87315055
13 3.72701387
13.5 2.62625495
14 1.56870973
14.5 0.55232821
15 -0.42483189
15.5 -1.36461116
16 -2.26875421
16.5 -3.13891498
17 -3.97666178
17.5 -4.78348204
18 -5.56078676
Intervalo
de búsqueda
𝑎, 𝑏 = 14,16
𝑓 14 𝑓 16 < 0
20. Ejemplo numérico
Utilice el método de la bisección con un error εr = 0.5 %, para determinar el coeficiente de arrastre c
necesario para que un paracaidista de masa m = 68.1 kg tenga una velocidad de 40 m/s después de
una caída libre de t = 10 s. Nota: La aceleración de la gravedad es 9.8 m/s2.
20
𝑥0 =
𝑥0,𝑎 + 𝑥0,𝑏
2
=
14 + 16
2
= 15
Rastrear el cambio de signo de la función
𝑓 𝑥0,𝑎 𝑓 𝑥0 < 0
𝑓 𝑥0 𝑓 𝑥0,𝑏 > 0
Arranque
𝑎, 𝑥0 = 14,15
𝑓 𝑥0,𝑎 = 𝑓 14 = 1.56870973
𝑓 𝑥0,𝑏 = 𝑓 16 =-2.26875421
𝑓 𝑥0 = 𝑓 15 =-0.42483189
21. Ejemplo numérico
Utilice el método de la bisección con un error εr = 0.5 %, para determinar el coeficiente de arrastre c
necesario para que un paracaidista de masa m = 68.1 kg tenga una velocidad de 40 m/s después de
una caída libre de t = 10 s. Nota: La aceleración de la gravedad es 9.8 m/s2.
21
Primera iteración cambio de signo
𝑓 𝑥0,𝑎 𝑓 𝑥1 > 0
𝑓 𝑥0 𝑓 𝑥1 < 0 𝑥1, 𝑥0 = 14.5,15
𝑥1 =
𝑥0,𝑎 + 𝑥0
2
=
14 + 15
2
= 14.5
𝑓 𝑥1 = 𝑓 14.5 = 0.55232821
𝑓 𝑥0 = 𝑓 15 =-0.42483189
𝑓 𝑥0,𝑎 = 𝑓 14 = 1.56870973
𝜀𝑎 =
𝑥1 − 𝑥0
𝑥1
% = 3.4482% 𝜀𝑎 < 𝜀
22. Ejemplo numérico
Utilice el método de la bisección con un error εr = 0.5 %, para determinar el coeficiente de arrastre c
necesario para que un paracaidista de masa m = 68.1 kg tenga una velocidad de 40 m/s después de
una caída libre de t = 10 s. Nota: La aceleración de la gravedad es 9.8 m/s2.
22
Segunda iteración cambio de signo
𝑓 𝑥0 𝑓 𝑥2 < 0
𝑓 𝑥2 𝑓 𝑥1 > 0
𝑥2, 𝑥0 = 14.75,15
𝑥2 =
𝑥0 + 𝑥1
2
=
14.5 + 15
2
= 14.75
𝑓 𝑥1 = 𝑓 14.5 = 0.55232821
𝑓 𝑥0 = 𝑓 15 =-0.42483189
𝑓 𝑥2 = 𝑓 14.75 = 0.05896283
𝜀𝑎 =
𝑥2 − 𝑥1
𝑥2
% = 1.6949% 𝜀𝑎 < 𝜀
23. Ejemplo numérico
Utilice el método de la bisección con un error εr = 0.5 %, para determinar el coeficiente de arrastre c
necesario para que un paracaidista de masa m = 68.1 kg tenga una velocidad de 40 m/s después de
una caída libre de t = 10 s. Nota: La aceleración de la gravedad es 9.8 m/s2.
23
Tercera iteración cambio de signo
𝑓 𝑥0 𝑓 𝑥3 > 0
𝑓 𝑥3 𝑓 𝑥2 < 0 𝑥2, 𝑥3 = 14.75,14.875
𝑥3 =
𝑥2 + 𝑥0
2
=
14.75 + 15
2
= 14.875
𝑓 𝑥3 = 𝑓 14.875 = -0.18411653
𝑓 𝑥0 = 𝑓 15 =-0.42483189
𝑓 𝑥2 = 𝑓 14.75 = 0.05896283 𝜀𝑎 =
𝑥3 − 𝑥2
𝑥3
% = 0.84033% 𝜀𝑎 < 𝜀
24. Ejemplo numérico
Utilice el método de la bisección con un error εr = 0.5 %, para determinar el coeficiente de arrastre c
necesario para que un paracaidista de masa m = 68.1 kg tenga una velocidad de 40 m/s después de
una caída libre de t = 10 s. Nota: La aceleración de la gravedad es 9.8 m/s2.
24
Cuarta iteración cambio de signo
𝑓 𝑥4 𝑓 𝑥3 > 0
𝑓 𝑥2 𝑓 𝑥4 < 0 𝑥2, 𝑥4 = 14.75,14.8125
𝑥4 =
𝑥2 + 𝑥3
2
=
14.75 + 14.875
2
= 14.8125
𝑓 𝑥3 = 𝑓 14.875 = -0.18411653
𝑓 𝑥2 = 𝑓 14.75 = 0.05896283
𝜀𝑎 =
𝑥4 − 𝑥3
𝑥4
% = 0.4219% 𝜀𝑎 < 𝜀
𝑓 𝑥4 = 𝑓 14.8125 = -0.06287413
𝑥𝑟 = 𝑥4 = 14.8125 Con un 0.4219% de error
25. Breves Conclusiones
Es un método de convergencia lenta.
Sus fundamentos matemáticos garantizan hallar la solución siempre y cuando se asegure que el
intervalo de arranque contenga a la solución.
25
26. Apendice I: Pseudocódigo del método de bisección
26
Método_de_bisección(a,b,n)
Begin
i:=0
While err ≤ ε do
ai:=a
bi:=b
xi:= (ai+ bi)/2
If f(xi) ≠ 0
then
If f(xi)f(bi) < 0 then
a:= xi EndIf
If f(xi)f(ai) < 0 then
b:= xi EndIf
err :=100(xi - xi-1)/ xi
Else err=0;
xi-1:=xi
EndWhile
x:=xi
End
27. Apendice II: Ejercicio Propuesto
27
• En cualquier lenguaje de
programación programar el
método de bisección para
cualquier tolerancia, el
ejercicio visto en clase.
clc
clear all
close all
a=14;
b=16;
err=100;
eps=0.5;
n=1;
while err >= eps
ai=a;
bi=b;
xi= (ai+bi)/2;
fxi=paracaidas(xi);
fai=paracaidas(ai);
fbi=paracaidas(bi);
if fxi~= 0
if fxi*fai<0
if n==1
a=ai;b=xi;xi_1=a;
else
a=ai;b=xi;
end
elseif fxi*fbi<0
if n==1
b=bi;a=xi;xi_1=b;
else
b=bi; a=xi;
end
end
err= abs(100*(xi-xi_1)/xi);
else
err=0;
end
n=n+1;
xi_1=xi;
end
x=xi;
fprintf('El resultado es')
x
fprintf('para un error de')
err
Ejemplo 1: Código en MATLAB/OCTAVE
function [ y ] = paracaidas( x )
y=(667.38/x)*((1-(exp(-0.146843*x))))-40;
end
28. Apendice II: Ejercicio Propuesto
28
• En cualquier lenguaje de
programación programar el
método de bisección para
cualquier tolerancia, el
ejercicio visto en clase.
Fin de la presentación
from math import exp
def paracaidas(x):
return (667.38/x)*((1-( exp(-0.146843*x) )))-40;
a=14;
b=16;
err=100;
eps=0.5;
n=1;
while (err >= eps):
ai=a;
bi=b;
xi= (ai+bi)/2;
fxi=paracaidas(xi);
fai=paracaidas(ai);
fbi=paracaidas(bi);
if (fxi != 0):
if (fxi*fai<0):
if (n==1):
a=ai;
b=xi;
xi_1=a;
else:
a=ai;
b=xi;
elif (fxi*fbi<0):
if (n==1):
b=bi;
a=xi;
xi_1=b;
else:
b=bi;
a=xi;
err= abs(100*(xi-xi_1)/xi);
else:
err=0;
n=n+1;
xi_1=xi;
x=xi;
print('La solución con una tolerancia de', eps , 'es ' ,x)
Ejemplo II: Código en Python