Doc
http://www.epsem.upc.edu/~fpq/numerico/resum/ceros-resum.pdf
http://portales.puj.edu.co/objetosdeaprendizaje/Online/OA10/capitulo5/5.htm
5.1. MÉTODO DE BISECCIÓN
Ver Animación...
Si f es una función continua sobre el intervalo [a,b] y si f(a) f(b)<0, entonces f debe tener un cero en (a,b). Dado que f(a)f(b)<0, la función cambia de signo en el intervalo [a,b] y por lo tanto tiene por lo menos un cero en el intervalo. (Véase la figura 5.1)
Esta es una consecuencia del teorema del valor intermedio para funciones continuas, que establece que si f es continua en [a,b] y si k es un número entre f(a) y f(b) , entonces existe por lo menos un c (a,b) tal que f(c)=k.
(para el caso en que f(a)f(b)<0 se escoge k=0, luego f(c)=0, c (a,b)).
(para el caso en que f(a)f(b)<0 se escoge k=0, luego f(c)=0, c (a,b)).
El método de bisección consiste en dividir el
intervalo en 2 subintervalos de igual magnitud, reteniendo el
subintervalo en donde f cambia de signo, para conservar al menos una
raíz o cero, y repetir el proceso varias veces.
Por ejemplo, suponga que f tiene un cero en el intervalo [a,b].
Primero se calcula el punto medio del intervalo ; después se averigua sí f(a)f(c)<0. Si lo es, entonces f tiene un cero en [a,c].
A continuación se renombra a c como b y se comienza una vez más con el nuevo intervalo [a,b], cuya longitud es igual a la mitad del intervalo original.
Si f(a)f(c)>0 , entonces f(c)f(b)<0 y en este caso se renombra a c como a.
En ambos casos se ha generado un nuevo intervalo que contiene un cero de f, y el proceso puede repetirse.
Ejemplo.
La función f(x) = xsenx – 1 tiene un cero en el intervalo [0,2], porque f(0) = -1 y f(2)=0.818595.
Si se denota con entonces c1 = 1. Ahora f(c1) = f(1) = -0.158529, luego la función tiene un cero en el intervalo [c1, b1] = [1,2] ; se renombra a2=c1 y b2=b1 .
El nuevo punto medio es y f(c2) = f(1.5) = 0.496242, el cero esta en el intervalo [a2, c2] y se renombra como [a3,b3].
En la tabla de abajo se muestran las primeras nueve iteraciones del método de bisección para f(x)= xsenx –1 con a=0 b=2.
n
|
Extremo izquierdo an
|
Extremo derecho bn
|
Punto medio cn
|
Valor de la función f(cn)
|
Error Relativo
|
1 | 0 | 2 | 1 | -0.158529 | |
2 | 1 | 2 | 1.5 | 0.496242 | 0.333333 |
3 | 1 | 1.5 | 1.25 | 0.186231 | 0.2 |
4 | 1 | 1.25 | 1.125 | 0.015051 | 0.111111 |
5 | 1 | 1.125 | 1.0625 | -0.071827 | 0.0588235 |
6 | 1.0625 | 1.125 | 1.09375 | -0.028362 | 0.0285714 |
7 | 1.09375 | 1.125 | 1.109375 | -0.006643 | 0.0140845 |
8 | 1.1093750 | 1.125 | 1.1171875 | 0.004208 | 0.0069930 |
9 | 1.1093750 | 1.1171875 | 1.11328125 | -0.001216 | 0.0035087 |
(c = 1.114157141 es el cero de f(x) = xsenx - 1)
Para detener el método de bisección y dar una aproximación del cero de una función se pueden usar varios criterios (llamados criterios de parada).
Uno de los criterios de parada consiste en examinar si |f(cn)| < , donde es una tolerancia previamente establecida (por ejemplo = 10-3). Otro criterio que puede utilizarse es examinar sí
También se puede usar como criterio de parada el error relativo entre dos aproximaciones del cero de f ,
En el ejemplo anterior si =0.005, el procedimiento se pararía en la octava iteración con el criterio |f(cn)|< , ya que:
|f(c8)| = |f(1.1171875)| = 0.004208 < = 0.005,
pero si se usa el criterio , el procedimiento se detendría en la novena iteración porque:
Uno de los criterios de parada consiste en examinar si |f(cn)| < , donde es una tolerancia previamente establecida (por ejemplo = 10-3). Otro criterio que puede utilizarse es examinar sí
También se puede usar como criterio de parada el error relativo entre dos aproximaciones del cero de f ,
En el ejemplo anterior si =0.005, el procedimiento se pararía en la octava iteración con el criterio |f(cn)|< , ya que:
|f(c8)| = |f(1.1171875)| = 0.004208 < = 0.005,
pero si se usa el criterio , el procedimiento se detendría en la novena iteración porque:
Cuando se generan aproximaciones por medio de una
computadora, se recomienda fijar un número máximo de iteraciones N que
debería realizar la máquina. Esto con el fin de contar con un resguardo
para evitar la posibilidad de que el proceso de cálculo caiga en un
ciclo infinito cuando la sucesión diverge (o cuando el programa no esta
codificado correctamente). Un algoritmo para el método de bisección es:
Teorema. (Error en el método de bisección).
Si f es continua en [a, b] y f(a) f(b) < 0, el método de bisección genera una sucesión que aproxima un cero c de f con la propiedad que: , n 1 (Prueba)
Si f es continua en [a, b] y f(a) f(b) < 0, el método de bisección genera una sucesión que aproxima un cero c de f con la propiedad que: , n 1 (Prueba)
Ejemplo.
Para determinar el número de iteraciones necesarias para aproximar el cero de f(x) = xsen x - 1 con una exactitud de 10-2en el intervalo [0,2], se debe hallar un número n tal que:
< 10-2, es decir , n > 7.643...
se necesitan aproximadamente unas 8 iteraciones.
Observe en la tabla de aproximaciones que el cero de f(x) = xsen x - 1 es c=1.114157141 y c8=1.1171875.
El error real es = 0.003030359 3x10-3.
El error real es menor que el error dado por el teorema; en la mayoría de casos la cota de error dada por el teorema es mayor que el número de iteraciones que realmente se necesitan. Para este ejemplo, = 0.004782141<10-2 = 0.01
El error real es = 0.003030359 3x10-3.
El error real es menor que el error dado por el teorema; en la mayoría de casos la cota de error dada por el teorema es mayor que el número de iteraciones que realmente se necesitan. Para este ejemplo, = 0.004782141<10-2 = 0.01
Notas:
-
El método de bisección tiene la desventaja que es lento en cuanto a convergencia (es decir que se necesita un n grande para que sea pequeño). Otros métodos requieren menos iteraciones para alcanzar la misma exactitud, pero entonces no siempre se conoce una cota para la precisión.
-
El método de bisección suele recomendarse para encontrar un valor aproximado del cero de una función, y luego este valor se refina por medio de métodos más eficaces. La razón es porque la mayoría de los otros métodos para encontrar ceros de funciones requieren un valor inicial cerca de un cero; al carecer de dicho valor, pueden fallar por completo.
-
Resolver una ecuación en una variable como por ejemplo: xex=1 es equivalente a resolver la ecuación xex-1=0 , o a encontrar el cero de la función f(x) = xex-1. Para aproximar el cero de f o la raíz de la ecuación se puede hacer la gráfica de f en una calculadora o usar matlab para determinar un intervalo donde f tenga un cero. También se pueden ensayar números a y b de tal manera que f(a)f(b)<0. Para el caso de f(x) = xex-1 por ejemplo f(0) = -1, f(1) = e-1 1.71828 entonces f tiene un cero en el intervalo [0,1].
-
Cuando hay raíces múltiples, el método de bisección quizá no sea válido, ya que la función podría no cambiar de signo en puntos situados a cualquier lado de sus raíces. Una gráfica es fundamental para aclarar la situación. En este caso sería posible hallar los ceros o raíces trabajando con la derivada f’(x), que es cero en una raíz múltiple.
No hay comentarios:
Publicar un comentario