You are on page 1of 13

ESCUELA SUPERIOR DE INGENIERIA MECANICA

ELECTRICA

ANALISIS NUMERICOS

PRACTICA 1: METODOS NUMERICOS BISECCIN Y


REGLA FALSA

ALUMNO: BARRIOS JARA RAFAEL

BOLETA:2007300129

GRUPO: 3AV6

PROFESOR: JIMENEZ GUZMAN MIGUEL

Marco terico.
Mtodo de biseccin.
El mtodo de biseccin, conocido tambin como de corte binario, de particin deintervalos
o de Bolzano, es un tipo de bsqueda incremental en el que el intervalo sedivide siempre a
la mitad. Si la funcin cambia de signo sobre un intervalo, se evala elvalor de la funcin
en el punto medio. La posicin de la raz se determina situndola enel punto medio del
subintervalo, dentro del cual ocurre un cambio de signo. El procesose repite hasta obtener
una mejor aproximacin.
El intervalo donde se localiza la raz se divide a la mitad en cada paso del proceso, el ancho
del intervalo proporcionauna estimacin exacta del lmite superior del error.
Algoritmo de mtodo de biseccin.
Paso 1. Elija valores iniciales inferior,

X l , y superior,

X u , que encierran la

raiz, de forma ta que la funcion cambie del signo en el intervalo. Esto se


verifica comprobando que:

f ( X l ) f ( X u ) < 0.
Paso 2. Una aproximacion de la raiz,

Xr=

Xr

se determina mediante:

Xl+ Xu
.
2

Paso 3. Realice las siguientes evaluciones para determinar en qu subintervalo


est la raz:
a) Si

f ( X l ) f ( X r ) <0 , entonces la raz se encuentra dentro del subintervalo

inferior o izquierdo. Por lo tanto, haga


b) Si

y vuelva al paso 2.

f ( X l ) f ( X r ) >0 , entonces la raz se encuentra dentro del subintervalo

superior o derecho. Por lo tanto, haga


c) Si

X u =X r

f ( X l ) f ( X r )=0 , la raiz es igual a

X l =X r

y vuelva al paso 2.

X r ; termina el calcullo.

Criterios de paro y estimaciones de errores.


Ahora se debe desarrollar un criterio objetivo para decidir cundo debe terminar el mtodo.

Una sugerencia inicial sera finalizar el clculo cuando el error verdadero se encuentre por
debajo de algn nivel prefijado. Puede decidirse que el mtodo termina cuando se alcance
un error ms bajo, por ejemplo, al 0.1%. Dicha estrategia es inconveniente, si la estimacin
del error se basa en el conocimiento del valor verdadero de la raz de la funcin. ste no es
el caso de una situacin real, ya que no habra motivo para utilizar el mtodo si se conoce la
raz. Por lo tanto, se requiere estimar el error de forma tal que no se necesite el
conocimiento previo de la raz. Se puede calcular el error relativo porcentual ea de la
siguiente manera:

a =

nuevo

Xr

anterior

X r

X nuevo
r

100

Mtodo de regla falsa.


Aun cuando la biseccin es una tcnica preferentemente valida para
determinar races, su mtodo de aproximacion por fuerza bruta es
relativamente ineficiente. El metodo de regla falsa es una alternativa basada
en una visualizacion grfica.
Un inconveniente del mtodo de biseccin es que al dividir el intervalo de
a

Xl

X u en mitades iguales, no se toman en considercin las magnitudes de


f ( Xl) y

f ( X u ) . Por ejemplo, si

f ( X l ) est mucho ms cercana a cero que

f ( X u ) , es lgico que la raz se encuentre ms cerca de

X l que de

X u . Un

metodo alternativo que aprovecha esta visualizacion grfica consiste en unir

f ( Xl) y

f ( X u ) con una linea recta. La interseccion de esta linea con el eje

de las X representa una mejor aproximacion de la raz. El echo de que se


reemplace la curva por una lnea recta de una falsa posicion de la raz; de
aqu el nomre de mtodo de la regla falsa. Tambien se le conose como el
mtodo de interpolacion lineal.
Usando triangulos semejantes como se muestra en la siguiente figura:

La interseccin de la lnea recta con el eje X se estima mediante:

f ( Xl)
f ( X u)
=
X r X l X r X u
De la cual se despeja

Xr

quedando:

X r =X u

f ( X u ) ( X l X u )
f ( X l )f ( X u )

sta es la formula de la regla de la falsa pocision. El valor de

Xr

calculado

con la ecuacion anterior, remplazara, despues, a cualquiera de los dos valores


iniciales,

X l o X u , y da un valor de la funcion con el mismo signo de

De esta manera, los valores de

Xl y Xu

f ( Xr) .

siempre encierran la verdadera raiz,

el proceso se repite hasta que la aproximacion a la raz sea adecuada. El


algoritmo es identico al de la biseccion excepto en la ecuacion anterior, que se
usa en el paso 2. Ademas, se usa el mismo criterio de terminacion para
concluir los calculos.

Comparacin entre mtodo de biseccin y regla falsa.


Se obtiene una idea ms completa de la eficiencia de los mtodos de biseccin y de regla
falsa al observar la siguiente figura, donde se muestra el error relativo porcentual
verdadero. Se observa como el error decrece mucho ms rpidamente en el mtodo de la
regla falsa que en el de la biseccin, debido a un esquema ms eficiente en el mtodo de la
regla falsa para la localizacin de races.

En el metodo de biseccion el intervallo entre

Xl y Xu

se va haciendo ms

pequeo durante los calculos. Por lo tanto, el intervalo, como se definio por

X
=| X uX l|/2 para la primera iteracion, proporciona una medida del error
2
en este metodo. Este no es el cao con el metodo de regla falsa, ya que uno de
los valores iniciales puede permanecer fijo durante los calculos, mientras que
el otro converge hacia la raiz.

Diagrama de flujo (biseccin y regla falsa).

Biseccin.

S
I
NO
S
I
NO

Fin.

S
I

Regla falsa.

Fin.
S
I
NO
S
I
NO

S
I

Cdigo de programa.
Biseccin.
% Programa para clculo de Races de Ecuaciones no Lineales
% Mtodo de Biseccin
% Autor: Miguel Jimnez Guzmn
clear all;
clc;

% Limpia la memoria
% Limpia la ventana de comandos

% Ingresar la funcin, intervalo de evaluacin y porcentaje de error.


fprintf('\nClculo de la raz de una ecuacin por el mtodo de
Biseccin\n\n');
Y=input('Dame la funcin : ','s');
Xa=input('Dame el intervalo inferior : ');
Xb=input('Dame el intervalo superior : ');
error=input('Dame el porciento del error : ');
% Determinar si en el intervalo entre [Xa,Xb] est comprendida la raz de
la ecuacin
x=Xa;
Ya=eval(Y);
% f(Xa)
x=Xb;
Yb=eval(Y);

% f(Xb)

if (Ya*Yb)>0
fprintf('\n\n No existir una raz en intervalo [Xa,Xb] \n\n');
fprintf('\Execute de nuevo el programa, por favor.\n\n');
break
end
% Se realizan los clculos para determinar la raz en la siguiente
seccin.
fprintf('\n\n')
disp(' N
XaXbXr
F(Xa)
F(Xb)
F(Xr)
Error
');
disp('|---|-----------------|------------------|-------------------|------------------|------------------|--------------------|-----------');
Xant=0; % X anterior
N=0;
% Contador de Iteraciones
while N<50
Xr= (Xa+Xb)/2
Xact=Xr;
% X actual
x=Xr;
Yr=eval(Y);
Ea=abs((Xact-Xant)/Xact)*100;

% Clculo del Error

ds_i=sprintf('%4d %17.8g %17.8g


N, Xa, Xb, Xr, Ya, Yb, Yr, Ea);
disp(ds_i);

%17.8g

%17.8g

%17.8g

%17.8g

%10.5g',

% Impresin de los Resultados


ifEa<error
fprintf('\n\n La Raz Exacta es: %d',Xr)
fprintf('\n\n Nmero de iteraciones: %d \n\n',N);
break
end
% Se determina el nuevo intervalo de evaluacin
if (Ya*Yr)<0
Xb=Xr;
elseif (Ya*Yr)==0
fprintf('\n\n La raz exacta es: %17.8g',Xr)
fprintf('\n\n Nmero de iteraciones: %d',N);
break
else
Xa=Xr;
end
Xant=Xr;
N=N+1;
end

Regla falsa.
% Programa para clculo de Races de Ecuaciones no Lineales
% Mtodo de regla falsa
% Autor: Rafael Barrios Jara (Miguel Jimnez Guzmn - Programa original)
clearall;
clc;

% Limpia la memoria
% Limpia la ventana de comandos

% Ingresar la funcin, intervalo de evaluacin y porcentaje de error.


fprintf('\nClculo de la raz de una ecuacin por el mtodo de regla
falsa\n\n');

Y=input('Dame la funcin : ','s');


Xa=input('Dame el intervalo inferior : ');
Xb=input('Dame el intervalo superior : ');
error=input('Dame el porciento del error : ');
% Determinar si en el intervalo entre [Xa,Xb] est comprendida la raz de
la ecuacin
x=Xa;
Ya=eval(Y);
% f(Xa)
x=Xb;
Yb=eval(Y);

% f(Xb)

if (Ya*Yb)>0
fprintf('\n\n No existir una raz en intervalo [Xa,Xb] \n\n');
fprintf('\Execute de nuevo el programa, por favor.\n\n');
break
end
% Se realizan los clculos para determinar la raz en la siguiente
seccin.
fprintf('\n\n')
disp(' N
XaXbXr
F(Xa)
F(Xb)
F(Xr)
Error
');
disp('|---|-----------------|------------------|-------------------|------------------|------------------|--------------------|-----------');
Xant=0; % X anterior
N=0;
% Contador de Iteraciones
while N<50
Xr= Xa-((Ya*(Xb-Xa))/(Yb-Ya))
Xact=Xr;
% X actual
x=Xr;
Yr=eval(Y);
Ea=abs((Xact-Xant)/Xact)*100;
ds_i=sprintf('%4d %17.8g %17.8g
N, Xa, Xb, Xr, Ya, Yb, Yr, Ea);
disp(ds_i);

% Clculo del Error


%17.8g

%17.8g

% Impresin de los Resultados


ifEa<error
fprintf('\n\n La Raz Exacta es: %d',Xr)
fprintf('\n\n Nmero de iteraciones: %d \n\n',N);
break
end

%17.8g

% Se determina el nuevo intervalo de evaluacin


if (Ya*Yr)<0
Xb=Xr;
elseif (Ya*Yr)==0
fprintf('\n\n La raz exacta es: %17.8g',Xr)
fprintf('\n\n Nmero de iteraciones: %d',N);
break
else
Xa=Xr;
end
Xant=Xr;
N=N+1;
end

%17.8g

%10.5g',

Ejecucin de los programas.


Biseccin.

Regla falsa.

Conclusiones.
Biseccin.
La ventaja que presenta el mtodo de biseccin es que con un intervalo inicial
adecuado siempre se llegara a la solucin pero realiza demasiadas iteraciones
para ello, es un mtodo de convergencia lenta lo que conlleva a que se realicen
un mayor nmero de operaciones y por tanto exista una mayor propagacin
del error.
La desventaja que presenta el mtodo es que en algunos casos se pueden
despreciar valores muy cercanos a la solucin sin ser detectado.

Regla falsa.
Este mtodo converge ms rpidamente que biseccin.
La diferencia entre biseccin y regla falsa es la manera de determinar el valor
intermedio.
Regla falsa puede llegar a converger como secante, ya que sus formulas son
parecidas, siendo ms rpido secante.
Se debe garantizar que la funcin sea continua en el intervalo para aplicar este
mtodo.
Siempre mantiene el intervalo en el que esta la raz, a diferencia de la secante
que parte de dos valores iniciales, que no son necesariamente el intervalo
donde est la raz.

You might also like