Sei sulla pagina 1di 10

MTODO DE LA BISECCIN

Ejercicio
x

1
e 3 sen ( x )=0
2
En el intervalo [-0.5, 1], con tolerancia 1%

ANLISIS
Utilizando el mtodo de la biseccin:
a= -0.5

b= 1

1
f (a)=f (0.5)= e
2

0.5
3

sen (0.5 )

f(a)= 0.1329438
1

1
f (b)=f (1)= e 3 sen ( 1 )
2

f(b)= -1.7370834
f(a)* f(b) < 0

Existe raz en este intervalo

f(x)

c=

Primera
iteracin:
(a+b)/2

c = (-0.5 + 1)/2
c = 0.25

Tabla

a. Signo de funciones

f(c) = -0.8343080
a= -0.5 b= 0.25

r=c
Segunda
iteracin:
c = (a+b)/2
c = (-0.5 +0.25)/2
c = -0.125

f(x)

Tabla b.

Signo de funciones

f(c) = -0.3345147
a= -0.5
Error =

Error =

|crc |
|0.1250.25
0.125 |

b= -0.125

*100

*100
Error = 300% > tol.
r=c

Tercera iteracin:
c=
x
a
c = (f(x)

(a+b)/2
0.5 +
-0.125)/2

c = -0.3125

Tabla c.

Signo de funciones

f(c) = -0.09363659
a = -0.5

Error =

Error =

|crc |
|0.31250.125
|
0.3125

b = -0.3125

*100

*100

Error = 60% > tol.

r=c

Cuarta iteracin:
c = (a+b)/2
c = (-0.5 +

f(x)

-0.3125)/2
c = -0.40625
Tabla 4. Signo de funciones

f(c) = 0.02181539
a = -0.40625 b= -0.3125
Error =

Error =

|crc |
|0.406250.3125
|
0.40625
*100

*100

Error = 23.07692308% > tol.


r=c

Quinta iteracin:
c = (a+b)/2
c = (-0.40625 +
-0.3125)/2
c = -0.359375

f(x)

Tabla 5. Signo de funciones

f(c) = -0.03541600

a= -0.40625 b=-0.359375

Error =

Error =

|crc |
|0.3593750.40625
|
0.359375
*100

*100

Error = 13.04347826%> tol.


r=c

Sexta iteracin:
c = (a+b)/2
c = (-0.40625 +
-0.359375)/2
c = -0.3828125

f(x)

Tabla

5. Signo de funciones

f(c) = -0.006670855
a= -0.40625 b=-0.3828125
Error =

Error =

|crc |
|0.38281250.359375
|
0.3828125
*100

*100

Error = 6.12244898%> tol.


r=c

Sptima iteracin:
c = (a+b)/2
c = (-0.40625 +
-0.3828125)/2
c = -0.39453125

f(x)

Tabla 5. Signo de funciones

f(c) = 0.007605349

a= -0.39453125 b=-0.3828125
Error =

|crc |

*100

Error =

|0.394531250.3828125
|
0.39453125

*100

Error = 2.97029703% tol.


r=c

Octava iteracin:
c = (a+b)/2
x
c = (f(x)

0.39453125 +

-0.3828125)/2
-0.388671875

c=
f(c) = 0.000475428

Tabla 5.

Signo de funciones

a= -0.388671875 b=-0.3828125
Error =

Error =

|crc |
|0.3886718750.3828125
|
0.388671875
*100

*100

Error = 1.507537688% > tol.


r=c

Novena iteracin:
c = (a+b)/2
x
c = (f(x)

0.388671875 +

-0.3828125)/2
-0.3857421875

c=
Tabla 5. Signo de funciones

f(c) = -0.003095679

a= -0.388671875 b=-0.3857421875
Error =

Error =

|crc |
|0.38574218750.388671875
|
0.3857421875
*100

Error = 0.7594936709% < tol.


r=c

*100

CUADRO RESUMEN:

Ite

Error

.
1
2
3
4

-0.5
-0.5
-0.5
-0.40625

1
0.25
-0.125
-0.3125

0.25
-0.125
-0.3125
-0.40625

0.25
-0.125
-0.3125
-0.40625

300%
60%
23.07692308

-0.40625

-0.3125

-0.359375

-0.359375

%
13.04347826

6
7

-0.40625
-0.40625

-0.359375
-

-0.3828125
-

-0.3828125
-0.39453125

%
6.12244898%
2.97029703%

0.382812

0.39453125

5
-

-0.388671875

1.507537688

0.39453125

0.382812

0.38867187

5
-

5
-

0.38867187

0.382812

0.38574218

75

%
-0.3857421875

0.7594936709
%

Tabla 6. Cuadro resumen de la funcin

Raz = -0.3857421875
0.7594936709
ALGORITMO

Anlisis:

a. Entradas:
Los extremos del intervalo: a, b.
La funcin: f
Condicin de parar o finalizacin.
Por tolerancia
Por nmero mximo de iteraciones: n

Error =

b. Salidas:

La aproximacin a la raz: r
El nmero de iteracin: i
El intervalo actualizado: a, b.
El error cometido: e (%)
La raz y el error de la ltima iteracin

c. Procesos:

Determinar si

raz

f(a)*f(b) > 0

f(a)*f(b) = 0

utilizar otro mtodo.

raz

Dividir el intervalo [a, b] en 2 subintervalos.


c = (a+b)/2
[a, c], [c, b]
Actualizar el intervalo [a, b] con el subintervalo que contiene la raz.
f(a)*f(c) < 0, hacer b

f(c)*f(b) > 0, hacer a

Obtener la aproximacin de la raz

Calcular el error obtenido

Error =

raz en el intervalo [a, b]

f(a)*f(b) < 0

|crc |

*100,

si i>1

Comprobar la condicin de parada


e<tol.
i>=n

b.1)

PSEUDOCODIGO:
1) Entrar f, a, b, c, tol
2) Mientras b-a>=tol.

3) Hacer
4)
5)
6)
7)

c=

a+b
2

Si f(c)= 0 entonces c es raz. Fin


Si sgn f(a) ~= sgn f(c). entonces b=c.
Si sgn f(a)= sgn f(c). entonces a=c.
Ir a 2

a) CDIGO EN MATLAB

f=input('Ingrese la funcin :' , 's');


f=inline(f);
a=input('Ingrese el extremo inferior del intervalo:');
b=input('Ingrese el extremo superior del intervalo: ');
tol=input('Ingrese la tolerancia: ');
n=input('Ingrese el nmero mximo de iteraciones:');
if (f(a)*f(b)<0)
i=1 ;
e=1000;
fprintf('Iter.\t\t inf.\t\t\t\t Sup.\t\t\t\t Raiz\t\t\t\t Error\n');
while (e>=tol && i<=n)
c=(a+b)/2;
if (i==1)
fprintf('%2d\t\t%12.10f\t\t\t%12.10f\t\t\t
%12.10f\t\t\t"------"\n',i,a,b,c);
end
if (f(a)*f(c)<0)
b=c;
end

if (f(b)*f(c)<0)
a=c;
end
r=c;
c=(a+b)/2;
e=abs(((c-r)/c)*100);
i=i+1;
fprintf('%2d\t\t%12.10f\t\t\t%12.10f\t\t\t%12.10f\t\t\t
%12.10f\n',i,a,b,c,e );
end
fprintf('Raiz=%12.10f\n' , c );
fprintf('ERROR=%12.10f\n',e );
else
fprintf('No existe raiz en este intervalo o debe elegir otro metodo' );
end

CUADRO EN MATLAB

Potrebbero piacerti anche