método de bisección es un algoritmo de búsqueda de raíces que trabaja dividiendo el intervalo a la mitad y seleccionando el subintervalo que tiene la raíz.
debe tener un cero en (a,b). Dado que f(a)f(b)<0 cambia="" class="Estilo1" de="" el="" en="" funci="" intervalo="" la="" n="" signo="" span="" style="font-family: "Times New Roman"; font-size: 14px; font-style: italic;">a0>,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 class="Estilo1" escoge="" nbsp="" se="" span="" style="font-family: "Times New Roman"; font-size: 14px; font-style: italic;">k0>
=0, luego f(c)=0, c (a,b)).(para el caso en que f(a)f(b)<0 class="Estilo1" escoge="" nbsp="" se="" span="" style="font-family: "Times New Roman"; font-size: 14px; font-style: italic;">k0>
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 .="" a="" c="" cero="" en="" entonces="" es="" f="" lo="" p="" si="" tiene="" un="">
como a.
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 a="" caso="" class="Estilo1" en="" este="" nbsp="" renombra="" se="" strong="" style="font-family: "Times New Roman"; font-size: 14px; font-style: italic;" y="">c0>
0>
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 sup="">-210>
= 0.01El 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 sup="">-210>
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 .="" caso="" class="Estilo1" de="" el="" nbsp="" para="" span="" style="font-family: "Times New Roman"; font-size: 14px; font-style: italic;">f0>
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.
El método de Graeffe se utiliza cuando es necesario calcular todas las raíces de una ecuación, sean reales o imaginarias (también es llamado método del cuadrado de las raíces). Es el único método práctico para calcular raíces imaginarias.
Las primeras ideas de este método se encuentran en los escritos de Waring en el siglo XVIII. Más tarde fue propuesto independientemente por Dandelin (1826) y Lobatchevsky (1834) 1 un método para el cálculo de raíces basado en la misma idea, pero solo Eduard Heinrich Graeffe (1837) lo desarrollo en todos sus detalles.
Análisis
Sea
La ecuación propuesta, con raíces .La primera parte del método, es un algoritmo para la formación de la ecuación con raíces .
Sea
Multiplicando estas ecuaciones, miembro a miembro, tenemos:
Reemplazando por , la ecuación pedida, de raíces , se puede escribir de la siguiente manera.
Entonces:
Y luego:
Si en coeficiente de
Escribiendo la ecuación original
El coeficiente de esta en la ecuación tranformada, cuyas raíces son y esta expresado por la suma que se continua mientras los índices no se hacen negativos o mayores a .
Raíces de un polinomio. Método de Graeffe
En esta página, se describe un procedimiento matemático ingenioso para hallar las raíces de un polinomio con gran exactitud. El método de Graeffe se presta especialmente a ser programado en el ordenador, constituyendo de por sí un ejercicio relevante, en lo que concierne a los aspectos generales del lenguaje Java: sentencias condicionales e iterativas, arrays unidimensionales y bidimensionales, descomposición de un problema en tareas que se codifican en forma de funciones, y finalmente, la encapsulación de los datos y las funciones para formar una clase.
En muchos campos de las matemáticas es necesario hallar las raíces de un polinomio, por ejemplo, para calcular la integral de una función racional, para calcular las raíces del polinomio característico que son los valores propios de una matriz, etc. Solamente existen fórmulas si el polinomio tiene un grado igual o inferior a cuatro. Excepto para los polinomios de primer y segundo grado, las fórmulas son complicadas, por lo que se emplean procesos de aproximación numérica. Entre los numerosos métodos que existen, el más conocido es quizá el método de Newton. Sin embargo, describiremos un método, realmente ingenioso, que nos proporciona gran exactitud en las raíces de un polinomio.
Sea el polinomio
Hacemos el polinomio más simple dividiendo todos los coeficientes por el primer término de modo que a0 es siempre 1. Supongamos que sus raíces reales y distintas son
-r1, -r2, -r3, ...-rn
Cuyas raíces serán
Hemos construido así una nueva ecuación cuyas raíces son numéricamente iguales a los cuadrados de las raíces de la ecuación original. Repitiendo el proceso, se pueden obtener ecuaciones cuyas raíces sean numéricamente iguales a las potencias cuarta, octava, decimosexta, etc. de las raíces de la ecuación original. El efecto de este proceso de elevar al cuadrado es el de producir ecuaciones cuyas raíces están cada vez más separadas. Por ejemplo, si dos raíces de la ecuación original están entre sí como 5 : 4 sus potencias 128 están en la razón 5128 : 4128, o sea, 2.54 1012: 1, lo que es muy deseable ya que las ecuaciones cuyas raíces están muy separadas se pueden resolver rápidamente con exactitud considerable. Supóngase ahora, que reiterando el proceso de elevación al cuadrado se llega a un polinomio
donde m es el número de veces que se repite el proceso de elevación al cuadrado. Así, si se repite siete veces el proceso de elevación al cuadrado, 2m =27 =128 sería el exponente al que estarían elevados las sucesivas potencias xn, xn-1, xn-2, ... del polinomio. Sus raíces serán las del polinomio original elevadas al exponente 2m.
Por las relaciones conocidas entre raíces y coeficientes del polinomio, se tiene que
En la suposición de que
y de que 2m es grande por ejemplo 128 ó 256, se cumplirá que
donde el símbolo >>> indica mucho mayor que. Las relaciones entre coeficientes y raíces quedarán simplificadas con gran aproximación a las expresiones.
Así, el módulo de r1 se puede hallar extrayendo la raíz 2m-ésima de α1 . De la segunda ecuación se obtiene r2, y así sucesivamente. La fórmula para obtener el módulo de la raíz ri es
En la práctica, hallamos el logaritmo de ri, y luego, calculamos el antilogaritmo del resultado obtenido, de este modo se obtiene el valor absoluto de la raíz ri.
Para determinar el signo, se halla el valor del polinomio original para los valores ri, y -ri, uno de los dos hará que dicho valor sea próximo a cero y por tanto, será la raíz buscada.
No hay comentarios:
Publicar un comentario