Documentos de Académico
Documentos de Profesional
Documentos de Cultura
< i>0
i i i i i
i
i i i
i
d
0 d 0 a b c r | c r |
2
para cualquier valor positivo
Suponer que se desea que el ltimo valor calculado c
i
tenga precisin E = 0.001, entonces si el
algoritmo termina cuando b
i
a
i
< E, se cumplir que |c
i
r| < E y c
i
ser una aproximacin
para r con un error menor que 0.0001
Ejemplo. Calcule una raz real de f(x) = x e
x
- = 0 en el intervalo [0, 2] con precisin 0.01
La funcin f es continua y adems f(0)<0, f(2)>0, por lo tanto la ecuacin f(x)=0 debe contener
alguna raz real en el intervalo [0, 2]
Clculo manual para obtener la raz con el mtodo de la Biseccin
iteracin a b c sign(f(a)) sign(f(c))
inicio 0 2 1 - -
1 1 2 1.5 - +
2 1 1.5 1.25 - +
3 1 1.25 1.125 - +
4 1 1.125 1.0625 - -
5 1.0625 1.125 1.0938 - +
6 1.0625 1.0938 1.0781 - +
7 1.0625 1.0781 1.0703 - -
8 1.0703 1.0781 1.0742
En la ltima iteracin se observa que el intervalo que contiene a la raz se ha reducido a
[1.0703, 1.0781], por lo tanto el ltimo valor calculado de c = 1.0742 debe estar cerca de r con
una distancia no mayor a 0.01
24
3.1.2 Eficiencia del mtodo de l a biseccin
Suponer el caso ms desfavorable, en el que r est muy cerca de uno de los extremos del
intervalo [a, b]:
Sean
i i
E r c = : error en la iteracin i
i 1 i 1
E r c
+ +
= : error en la iteracin i +1
En cada iteracin la magnitud del error se reduce en no ms de la mitad respecto del error en la
iteracin anterior:
i 1 i
1
E E
2
+
. Esta es una relacin lineal. Con la notacin O( ) se puede escribir:
i 1 i
E O(E )
+
= . Entonces, el mtodo de la Biseccin tiene convergencia lineal o de primer orden.
Se puede predecir el nmero de iteraciones que se deben realizar con el mtodo de la Biseccin
para obtener la respuesta con una precisin requerida E:
En la iteracin i : d
i
= d/2
i
Se desea terminar cuando: d
i
< E
Entonces se debe cumplir d/2
i
< E
De donde se obtiene:
log(d / E)
i
log(2)
>
Ejemplo. La ecuacin f(x) = x e
x
- = 0 tiene una raz real en el intervalo [0, 2]. Determine
cuantas iteraciones deben realizarse con el mtodo de la biseccin para obtener un resultado
con precisin E=0.0001.
El nmero de iteraciones que debern realizarse es:
i > log(2/0.0001)/log(2) i >14.287 15 iteraciones
3.1.3 Al goritmo del mtodo de la biseccin
Calcular una raz r real de la ecuacin f(x) = 0 con precisin E.
f es contnua en un intervalo [a, b] tal que f(a) y f(b) tienen signos diferentes
1) Elija el intervalo inicial [a, b]
2) Calcule el punto central del intervalo: c=(a+b)/2
3) Si f(c)=0, c es la raz y termine
4) Si la raz se encuentra en el intervalo [a, c], sustituya b por c
5) Si la raz se encuentra en el intervalo [c, b] sustituya a por c
6) Repita los pasos 2), 3), 4), 5) hasta que la longitud del intervalo [a,b] sea
menor que E.
El ltimo valor calculado c estar aproximadamente a una distancia E de la raz r.
25
3.1.4 Instrumentacin computacional del mtodo de l a bi seccin
Calcular una raz r real de la ecuacin f(x) = 0. f es contnua en un intervalo [a, b] tal que f(a) y
f(b) tienen signos diferentes
Para instrumentar el algoritmo de este mtodo se escribir una funcin en MATLAB. El nombre
ser biseccin. Recibir como parmetros f, a, b, y entregar c como aproximacin a la raz r.
Criterio para salir: Terminar cuando la longitud del intervalo sea menor que un valor pequeo e
especificado como otro parmetro para la funcin. Entonces el ltimo valor c estar
aproximadamente a una distancia e de la raz r.
function c = bi seccion(f, a, b, e)
while b-a >= e
c=(a+b)/2;
if f(c)==0
return
else
if sign(f(a))==sign(f(c))
a=c;
el se
b=c;
end
end
end
Ejemplo. Desde la ventana de comandos de MATLAB, use la funcin bi seccin para calcular
una raz real de la ecuacin f(x) =xe
x
- =0. Suponer que se desea que el error sea menor
que 0.0001.
Por simple inspeccin se puede observar que f es continua y adems f(0) < 0, f(2) > 0. Por lo
tanto se elije como intervalo inicial: [0, 2]. Tambin se puede previamente graficar f.
En la ventana de comandos de MATLAB se escribe:
>> syms x
>> f = x*exp(x)-pi;
>> c = biseccion(inline(f), 0, 2, 0.0001)
c =
1.073669433593750 Este es el resultado calculado
>> subs(f,x,c) Al evaluar f(c) se obtiene un valor cercano a 0
ans =
6.819373368882609e-005
En algunas versiones de MATLAB, la funcin inl ine requiere que la expresin matemtica est
definida como cadena de texto. Se puede usar la funcin char para convertir de tipo simblico
matemtico a cadena de caracteres. Ej.
>> c=biseccion(inline(char(f)), 0, 2, 0.0001)
26
Ejemplo. Encontrar las intersecciones en el primer cuadrante de los grficos de las funciones:
f(x) = 4 + cos(x+1), g(x)=e
x
sen(x).
Primero se grafican las funciones para visualizar las intersecciones:
>> syms x
>> f=4+x*cos(x+1);
>> g=exp(x)*sin(x);
>> ezplot(f,[0,3.5]),grid on,hold on
>> ezplot(g,[0,3.5])
0 0.5 1 1.5 2 2.5 3 3.5
-6
-4
-2
0
2
4
6
8
x
e p( ) s ( )
Las intersecciones son las races de la ecuacin h(x) = f(x) g(x) = 0
El clculo de las races se realiza con el mtodo de la Biseccin con un error menor a 0.0001
>> h=f-g
h =
x*cos(x + 1) - exp(x)*sin(x) + 4
>> c=biseccion(inline(h),1,1.5,0.0001)
c =
1.233726501464844
>> c=biseccion(inline(h),3,3.2,0.0001)
c =
3.040667724609375