Professional Documents
Culture Documents
Mtodo de la Biseccin
II semestre 2006
MTODO DE BISECCIN PARA CALCULO DE RAICES Es un mtodo cerrado o de intervalos que se utiliza para calcular las races de ecuaciones, cuya caracterstica es que las funciones cambian de signo en la vecindad de la raz. Para esta tcnica se requiere proporcionar dos valores iniciales para la raz. Definicin : En general, si f(x) es real y continua en el intervalo que va desde X L a XU, y f(XL) y f(XU) tienen signos opuestos, es decir,
f (X L ) * f (XU ) < 0
entonces hay al menos una raz real entre XL y XU. Los mtodos de bsqueda incremental aprovechan esta caracterstica localizando un intervalo en el que la funcin cambie de signo. Entonces, la localizacin del cambio de signo (y, en consecuencia, de la raz) se logra con ms exactitud al dividir el intervalo en varios subintervalos. Se investiga estos subintervalos para encontrar el cambio de signo. El proceso se repite y la aproximacin a la raz mejora cada vez ms en la medida que los subintervalos se dividen en intervalos cada vez ms pequeos . En numero de iteraciones para el clculo del valor de X R (valor para el cual la funcin f(XR) = 0) mas preciso; se definir mediante el criterio de error relativo porcentual a, donde:
a =
Xr nuevo Xr anterior * 100% Xr nuevo
a =
XU X L * 100% XU + X L
Algoritmo El algoritmo para el mtodo de biseccin se puede resumir en los siguientes pasos : Paso 1 : Elija valores iniciales inferior, XL, y superior Xu, que encierran la raz, de forma tal que la funcin cambie de signo en el intervalo. Esto se verifica comprobando que f(XL)* f(XU) < 0. Paso 2: Una aproximacin de la raz XR se determina mediante :
X R= X L + XU XL
Paso 3: Realice las siguientes evaluaciones para determinar en qu subintervalo est la raz : a) b) c) Si f(XL)* f(XU) < 0, entonces la raz se encuentra dentro del subintervalo inferior o izquierdo. Por lo tanto, haga XU = XR y vuelva al paso 2. Si f(XL)* f(XU) > 0, entonces la raz se encuentra dentro del subintervalo superior o derecho. Por lo tanto, haga XL = XR y vuelva al paso 2. Si f(XL)* f(XU) = 0, entonces la raz es igual a XR; termina el clculo.
Programa Para desarrollar el programa se utiliz el Software MATLAB y las herramientas para implementar los m-files. Programa para ejecutar el mtodo de biseccin, evaluando la funcin particular Paracadas.
Ejemplo1 Se desea determinar el coeficiente de arrastre c necesario para que un paracaidista de masa m = 68 . 1Kg tenga una velocidad de 40 m/s despus de una cada libre de t = 10 s. La aceleracin de la gravedad es 9.8m/s2 . Solucin : El problema se resuelve determinando la raz de la ecuacin (1)
f (c ) = g *m (1 e ( c / m )*t ) V (1) c
La raz de la ecuacin 1 se define para los valores de c, que hagan f(c) = 0 A continuacin se muestra el cdigo de programacin para ejecutar el mtodo iterativo de biseccin para obtener la raz de la ecuacin 1, donde f(c) = 0.
Ejemplo1
xl = input('Limite inferior del intervalo : '); xu = input('Limite superior del intervalo : '); es = input('Criterio de terminacion : '); imax = input('Numero de iteraciones propuesto : '); Biseccion (xl, xu, es, imax); function Biseccion = f(xl, xu, es, imax) ea = 0; xr = 0; iter = 0; xrold = 0; while (1) xrold = xr; xr = ( xl + xu ) / 2; iter = iter + 1; if xr ~= 0 ea = abs (( xr - xrold) / xr ) * 100 ; end test = Paracaidista (xl) * Paracaidista (xr); if test < 0 xu = xr; elseif test > 0 xl = xr; else ea = 0; end if (ea < es)||( iter >= imax), break, end end Biseccion = xr Iteraciones = iter Evaluacion = abs(Paracaidista (xr)) end function Paracaidista = f (c) p = (( 667.38 / c ) * ( 1 - exp ( -0.146843 * c ))) - 40 ; Paracaidista = p;
Resultados Para este caso el algoritmo de Biseccin, tiene 2 criterios de paro que estn definidos por : -
Se define que, el paro se realice cuando se presente cualquiera de las 2 condiciones anteriores. Si se requiere bastante precisin se puede escoger un s bastante pequeo bien dar un numero de iteraciones suficientemente grande. Caso 1 : s = 0.5 , Iteraciones = 10
Note que a medida que se disminuye el nmero de iteraciones el criterio s , el valor de c para la raz se hace ms impreciso, lo cual se puede observar en el resultado de la evaluacin de f(c). Si s el nmero de iteraciones se aumenta, el valor de c se vuelve ms preciso, tal como se muestra en el caso 4.
Grfica de la funcin
Para, calcular races de otras funciones, lo nico que hay que hacer es definir otra funcin que cumpla con los requisitos dados en la definicin. El programa de biseccin sera el mismo function Biseccion = f(xl, xu, es, imax); y lo nico que habra que redefinir es la funcin a la cual se le van a calcular las races test = Paracaidista
(xl) * Paracaidista (xr);
Ejemplo 2 : Hallar la raz de f(x)= x2-2 en el intervalo [0,2]. Como f(x) es continua en el intervalo dado y f(0) f(2)<0, podemos asegurar que existe una raiz, y como f(x) es diferenciable con derivada continua siendo f(x) > 0 en [0,2], la raz es nica. El valor terico para la raz es : X = 2 1.4114...
Ejemplo2
xl = input('Limite inferior del intervalo : '); xu = input('Limite superior del intervalo : '); es = input('Criterio de terminacion : '); imax = input('Numero de iteraciones propuesto : '); Biseccion1 (xl, xu, es, imax); function Biseccion1 = f(xl, xu, es, imax) ea = 0; xr = 0; iter = 0; xrold = 0; while (1) xrold = xr; xr = ( xl + xu ) / 2; iter = iter + 1; if xr ~= 0 ea = abs (( xr - xrold) / xr ) * 100 ; end test = Polinomio (xl) * Polinomio (xr); if test < 0 xu = xr; elseif test > 0 xl = xr; else ea = 0; end if (ea < es)||( iter >= imax), break, end end Biseccion = xr Iteraciones = iter Evaluacion = abs(Polinomio (xr)) end function Polinomio = f (c) p = exp(2*log(abs(c)))-2; Polinomio = p;
Grfica de la funcin