Método de bisección para programación matemática
El método de bisección es muy conocido en al ámbito numérico, generalmente se emplea para encontrar los puntos donde se anula la función, gráficamente esto puede verse como los puntos donde la gráfica de la función atraviesa el eje de las abscisas, este método también puede aplicarse en la búsqueda de valores mínimos o máximos de una función diferenciable, pero en lugar de encontrar los puntos donde se anula la función, se buscan los puntos donde se anule la derivada de dicha función, por ello la importancia de que sea diferenciable.
El método consiste en subdividir el intervalo de búsqueda hasta encontrar una solución aceptable, haciendo uso de un criterio de parada generalmente definido como el absoluto de la diferencia de los extremos de dicho intervalo.
Para aplicar dicho método es necesario verificar que las imágenes de la derivada de los puntos extremos tengan signos opuestos, porque de esta forma comprobamos que hay un cambio de concavidad en la función de estudio y así garantizamos la existencia de por lo menos un mínimo o máximo.
Si no se presenta este cambio de signo en las imágenes de los extremos, el mínimo (máximo) de función debe encontrarse en uno de los extremos del intervalo de estudio.
El procedimiento es el siguiente una vez que verificamos que hay un cambio de signo en la derivada de la función evaluada en los extremos del intervalo de estudio, calculamos el punto medio de dicho intervalo, y lo evaluamos en la derivada de la función.
Llamemos al intervalo de estudio [a,b] y al punto medio c=a+b/2, evaluamos ¨c¨ en la derivada de la función, denotemos por f1a,f1b,f1c la derivada evaluada en los puntos a ,b y c.
Si f1af1c>0
a=c Esto significa que eliminamos todos los puntos desde a hasta c, con esto reducimos el rango de estudio, lo que implica que si existe el mínimo (máximo) se encuentra en [c,b]
si f1af1c<0
b=c (el mínimo se encuentra en [a,c])
si f1a*f1c=0 el mínimo es c.
Para ilustrar el método presento su programación en python
Para esa función que se estudió el grafico y los puntos por iteración del método puede verse en la siguiente imagen generada con anaconda/python/spider4
Los resultados se presentan aquí:
1 -3.000 5.000 1.000 -13.000 35.000 -5.000 -2.000 6.000
2 -3.000 1.000 -1.000 -13.000 -5.000 -13.000 -2.000 2.000
3 -3.000 -1.000 -2.000 -13.000 -13.000 -14.000 -2.000 0.000
4 -3.000 -1.000 -2.000 -13.000 -13.000 -14.000 -2.000 0.000
minimo: -2.0
Aunque al principio parece poco interesante este método para aproximar el mínimo de la función, puede usarse para encontrar el valor mínimo de una función costo no lineal.
contenido 100% original con el apoyo del
Proyecto de Curación Comunitaria de Steem @steemcurator04
Buen trabajo, hagamos de Steem algo grande.
Click aquí para entrar a la COMUNIDAD LATINA
Agradecida por el apoyo