Professional Documents
Culture Documents
Xr nuevo Xr anterior
* 100%
Xr nuevo
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)
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
667.38
(1 e 0.146843c ) 40
c
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 :
-
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;
Resultados
Caso 1 : s = 0.5 , Iteraciones = 10
Grfica de la funcin