El método de Bisección de Bolzano

El método de Bisección de Bolzano

 

Para este método debemos considerar una función continua dentro de un intervalo [a,b] tal que f(a) tenga diferente signo f(a)*f(b) <0.

 

El proceso de decisión para encontrar la raíz consiste en dividir el intervalo [a, b] a la mitad c = (a+b)/2 y luego analizar las tres posibilidades que se pueden dar.

 

1.- Si f(a) y f(c) tienen signos opuestos, entonces hay un cero entre [a,c].

2.- Si f(c) y f(b) tienen signos opuestos, entonces, hay un cero en [a,b].

3.- Si f(c) es igual a cero, entonces c es un cero.

 

La implementación en Java es:

 

   double biseccion()

   {

     int i;

     double inicio =0, fin = 1, mitad;

    

     mitad = (fin+inicio)/2.0;

     while(fin - inicio > 0.0001)

     {

       System.out.println(mitad);

       pausa(300);

       mitad = (fin+inicio)/2.0;

       if(f(mitad) == 0) return mitad;

       if(f(inicio)*f(mitad) < 0 )

         fin = mitad;

       else

         inicio = mitad;

     }

     return mitad;

   }

 

Ejemplo

 

Calcular los ceros de la función x-cos(x) utilizando el algoritmo de bisección en el intervalo [0,1].

 

iter

a

c

b

f(a)

f( c)

f(b)

0

0.0000

0.5000

1.0000

-1.0000

-0.3776

-1.0000

1

0.5000

0.7500

1.0000

-0.3776

0.0183

-0.3776

2

0.5000

0.6250

0.7500

-0.3776

-0.1860

-0.3776

3

0.6250

0.6875

0.7500

-0.1860

-0.0853

-0.1860

4

0.6875

0.7188

0.7500

-0.0853

-0.0339

-0.0853

5

0.7188

0.7344

0.7500

-0.0339

-0.0079

-0.0339

6

0.7344

0.7422

0.7500

-0.0079

0.0052

-0.0079

7

0.7344

0.7383

0.7422

-0.0079

-0.0013

-0.0079

8

0.7383

0.7402

0.7422

-0.0013

0.0019

-0.0013

9

0.7383

0.7393

0.7402

-0.0013

0.0003

-0.0013

10

0.7383

0.7388

0.7393

-0.0013

-0.0005

-0.0013

11

0.7388

0.7390

0.7393

-0.0005

-0.0001

-0.0005

12

0.7390

0.7391

0.7393

-0.0001

0.0001

-0.0001

13

0.7390

0.7391

0.7391

-0.0001

0.0000

-0.0001

 

Su ejecución puede verse [aquí].

 

Regresar.