Você está na página 1de 28

Races y ecuaciones

El clculo de las races de las ecuaciones es un problema que se ha tenido que enfrentar
por eso se han elaborado diversos mtodos ya que al determinar las races de una
ecuacin tambin lograremos mximos y mnimos, valores propios de matrices, resolver
sistemas de ecuaciones lineales y diferenciales, etc.
Un mtodo consiste en graficar la funcin y ubicar el punto donde la grfica intercepta al
eje de las abscisas o eje x. El punto ubicado x es el valor de la raz donde f(x)=0.
Pero el mtodo grafico no es preciso por eso de elaboro otros mtodos ms efectivos
capaces de ayudarnos en el campo de la ingeniera, pues son frecuentes en reas de
diseo, clculos para la optimizacin de recursos y otros.
DEFINICIN: La raz de una ecuacin es aquel valor de la variable independiente que
hace que el resultado de la ecuacin sea cero o por lo menos se acerque a cero con una
cierto grado de aproximacin deseado (error mximo permitido).
OBJETIVOS: El objeto del clculo de las races de una ecuacin es determinar los
valores de x para los que se cumple:
f(x) = 0
La determinacin de las races de una ecuacin es uno de los problemas ms
antiguos en matemticas y se han realizado un gran nmero de esfuerzos en este
sentido. Su importancia radica en que si podemos determinar las races de una
ecuacin tambin podemos determinar mximos y mnimos, valores propios de
matrices, resolver sistemas de ecuaciones lineales y diferenciales, etc..
2.1 MTODOS DE INTERVALOS: GRFICOS, BISECCIN Y FALSA POSICIN.
MTODO GRFICO
Mtodo simple para obtener una aproximacin a la raz de la ecuacin f(x)=0 consiste
en graficar la funcin y observar en donde cruza el eje x. Este punto que representa el
valor de X para la cual f(X)=o, proporciona una aproximacin inicial a la raz.
Las interpretaciones graficas, adems de proporcionar aproximaciones iniciales de la
raz.
Las tcnicas grficas tienen una prctica limitada, ya que no son precisas, sin
embargo se pueden usar para obtener aproximaciones de la raz. Estas
aproximaciones se pueden usar como valores iniciales para los mtodos numricos.
Por ejemplo, el software de mtodos numricos TOOLKIT que acompaa este texto
permite graficar funciones sobre un rango especfico. Esta grfica puede usarse para
seleccionar valores iniciales de un intervalo donde est contenida la raz antes de
implementar el mtodo numrico. La posibilidad de graficar aumenta
considerablemente la utilidad de los programas.
Las interpretaciones grficas, son herramientas importantes en la compresin de las
propiedades de las funciones, previendo las fallas de los mtodos numricos.

METODO DE BISECCIN
Este es uno de los mtodos ms sencillos y de fcil intuicin para resolver ecuaciones
en una variable. Se basa en el teorema del valor intermedio(TVI), el cual establece
que toda funcin continua f en un intervalo cerrado [a,b] toma todos los valores que se
hallan entre f(a) y f(b). Esto es que todo valor entre f(a) y f(b) es la imagen de al
menos un valor en el intervalo [a,b]. En caso de que f(a) y f(b) tengan signos opuestos,
el valor cero sera un valor intermedio entre f(a) y f(b), por lo que con certeza existe un
p en [a,b] que cumple f(p)=0. De esta forma, se asegura la existencia de al menos una
solucin de la ecuacin f(a)=0.
El mtodo consiste en lo siguiente:
Debe existir seguridad sobre la continuidad de la funcin f(x) en el intervalo [a,b]
A continuacin se verifica que
Se calcula el punto medio m del intervalo [a,b] y se evala f(m) si ese valor es igual
a cero, ya hemos encontrado la raz buscada
En caso de que no lo sea, verificamos si f(m) tiene signo opuesto con f(a) o con f(b)
Se redefine el intervalo [a, b] como [a, m] [m, b] segn se haya determinado en
cul de estos intervalos ocurre un cambio de signo
Con este nuevo intervalo se contina sucesivamente encerrando la solucin en un
intervalo cada vez ms pequeo, hasta alcanzar la precisin deseada
En la siguiente figura se ilustra el procedimiento descrito.
El mtodo de biseccin es menos eficiente que el mtodo de Newton, pero es mucho
ms seguro para garantizar la convergencia. Si f es una funcin continua en el
intervalo [a, b] y f(a)f(b) < 0, entonces este mtodo converge a la raz de f. De hecho,
una cota del error absoluto es:
\frac{\left|b-a\right|}{2^n}
en la n-sima iteracin. La biseccin converge linealmente, por lo cual es un poco
lento. Sin embargo, se garantiza la convergencia si f(a) y f(b) tienen distinto signo.
Si existieran ms de una raz en el intervalo entonces el mtodo sigue siendo
convergente pero no resulta tan fcil caracterizar hacia qu raz converge el mtodo.

El algoritmo

p_n = \frac{a_n+b_n}{2}, \quad a_{n+1} = \begin{cases} a_n & \mbox{si } f(a_n)\cdot


f(p_n) <0 \\ p_n & \mbox{si } f(a_n)\cdot f(p_n) > 0\end{cases}, \quad b_{n+1} =
\begin{cases} b_n & \mbox{si } f(b_n)\cdot f(p_n) < 0 \\ p_n & \mbox{si } f(b_n)\cdot
f(p_n) > 0\end{cases}Para aplicar el mtodo consideremos tres sucesiones a_n \le p_n
\le b_n\, definidas por las siguientes relaciones:

Donde los valores iniciales vienen dados por:


a_0 := a,\quad b_0:=b
Se puede probar que las tres sucesiones convergen al valor de la nica raz del
intervalo:
\lim_{n \to \infty} a_n = \lim_{n \to \infty} p_n = \lim_{n \to \infty} b_n

Matlab
function x = biseccion(fun,a,b,tol)
% Aproxima por el mtodo de la biseccin una raz de la ecuacin fun(x)=0
disp('Mtodo de la biseccin');
u=feval(fun,a);
v=feval(fun,b);
n=1;
if sign(u)==sign(v)
disp('Error la funcin debe cambiar de signo en (a,b)');
end
while ((b-a)*0.5>=tol)
c=(b+a)/2; w=feval(fun,c);
disp(['n=', num2str(n)]);
disp(['c=', num2str(c)]);
disp(['f(c)=', num2str(w)]);
if sign(u)==sign(w)
a = c; u=w;
else
b=c; v=w;
end
n=n+1;
end;
x=c;

Ejemplo.

Considere la funcin f(x) = x-cosx, a priori sabemos que la funcin tiene un cruce por
cero en el intervalo [0,1], as que nuestra bsqueda se concentrar en este.
iter
inicio
mitad
fin
f(ini)
f(mitad)
f(fin)
0
0.0
0.5
1.0
-1.0
-0.3775
0.4596
1
0.5
0.75
1.0
-0.3775
0.0183
0.4596
2
0.5
0.625
0.75
-0.3775
-0.1859
0.0183
3
0.625
0.6875
0.75
-0.1859
-0.0853
0.0183
4
0.6875
0.71875
0.75
-0.0853
-0.0338
0.0183
5
0.71875
0.734375
0.75
-0.0338
-0.0078

0.0183
6
0.734375
0.7421875
0.75
-0.0078
0.0051
0.0183
7
0.734375
0.73828125
0.7421875
-0.0078
-0.0013
0.0051
8
0.73828125
0.740234375
0.7421875
-0.0013
0.0019
0.0051
9
0.73828125
0.7392578125
0.740234375
-0.0013
0.0002
0.0019
La implementacin recursiva de este algoritmo es:
public static double Biseccion(double ini, double fin)
{
double mitad; mitad = (fin + ini)/2.0;
if((fin - ini) > 0.001)
{
if(funcion(ini)*funcion(mitad) < 0)
return Biseccion(ini, mitad);
else return Biseccion(mitad, fin);
}
else return (mitad);
}
public static double funcion(double x)
{
return (x - Math.cos(x));
}

METODO DE LA FALSA POSICION


La falsa posicin es una alternativa basada en una visualizacin grfica.
Un inconveneiente del mtodo de biseccin es que al dividir el intervalo de x1 a xu
en mitades iguales, no se toman en cuenta las magnitudes de f(x1) y f(xu). Por
ejemplo, si f(x1)est mucho ms cercana a cero que f(xu), es lgico que la raz se
encuentre ms cerca de x1 que de xu. Un mtodo alternaticvo que aprovecha esta
visualizacin grfica consiste en unir f(x1) y f(xu) con una lnea recta. La interseccin
de esta lnea con el eje de las x representa un mejor aproximacin de la raz. El hecho
de que se reemplace la curva por una lnea recta de una "falsa posicin" de la raz; de
aqu el nombre de mtodo de la falsa posicin, o en latn, regula falsi. Tambin se le
conoce como mtodo de interpolacin lineal.

Frmula
Usando tringulos semejantes, la interseccin de la lnea recta con el eje de las x se
estima mediante:
http://illuminatus.bizhat.com/metodos/index_archivos/image002.gif
Multiplicando en cruz la ecuacin anterior obtenemos:
http://illuminatus.bizhat.com/metodos/index_archivos/image004.gif
Agrupando trminos y reordenando:
http://illuminatus.bizhat.com/metodos/index_archivos/image006.gif
Dividiendo entre http://illuminatus.bizhat.com/metodos/index_archivos/image008.gif
http://illuminatus.bizhat.com/metodos/index_archivos/image010.gif
Esta es una de las formas del mtodo de la falsa posicin. Esta puede ponerse en una
forma alternativa al separa los trminos:
http://illuminatus.bizhat.com/metodos/index_archivos/image012.gif
sumando y restando xu en el lado derecho:
http://illuminatus.bizhat.com/metodos/index_archivos/image014.gif
Agrupando trminos se obtiene:

http://illuminatus.bizhat.com/metodos/index_archivos/image016.gif
o:
http://illuminatus.bizhat.com/metodos/index_archivos/image018.gif
Esta es la frmula de la falsa posicin. El valor de xr calculado con la ecuacin
reemplazar, despus, a cualquiera de los dos valores iniciales, xl o xu, y da un valor
de la funcin con el mismo signo de f(xr). De esta manera, los valores xl y xu siempre
encierran la verdadera raz. El proceso se repite hasta que la aproximacin a la raz
sea adecuada.
Algoritmo
Paso 1: Elija valores iniciales inferior, xi, 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:
http://illuminatus.bizhat.com/metodos/index_archivos/image018.gif
Paso 3: Realice las siguientes evaluaciones para determinar en qu subintervalo est
la raz:
a) Si f(xl)f(xr) < 0, entonces la raz se encuentra dentro del subintervalo inferior o
izquierdo. Por lo tanto, haga xu = xr y vuelva al paso 2.
b) Si f(xl)f(xr) > 0, entonces la raz se encuentra dentro del subintervalo superior o
derecho. Por lo tanto, haga xl = xr y vuelva al paso 2.
c) Si f(xl)f(xr) = 0, la raz es igual a xr; termina el clculo.

pseudocdigo
FUNCTION FalsaPos(xl, xu, es, imax, xr, iter, ea)
iter=0
fl=f(xl)
DO
xrold=xr
xr=xu-((f(xu)*(xl-xu))/(f(xl)-f(xu)))
fr=f(xr)
iter=iter+1
IF xr!=0 THEN
ea=ABS((xr-xold)/xr)*100
END IF
test=fl*fr
IF test<0 THEN

xu=xr
ELSE IF test>0 THEN
xl=xr
fl=fr
ELSE
ea=0
END IF
IF ea<es OR iter >= imax EXIT
END DO
FlasaPos=xr
END FalsaPos

2.2 MTODOS ABIERTOS: ITERACIN PUNTO FIJO, MTODO DE NEWTON


RAPHSON Y MTODO DE LA SECANTE. MTODOS PARA RACES MLTIPLES.

ITERACION PUNTO FIJO


El mtodo de iteracin de punto fijo, tambin denominado mtodo de aproximacin
sucesiva, requiere volver a escribir la ecuacin f(x) = 0 en la forma x = g(x).
Llamemos x * a la raz de f. Supongamos que existe y es conocida la funcin g tal que:
f(x) = x g(x) \forall x del dominio.
Entonces:
f(x^*)= 0 \Leftrightarrow x^* - g(x^*) = 0 \Leftrightarrow x^* = g(x^*)
Tenemos, pues, a x * como punto fijo de g.

Procedimiento

El procedimiento empieza con una estimacin o conjetura inicial de x, que es


mejorada por iteracin hasta alcanzar la convergencia. Para que converja, la derivada
(dg / dx) debe ser menor que 1 en magnitud (al menos para los valores x que se
encuentran durante las iteraciones). La convergencia ser establecida mediante el
requisito de que el cambio en x de una iteracin a la siguiente no sea mayor en
magnitud que alguna pequea cantidad .
Algoritmo
1. Se ubica la riz de f(x) analizando la grfica.
2. Se obtiene un despeje x = g(x) de la funcin.
3. Obtenemos de x = g(x) su derivada g\prime(x).
4. Resolviendo la desigualdad -1 g\prime(x) 1 obtenemos el rango de valores en
los cuales esta el punto fijo llamado R.
5. Con R buscamos la raz en g(x), es decir g(R) = R haciendo iteracin de las
operaciones.

Ejemplo
Sea f(x) = x2 5x + 3 una funcin, encuentre la raz.
Ubicamos la riz analizando la grfica.
Pfijo1
Obtenemos x = g(x):
x= \sqrt{5x-3}
Despus obtenemos la derivada de la funcin:
{dg \over dx}={5 \over 2\sqrt{5x-3}}
Entonces resolvemos las desigualdades:
{5 \over 2\sqrt{5x-3}}<1
La solucin es:
({37 \over 20},\infty)
{5 \over 2\sqrt{5x-3}}>-1

La solucin es:
({3 \over 5},\infty)
O visto de otra manera, vemos que en la grafica de la derivada existen valores entre
-1 y 1:
Pfijo2
Ya que se tienen los valores del rango R, encontramos la raz haciendo la iteracin de
las operaciones:
Pfijo3
En la tabla se puede ver el valor que en este caso se uso de R, la iteracin consiste en
usar ese valor en x = g(x) para obtener los siguientes valores haciendo la misma
operacin usando el valor anterior.
Despus de un nmero considerable de iteraciones obtenemos la raz en 4.30268775.

METODO DE NEWTON RAPHSON


Si tenemos una funcin f(x) continua y cerca de una raz p. Si la derivada f(x) existe,
entonces puede utilizarse para desarrollar algoritmos que produzcan sucesiones {pk}
que converjan a p ms rpidamente que los algoritmos de biseccin.

Consideremos el caso de una funcin como la que se muestra en la figura.

http://lc.fie.umich.mx/~calderon/programacion/Mnumericos/NewtonR_archivos/image0
04.jpg
http://lc.fie.umich.mx/~calderon/programacion/Mnumericos/NewtonR_archivos/image0
06.jpg

Dos iteraciones del mtodo de Newton.

En estas figuras se muestra dos iteraciones del mtodo. En la figura de la izquierda


mostramos la lnea recta que es tangente a la funcin f(x) (en negro), note que la lnea
recta cruza el eje x en x = 1. A la derecha tenemos la segunda iteracin tomando
como valor inicial x=1. Note como poco a poco se acerca a la solucin.

La sucesin que nos lleva a la solucin esta dada por los puntos {p0, p1, p2, , pk}.
La pendiente de la lnea recta es

m = (0 f(p0))/(p1 p0)

Por otro lado sabemos, del clculo diferencial, que la pendiente de la lnea tangente a
una funcin es la primer derivada valuada en ese punto. As:

m = f(p0)

Uniendo las ecuaciones tenemos

f(p0) = (0 f(p0))/(p1 p0)

p1= p0 - f(p0)/ f(p0)


De manera iterativa podemos hacer
p2= p1 - f(p1)/ f(p1)
p3= p2 - f(p2)/ f(p2)

pk+1= pk - f(pk)/ f(pk)

Ejemplo.

Hacer un algoritmo iterativo que permita hacer el clculo de la raz cuadrada de A.

Para este caso nuestra funcin a resolver es f(x) = x2-A. La solucin cuando f(x)=0 es
x = A-0.5.

f(x) = x2-A
f(x) =2 x

pk+1= pk - f(pk)/ f(pk)


pk+1= pk - (pk-2-A))/(2 pk)
pk+1=( pk + A/ pk)/2

Los clculos numricos suponiendo A=5 son:

k
pk
0
2.0000
1
2.2500
2
2.2361

3
2.2361
4
2.2361
5
2.2361
6
2.2361
7
2.2361
8
2.2361
9
2.2361
10
2.2361
Ejemplo

Calcular los ceros de la funcin x-cos(x) utilizando el algoritmo de regula falsi en el


intervalo [0,1].

k
pk
0
0.0000
1

1.0000
2
0.7504
3
0.7391
4
0.7391
5
0.7391
6
0.7391
7
0.7391

Mtodo de Newton Raphson para sistemas no lineales


Consideremos el sistema

http://lc.fie.umich.mx/~calderon/programacion/Mnumericos/NewtonR_archivos/image0
08.gif

Utilizando la serie de Taylor podemos hacer una aproximacin lineal

http://lc.fie.umich.mx/~calderon/programacion/Mnumericos/NewtonR_archivos/image0
10.gif

Si escribimos el sistema original como una funcin vectorial V=F(X), entonces la


matriz jacobiana J(x,y) es el anlogo bidimensional de la derivada. La aproximacin
lineal queda como:

http://lc.fie.umich.mx/~calderon/programacion/Mnumericos/NewtonR_archivos/image0
12.gif

donde

http://lc.fie.umich.mx/~calderon/programacion/Mnumericos/NewtonR_archivos/image0
14.gif

Entonces nuestra formulacin bidimensional queda como:

http://lc.fie.umich.mx/~calderon/programacion/Mnumericos/NewtonR_archivos/image0
16.gif

y la actualizacin de la variable la hacemos:

http://lc.fie.umich.mx/~calderon/programacion/Mnumericos/NewtonR_archivos/image0
18.gif

Ejemplo.

Resolver el siguiente sistema de ecuaciones dado por

f1(x,y) = x2 2x y +0.5
f2(x,y) = x2 + 4y2 4

El jacobiano es
http://lc.fie.umich.mx/~calderon/programacion/Mnumericos/NewtonR_archivos/image0
20.gif
Considerando como valores iniciales [0, 1] tenemos:

Primer iteracin
http://lc.fie.umich.mx/~calderon/programacion/Mnumericos/NewtonR_archivos/image0
22.gif
cuya solucin es x= 0.25 y y =0
http://lc.fie.umich.mx/~calderon/programacion/Mnumericos/NewtonR_archivos/image0
24.gif

Segunda iteracin
http://lc.fie.umich.mx/~calderon/programacion/Mnumericos/NewtonR_archivos/image0
26.gif
cuya solucin es x= -0.0274 y y =0.0061
http://lc.fie.umich.mx/~calderon/programacion/Mnumericos/NewtonR_archivos/image0
28.gif

Las dems iteraciones la resumimos es:

k
X
y
0
0.0000
1.0000
1
-0.2500
1.0000
2
-0.2260
0.9939
3
-0.2222
0.9938
4
-0.2222
0.9938
5
-0.2222
0.9938
6
-0.2222
0.9938

7
-0.2222
0.9938

La implementacin en Java de este mtodo es:

double Newton()
{
int i;
double m, b, x;

x = 0;

while(Math.abs(f(x)) > 0.0001)


{
m = df(x);
b = - m*x + f(x);

pausa(300);
x = x - f(x)/m;
}
return x;
}

double f(double x)
{
return (x-Math.cos(x));
}

double df(double x)
{
return(1+Math.sin(x));
}

Desventajas del Mtodo de Newton.


Aunque el mtodo de Newton-Raphson en general es muy eficiente, hay situaciones
en que se comporta en forma deficiente. Un caso especial, races mltiples.

Ejemplo.

Determinar la raz de la funcin f(x) = x10 1.

http://lc.fie.umich.mx/~calderon/programacion/Mnumericos/NewtonR_archivos/image0
30.gif

La solucin utilizando el mtodo de Newton queda:

http://lc.fie.umich.mx/~calderon/programacion/Mnumericos/NewtonR_archivos/image0
32.gif
Y la solucin numrica es:

x
f(x)
df(x)
0.5000
-0.9990
0.0195
51.6500
135114904483914000.0000
26159710451871000.0000
46.4850
47111654129711500.0000
10134807815362300.0000
41.8365
16426818072478500.0000
3926432199748670.0000
37.6529
5727677301318310.0000
1521180282851980.0000
33.8876
1997117586819850.0000
589336409039672.0000
30.4988

696351844868619.0000
228320999775654.0000
27.4489
242802875029547.0000
88456233382052.8000
24.7040
84660127717097.5000
34269757191973.2000
22.2336
29519161271064.1000
13276806089225.7000
20.0103
10292695105054.7000
5143706707446.1600
18.0092
3588840873655.1100
1992777367871.5700
16.2083
1251351437592.9200
772042782329.1500
14.5875
436319267276.5290
299105192259.1190
13.1287
152135121499.2910
115879479847.7330

11.8159
53046236848.5329
44894084747.9692
10.6343
18496079117.2577
17392888266.5936
9.5708
6449184014.3077
6738361277.7304
8.6138
2248691421.7628
2610579221.6818
7.7524
784070216.9426
1011391879.0870

METODO DE LA SECANTE
Un problema en la implementacin del mtodo de Newton-Raphson es el de la
evaluacin de la derivada. Aunque esto no es un inconveniente para los polinomios y
para muchas otras funciones, existen algunas funciones cuyas derivadas pueden ser
en extremo difciles de evaluar. En estos casos, la derivada se puede aproximar
mediante una diferencia finita.
http://lc.fie.umich.mx/~calderon/programacion/Mnumericos/MSec_archivos/image004.
gif
Sustituyendo esta aproximacin en la formula de Newton, tenemos la frmula del
mtodo de la secante.

http://lc.fie.umich.mx/~calderon/programacion/Mnumericos/MSec_archivos/image006.
gif
Ejemplo.
Encontrar la solucin utilizando el mtodo de la secante para la funcin f(x) = x10 1.
http://lc.fie.umich.mx/~calderon/programacion/Mnumericos/MSec_archivos/image008.
gif
x0
x1
f(x0)
f(x1)
0.5000
0.9000
-0.9990
-0.6513
0.9000
1.6493
-0.6513
147.9235
1.6493
0.9033
147.9235
-0.6384
0.9033
0.9065
-0.6384
-0.6253
0.9065
1.0602
-0.6253
0.7945
1.0602
0.9742
0.7945
-0.2301
0.9742
0.9935
-0.2301
-0.0630
0.9935
1.0008
-0.0630
0.0080
1.0008
1.0000
0.0080
-0.0002

Note, que para este problema, el mtodo de la secante si lleva a una solucin. Este
hecho se debe a que calcula su aproximacin apoyada de dos puntos, no de uno solo.
La implementacin de este mtodo en Java es :
double Secante()
{
int i;
double m, x, x0 = 0, h = 0.5;
x

= inicio + h;

while(Math.abs(f(x)) > 0.0001)


{
m = (f(x) - f(x0))/(x - x0);
x0 = x;
x = x - f(x)/m;
}
return x;
}
MTODO DE LAS REICES MLTIPLES
Uno de los inconvenientes que presenta el mtodo de Newton es cuando la derivada
de la funcin tiende a cero al ser evaluada en x y por ende la convergencia disminuye
o incluso se suspende si se alcanza una divisin por cero. Similarmente sucedera con
el mtodo de la secante si la funcin es muy plana y f(x) y f(x-1) son aproximadamente
iguales. Con el fin de darle solucin a este inconveniente se crearon estos mtodos.
Mtodos para determinar races mltiples
Hay dos formas desarrolladas para determinar races mltiples. Estos mtodos no son
ms que modificaciones del mtodo de newton y a continuacin se presentaran estos.
El primero de ellos aade un factor a la formula normal del mtodo de newton con el
fin de retornar la convergencia de este, simplemente aade la multiplicidad de la raz
como una constante al segundo trmino de la formula.
https://sites.google.com/site/proyectoprocesosnumericoseafit/_/rsrc/1315779409042/h
ome/raices-multiples/raices%20multiples1.png
El segundo crea una funcin auxiliar u(x)=f(x)/f'(x), as xn+1 =xn-(u(x)/u'(x))
reemplazando en trminos de f(x) se obtiene :
https://sites.google.com/site/proyectoprocesosnumericoseafit/_/rsrc/1315780242987/h
ome/raices-multiples/raicesmult2.png

Pseudocodigo Metodo 1
Pseudo codigo raices multiples 1
Datos de entrada: funcin, derivada, punto inicio, multiplicidad, n max, error absoluto
Datos de salida: raz, numero iteraciones
Lea: f, fp, xi, n, tol, m
fx=f(xi)
fpx=fp(xi)
i=1
error=tol+1
mientras i<=n y fx~=0 y error>tol y fpx~=0
x=xi-m*(fx/fpx)
fx=f(x)
fpx=fp(x)
error=abs(x-xi)
xi=x
i=i+1
fin mientras
si fx=0
Escriba La raz es: xi
Sino si error<tol
Escriba xi es una aproximacin a la raz con un error mximo de tol
Sino si fpx=0
Escriba xi es una posible raz mltiple.'
sino
Escriba El mtodo fallo en n iteraciones
Fin si
Pseudocodigo metodo 2
Pseudocodigo raices multiples 1
Datos entrada :
mximo

funcin, primera y segunda derivada, punto inicio, n max, error

Datos salida: raz, numero de iteraciones


Lea: f, fp, fpp, xi, n, tol
fx=f(xi)
fpx=fp(xi)
fppx=fpp(xi)

denominador=(fpx^2-fx*fppx)
i=1
error=tol+1
mientras i<=n y fx~=0 y error>tol y denominador~=0
x=xi-(fx*fpx)/denominador
fx=f(x)
fpx=fp(x)
fppx=fpp(x)
denominador=(fpx^2-fx*fppx)
error=abs(x-xi)
xi=x
i=i+1
fin mientras
si fx=0
Escriba La raz es: xi
Sino si error<tol
Escriba xi es una aproximacin a la raz con un error mximo de tol
sino
Escriba El mtodo fallo en n iteraciones
fin si
Codigos Matlab/Octave
function raicesmultiplesb
f=input('ingrese la funcion: ','s');
f=inline(f);
fp=input('ingrese la dervidad de la funcion: ','s');
fp=inline(fp);
m=input('Ingrese la multiplicidad de la raiz: ');
xi=input('escriba el punto de inicio: ');
tol=input('Ingrese el error maximo admisible: ');
n=input('Ingrese el numero maximo de iteraciones permitidas: ');
fx=f(xi);
fpx=fp(xi);
i=1;
error=tol+1;
fprintf('\n n
x
f(x)
fp(x)
\n')
while i<=n && fx~=0 && error>tol && fpx~=0
x=xi-m*(fx/fpx);
fx=f(x);
fpx=fp(x);
fprintf('%1.0f %10.10f %10.10f %10.10f \n',i,x,f(x),fp(x))
error=abs(x-xi);
xi=x;
i=i+1;
end
if fx==0
fprintf('\n La raz es: %1.10f \n\n',xi)
else if error<tol

fprintf('\n %1.10f es una aproximacion a la raiz con un error maximo de %1.10f


\n',xi,tol)
else
fprintf('\n El metodo fallo en %0.0f iteraciones \n\n',n)
end
end
end

function raicesmultiples
f=input('ingrese la funcion: ','s');
f=inline(f);
fp=input('ingrese la dervidad de la funcion: ','s');
fp=inline(fp);
fpp=input('ingrese la segunda dervidad de la funcion: ','s');
fpp=inline(fpp);
xi=input('escriba el punto de inicio: ');
tol=input('Ingrese el error maximo admisible: ');
n=input('Ingrese el numero maximo de iteraciones permitidas: ');
fx=f(xi);
fpx=fp(xi);
fppx=fpp(xi);
denominador=(fpx^2-fx*fppx);
i=1;
error=tol+1;
fprintf('\n n
x
f(x)
\n')
while i<=n && fx~=0 && error>tol && denominador~=0
x=xi-(fx*fpx)/denominador;
fx=f(x);
fpx=fp(x);
fppx=fpp(x);
denominador=(fpx^2-fx*fppx);
fprintf('%1.0f %10.10f %10.10f %10.10f \n',i,x,f(x))
error=abs(x-xi);
xi=x;
i=i+1;
end
if fx==0
fprintf('\n La raz es: %1.10f \n\n',xi)
else if error<tol
fprintf('\n %1.10f es una aproximacion a la raiz con un error maximo de %1.10f
\n',xi,tol)
else
fprintf('\n El metodo fallo en %0.0f iteraciones \n\n',n)
end
end

2.3 APLICACIONES A LA INGENIERA MECNICA


Los mtodos de aproximaciones sucesivas son requeridos para la solucin de
problemas complejos en ingeniera. Este trabajo muestra el uso del mtodo de
Aproximacin de Punto Fijo para la determinacin del dimetro de sistemas de
tuberas, en flujo turbulento, considerando no solamente las prdidas primarias, sino
tambin las menores. Se parti de la ecuacin de Colebrook-White y se estableci un
sistema de ecuaciones recurrentes. La solucin de este sistema fue implementada a
partir de un algoritmo genrico en MATLAB como una frmula aadida por el usuario.
Esto evita el uso del diagrama de Moody, as como facilita las labores de diseo
mediante el uso de un software de hoja de clculo ampliamente utilizado. Dicho
programa permite la realizacin de los clculos en forma rpida, exacta y sencilla. As
mismo, se presenta como una alternativa innovadora de solucin que construye sobre
lo ya conocido en cursos de computacin y mtodos numricos y que puede ser
utilizada en los diversos cursos de mecnica de fluidos, hidrulica, termodinmica,
etc., que se imparten en las instituciones de educacin superior.

Você também pode gostar