Está en la página 1de 15

Universidad Tecnolgica de Panam

Facultad de Ingeniera Mecnica

Materia: Mtodos Numricos

Informe de Laboratorio #2
Races de Ecuaciones: Mtodos Cerrados y Abiertos

Elaborado por:
Introduccin
En matemtica, se conoce como raz (o cero) de un polinomio o de una funcin (definida sobre
un cierto cuerpo algebraico) f(x) a todo elemento x perteneciente al dominio de dicha funcin tal
que se cumpla: f(x)=0. Las races se pueden determinar mediante mtodos cerrados y abiertos.

Qu son los mtodos cerrados?

Como su nombre lo dice este mtodo encierra la funcin en un intervalo donde dicha funcin
cambia de signo para tener una raz dentro de este intervalo y luego empezar reducir por medios
de algoritmos el tamao del intervalo.

Entre ellos estn: Teorema de Bolzano, Mtodo de la biseccin, y el Mtodo de regula falsi o
falsa posicin.

Qu son los mtodos abiertos?

A diferencia de los mtodos cerrados estos solo necesitan un valor inicial, pues no encierran la
raz. En algunos casos la operacin diverge (se aleja de la raz) y otros converge (se acerca a la
raz) hallando de manera ms efectiva la raz.

Entre ellos estn: Mtodo de punto fijo, Mtodo de Newton Raphson, Mtodo de la secante,
Mtodo de Brent, Races mltiples, y Sistema de ecuaciones no lineales.

Objetivos
Objetivos generales
Continuar practicando el uso de Scilab.

Objetivos especficos
Explorar los diferentes mtodos para encontrar races de ecuaciones.
Entender algunos problemas relacionados con las condiciones de parada.
Tratar de discernir cuando conviene usar cierto tipo de mtodo y cuando no.
Marco terico
Como ya sabamos, la condicin de parada no es tan fcil de determinar. Lo ms lgico es usar el
error relativo, ya que est relacionado con la precisin de la respuesta y detenerse cuando ese
error es menor que un error de parada (Es):

Sin embargo, esto presenta algunos problemas, a saber:

1. Cuando xi+1 tiende a cero el clculo del error se complica numricamente ya que ese
nmero aparece en el denominador, es preferible poner en el programa la condicin:

2. Ms importante an, cuando xi+1 0 el error relativo deja de tener sentido! En ese caso,
lo que se puede hacer es cambiar al error total |xi+1xi| cuando |xi+1| < 1 (que es el punto en
donde ambos errores son iguales). Sin embargo tendramos que estar vigilantes si la precisin
obtenida es adecuada.

3. El clculo del error es siempre aproximado de manera que puede ser que, si bien el error
aproximado es pequeo, el real no lo sea. Esto es difcil de detectar pero una forma es siempre
verificar el resultado para ver si en verdad est cerca de la raz. Esto es recomendable
siempre (la verificacin del resultado que nos da un algoritmo) pero se puede aadir como
condicin de parada. En el caso de la bsqueda de races se puede aadir el requerimiento de
que:

esto tambin ayuda cuando usamos el mtodo de Newton-Ralphson cerca de races mltiples.
Marco metodolgico
1) Introduzca la siguiente funcin en el archivo bisec.sci.

2) Escriba una funcion en Scilab que implemente la funcin: . Pongala en un


archivo llamado cuad1.sci y dele el nombre cuad1. Corra el programa bisec con el
intervalo xl=-1, xu=3, es = 0.0001. La respuesta correcta es 2.

3) Luego utilice el programa con la funcion seno (sin) con -1 y 1.4 precision de 0.000001 y
100 iteraciones: .
Fjese el nmero de iteraciones.
Ahora corralo con un lmite de 200 iteraciones .

4) Luego escriba otra funcin en Scilab: . y pngala en un archivo llamado


pow8.sci, llmela pow8. Corra el programa con el intervalo (0, 3) y el error deseado igual
que antes. Analice el comportamiento del error y compare con el anterior.

5) Introduzca el siguiente programa en Scilab. El programa implementa el mtodo de


Newton-Ralphson. Ntese que ahora hay que pasarle dos funciones: la funcin de inters
y su derivada.

6) Debe modificar la funcin para que en cada iteracin imprima el nmero de iteracin, el
valor de xi, el error relativo aproximado y el valor de f (xi) y f (xi).
7) Pruebe su programa con las siguientes funciones:
Contenido
Cdigo del programa de biseccin:
function [xr, iter]= bisec(fun,xl,xu,es,imax)
fl=fun(xl)
fu=fun(xu)

if fl*fu >0 then


error("Error, los valores iniciales no parecen encerrerar una raiz")
end

iter=1
xr=xl;

while iter < imax


xold=xr;
xr=(xl+xu)/2;
printf("Iter: %d. xr= %e, error= %e\n", iter, xr, abs((xr-xold)/2))

if abs (xr-xold)< abs (xr*es) then


return
end;

iter=iter+1;
fr=fun(xr);
test=fr*fl;

if test <0 then

xu=xr;
fu=fr;

elseif test>0 then

xl=xr;
fl=fr;

else
return
end;

end;
endfunction
Cdigo del programa para paso 2, donde y ejecucin del mismo:
function [y]= cuad1(x)
y=x**2 - 4;
endfunction

Ejecucin para el paso 3, con sin como funcin.


Para 100:
Cantidad de iteraciones: 99

Para 200:

Cantidad de iteraciones: 199


Cdigo del programa para el paso 4, donde: y ejecucin del mismo.
function [b]= pow8(x)
b=x**8 - 1;
endfunction

Notamos que ahora toman muchas menos iteraciones que las que tomaban con sin para llegar
al resultado.
Programa modificado de bisec para usar el mtodo de Regula-Falsi:

function [xr, iter]=falpos(fun, xl, xu, es, imax)


fl= fun(xl)
fu=fun(xu)

if fl*fu >0 then


error("Error, los valores iniciales no parecen encerrerar una raiz")
end
iter=1
xr=xl;

while iter < imax


xold=xr;
xr=((xl*fu)-(xu*fl))/(fu-fl)
printf("Iter: %d. xr= %e, error= %e\n", iter, xr, abs((xr-xold)/2))
if abs (xr-xold)< abs (xr*es) then
return
end;
iter=iter+1;
fr=fun(xr)
test=fr*fl;

if test <0 then


xl=xr;
fl=fr;
elseif test>0 then
xu=xr;
fu=fr;
else
return
end;
end;
endfunction

Repeticin de paso 2 con Regula-Falsi:


Repeticin del paso 3 con Regula-Falsi:

Repeticin del paso 4 con Regula-Falsi:

Al comparar estos dos mtodos, nos damos cuenta que el mtodo de biseccin
converge ms rpido utilizando menos iteraciones que si lo hacemos con el mtodo
de la falsa posicin.
Programa de Newton-Ralphson que imprima lo requerido en el paso 5:
function [xr , iter] = newton (fun , der , x0 , es , imax )

xr=x0;
iter =1;

while iter<=imax
xold = xr;
f=fun (xold);
d=der (xold);
xr=xold-f/d;

if abs (xr-xold)<abs(xr*es) then


return
end;

printf ("\nIter: %d, xi: %e, error relativo aprox.:%e, funcion(xi): %e, funcion_derivada(xi): %e\n",
iter,xr,(xr-xold), f, d);

iter = iter+1;

end
endfunction

Programa de Newton-Ralphson para


Cdigo de la funcin:
function [bla]= primera(x)
bla=1/%e**x - x;
endfunction

Cdigo de la derivada de la funcin:


function [ble]= primerader(x)
ble=-1/%e**x - 1;
endfunction

Prueba de la ejecucin del programa:


Programa de Newton-Ralphson para :
Cdigo de la funcin:
function [bli]= segunda(x)
bli=%e**x - 1;
endfunction

Cdigo de la derivada de la funcin:


function [blo]= segundader(x)
blo=%e**x - x;
endfunction

Prueba de la ejecucin del programa:


Conclusin
En los mtodos cerrados de biseccin y falsa posicin, la raz se encuentra dentro de un
intervalo, fijado por un lmite inferior y un lmite superior. Repetir la aplicacin de estos
mtodos siempre resulta en estimaciones ms cerca del valor real de la raz. Estos
mtodos se dice que son convergentes, ya que se acercan a la verdad a medida que la
computacin avanza.
En los mtodos abiertos, a diferencia de los cerrados, se calcula en cada iteracin una
aproximacin a la raz y se despreocupan de verificar si esta aproximacin genera o no un
intervalo que contenga una raz.
El mtodo de la biseccin converge lentamente, lo que genera la propagacin de error por
la cantidad de operaciones e iteraciones necesaria para que el mtodo converja.
El mtodo de Newton-Ralphson se torna lento cuando la derivada de la funcin tiende a
0.
Para los mtodos cerrados debemos garantizar que dentro del intervalo de entrada la
funcin sea continua y que este contenga una raz.
Para los mtodos abiertos hay que garantizar que la funcin sea continua.
Referencias bibliogrficas
Csar, J., & El Blog de Programacin para Ingenieras. (n.d.). Calculo del error para
mtodos nmericos. Retrieved from
https://blogdelingeniero1.wordpress.com/2013/04/06/calculo-del-error-para-metodos-
numericos/
Mikitronic Tutoriales. (n.d.). Mtodos Numricos: abiertos y cerrados. Retrieved from
http://metodos-numericos-matlab.blogspot.com/
Procesos Numericos. (n.d.). Metodos numericos para la solucin de ecuaciones.
Retrieved from https://sites.google.com/site/pn20111/
Wikipedia. (n.d.). Raz de una funcin. Retrieved September 6, 2016, from
https://es.wikipedia.org/wiki/Ra%C3%ADz_de_una_funci%C3%B3n

También podría gustarte