Busqueda Algoritmo Raices PDF
Busqueda Algoritmo Raices PDF
Busqueda Algoritmo Raices PDF
AUTORES:
TUTOR:
o Fernando Alcaide
1. Introducción y objetivos
En el presente trabajo de investigación se intenta aportar una solución al problema de la
resolución eficiente de las ecuaciones no lineales de la forma .
Para la mayoría de los casos, resulta imposible conocer el valor exacto de las raíces de una
ecuación. Por ello, es necesario intentar obtener un valor que se aproxime, todo lo que interese, al
valor verdadero de la raíz, para lo cual se emplean los algoritmos de aproximación de dichas raíces.
a) Estudiar los algoritmos tradicionales más importantes, como un primer paso para
entenderlos y descubrir estrategias que puedan ser útiles.
2. Trasfondo histórico
El problema de la resolución de la ecuación no lineal es un tema amplísimo, que ha
dado qué pensar a matemáticos durante cientos de años. Uno de los ejemplos más sencillos es el
caso en el que la función es un polinomio. La resolución de los polinomios de primer y
segundo grado era conocida por pueblos antiguos, como los babilonios. En torno a la década de
1540, Girolamo Cardano, Niccolò Fontana Tartaglia y Scipione del Ferro desarrollaron y compitieron
por la solución algebraica de la ecuación cúbica, que fue finalmente expuesta en la obra Ars Magna
(Cardano, 1545). En ella, el autor reconoce que Tartaglia le había mostrado anteriormente su forma
de resolver cierto tipo de ecuaciones cúbicas, y también afirma que Scipione del Ferro había
descubierto esa misma fórmula de forma independiente y antes que Tartaglia. Cardano muestra el
método para resolver cualquier ecuación cúbica. En la obra también se muestra el método para
resolver ecuaciones cuárticas (de grado cuatro), que había sido desarrollado principalmente por
Lodovico Ferrari, alumno y secretario de Cardano (aunque el método de resolución de las
ecuaciones cuárticas fue más tarde desarrollado por otros matemáticos, como Descartes o Euler).
Posteriormente, muchos matemáticos trataron de dar una solución general a las ecuaciones
polinómicas de grado quinto y superior, pero los esfuerzos fueron en vano. De hecho, el teorema
de Abel-Ruffini, que se considera completamente probado en 1824, con la aportación de Niels
1
Henrik Abel, demuestra que no existe una solución algebraica general para ecuaciones polinómicas
de quinto grado, lo que significa que no existe un método algebraico que permita resolver todas las
ecuaciones polinómicas de quinto grado, si bien la solución exacta de algunas de ellas sí puede ser
obtenida.
Del mismo modo, el método de Newton-Raphson fue descrito por Isaac Newton en De analysi per
aequationes numero terminorum infinitas (escrito en 1669, publicado en 1711) y en De metodis
fluxionum et serierum infinitarum (escrito en 1671, traducido y publicado en 1736). El método
como tal fue publicado por primera vez en 1685 en A Treatise of Algebra both Historical and
Practical, por John Wallis. En 1690, Joseph Raphson publicó una revisión simplificada del método en
Analysis aequationum universalis. Si bien las bases fueron establecidas por Newton, su forma
original de llevarlo a cabo difiere bastante de la actual, y él sólo lo aplicaba a ecuaciones
polinómicas. En la obra mencionada de Raphson, éste hace una descripción más parecida a la
actual.
2. Se toma ;
2
a.
b.
La ventaja más importante del método de bisección es que siempre converge a la solución, sea
cual sea la ecuación en cuestión, siempre y cuando se verifiquen las condiciones iniciales. Sin
embargo, no es un método eficiente ya que pueden ser necesarias un gran número de iteraciones
para obtener una solución con un error aceptable.
3
De donde se desarrolla :
a.
b.
6. Se repite desde el paso 2 para hallar un nuevo punto de intersección de la siguiente recta,
, con el eje de abscisas, comenzando así la segunda iteración.
En general, se puede decir que el método de la “regula falsi” emplea un intervalo inicial
en el que se comprueba que exista al menos una raíz por medio del Teorema de Bolzano,
y a partir del cual se obtiene un punto que vale
siendo el número de iteración. A la vista del valor de , o bien se toma como solución (si el error
cometido se considera aceptable o si ), o bien se toma como un extremo del intervalo de la
siguiente iteración, que devolverá a su vez un valor que se evaluará idénticamente. Este
proceso se iterará el número de veces que se considere necesario o hasta que se halle el valor
exacto de .
4
2. Se parte de una abscisa inicial . Por simplicidad, se puede tomar . Se halla
.
Nótese que también se puede comenzar por el otro extremo del intervalo, haciendo ,
siempre que se tome la pendiente con el signo que garantice la convergencia (véase a
continuación).
El método se puede resumir en la siguiente sucesión, definida por recurrencia, que converge a la
raíz de la ecuación :
aunque esta noción es imprecisa, por lo que a veces es conveniente probar con varios valores
antes de desarrollar el algoritmo completo.
5
converge a la raíz de la ecuación que se encuentra en el intervalo . Como valor
inicial se toma el extremo del intervalo cuyo signo coincide con el signo de en dicho
intervalo. De esta forma se produce la convergencia óptima y, de hecho, de tomarse el extremo
contrario, podría no producirse la convergencia.
Demostración:
es constante
Lo que se busca probar es que el método converge a la raíz, es decir, que sirva para
aproximarla. Esto significa que lo que se ha de probar es que o que .
Por tanto, el objetivo es llegar a una expresión en la que se puedan relacionar algunos de esos
elementos.
Para hacer la demostración más sencilla, y sin que esto suponga una pérdida de generalidad,
se supone un tal que . La elección de un
extremo u otro del intervalo es indiferente, siempre que se cumpla esta condición.
(1)
(2)
Si se desarrolla:
(3)
6
POLINOMIOS DE TAYLOR
donde es el resto, un valor que es diferente para cada y que, al ser sumado al
polinomio de Taylor , consigue que tenga el mismo efecto que .
De donde
Por lo que
(4)
Y como
7
Evidentemente,
Por lo tanto,
En este punto, vale la pena pararse a ver las diferencias en cuanto a la naturaleza de las
soluciones que aportan los métodos dados. El algoritmo de bisección aporta una solución que es un
valor real, aunque también se puede considerar que da como solución un intervalo pues es sencillo
pasar de uno a otro en el proceso. Del método de la “regula falsi” se puede decir lo mismo, si bien
las operaciones que involucra la conversión de valor real a intervalo no son tan sencillas. En el caso
del método de pendiente fija, y también en el de Newton-Raphson, sin embargo, está claro que la
solución que aportan son valores reales, en una sucesión. En estos dos métodos sólo se parte de un
intervalo inicial para tomar el valor que más convenga; a partir de ese punto los intervalos no se
vuelven a ver involucrados en el proceso. En el caso del método combinado, en cada iteración se
van calculando dos valores que forman un intervalo.
Si se analiza el método de la “regula falsi” con detenimiento, se puede ver que, al no estar entre
sus condiciones el hecho de que o tengan signos constantes en , se puede dar el
8
caso de que las intersecciones de las secantes con el eje sean unas mayores y otras menores
que , esto es, que “caigan” tanto a la izquierda como a la derecha de la raíz. Si esto se diera en el
método combinado, se podría llegar a una incongruencia, obteniendo un intervalo que no
contuviera ninguna raíz en él. Sin embargo, al añadir las dos condiciones citadas arriba, se garantiza
que todas las aproximaciones que aporte el método de la “regula falsi” se irán acercando a la raíz
por un mismo lado, es decir, a un lado de la raíz se encontrarán las aproximaciones del método de
Newton-Raphson, en una sucesión convergente a la raíz y con una monotonía determinada, y al
otro lado de la raíz estarán las aproximaciones del método de la “regula falsi”, en sucesión
convergente a la raíz pero con la monotonía opuesta, consiguiéndose de este modo intervalos cada
vez más pequeños en los que se siga encontrando la raíz.
Nótese que, tal y como ya se ha dicho, el punto es constante en todas las iteraciones, es
decir, , mientras que va cambiando en cada
iteración. Así, los siguientes puntos de la iteración por parte de la “regula falsi” vienen
dados por la expresión
9
MÉTODO COMBINADO. CASOS POSIBLES: Todas las combinaciones posibles de
las condiciones del método configuran estos cuatro casos diferentes. Nótese que el signo de
siempre es el mismo que el de .
CASO 1 CASO 3
CASO 2 CASO 4
10
distinta iteración). En caso de desear elegir un valor y no un intervalo como resultado final,
la elección del mismo se deja en manos del que ejecuta el algoritmo.
Demostración:
es constante
es constante
Se comienza definiendo la recta , que es la recta secante en la primera iteración. Pasa por
los puntos y . Por tanto, su vector director es
y, directamente, su pendiente viene dada por la expresión
Cuando corta a :
Por tanto:
11
De nuevo, el resultado es verdadero en los dos casos analizados.
Y de ahí:
Al principio se pensó que se podría conseguir algo parecido al método de Newton-Raphson, pero
utilizando parábolas tangentes a un punto de la función en vez de rectas tangentes.
Estas parábolas no serían más que el desarrollo de Taylor, centrado en ese punto de la función, y
de grado 2, y parecía lógico que el resultado iba a ser algo parecido a la siguiente imagen.
12
Se conjeturó que la parábola tenía que centrarse en el extremo del intervalo contrario al extremo
por el que se empezaría el método de Newton-Raphson, es decir, tenía que centrarse en ,y
que era necesario que tuviera signo constante en todo . Además, se observó que, de los
dos cortes que la parábola tendría con , habría que descartar uno de ellos, el que estuviera más
alejado de la raíz, siendo el otro la aproximación que interesaría al caso.
A partir de estas ideas iniciales se elaboró una demostración en la que se probaba que el método
funcionaría. Según la misma, era posible iterar un proceso en el que se definía la parábola ,
centrada en , que cortaría al eje en un punto que se encontraría siempre entre y , de
modo que las condiciones para la siguiente parábola no variarían, y se podría definir ésta del mismo
modo que , pero centrada en el punto de corte que interesaba. Cada punto de corte,
evidentemente, era una nueva aproximación.
Tras realizar esta demostración, entre abril y mayo de 2011, el asunto quedó un tanto apartado,
ya que todavía quedaba bastante por hacer en cuanto a todos los demás aspectos del trabajo, y
había que terminarlos antes de que se acabara el curso. Por ello, no fue hasta mediados de agosto
de 2011 que resultó que la demostración era errónea. Se empezó a sospechar de esto al probar
algún cálculo a mano y otros ejemplos en GeoGebra.
El proceso seguido para elaborar esta primera demostración fue similar al de la demostración del
método de Newton-Raphson: Se intentó poner en relación el punto de corte, , con , y luego
estudiar también la relación entre y . Debido a un simple error de despeje, se llegó a unas
conclusiones que implicaban que el método convergía. Más específicamente, en la mencionada
demostración se probó, erróneamente, que siempre cortaba a entre y , pero al probar
varios ejemplos en GeoGebra siempre se obtuvo el resultado contrario: parecía cortar siempre
entre y (es decir, al otro lado de ).
Poco después, se elaboró otro documento, más específico, que trataba los cuatro casos posibles
(explicados anteriormente), e intentaba enmendar el error de la primera demostración. En esta
segunda prueba, la conclusión que se obtuvo es que no se podía afirmar que el método, con esas
condiciones, fuera a converger o no.
Más tarde, se intentó una tercera demostración que pretendía probar que el punto siempre
cortaba a entre y , tal y como parecían indicar los resultados en GeoGebra, sin embargo,
tampoco se consiguió llegar a una prueba convincente.
De este modo, la situación actual es que la hipótesis planteada en la tercera demostración parece,
de momento, ser válida, pero no se ha conseguido demostrar.
Teniendo en cuenta todo esto, se concluyó que el mejor camino que se podía seguir era tener
presentes las conclusiones que se han podido sacar a partir del estudio en tres fases que se ha
mencionado, e incluirlas como una modificación del método de Newton-Raphson. Hay que
remarcar que, al tomar esta decisión, se ha tenido en cuenta que, al ser el interés de la
investigación puramente matemático, ha sido clave considerar que las operaciones involucradas
son más costosas y de más lenta realización al trabajar con parábolas. Se ha conseguido mantener
un cierto equilibrio entre el coste de las operaciones y los beneficios (en términos de rapidez de
convergencia) que aporta el uso del método que se va a presentar.
13
Al igual que en el método combinado, todas las combinaciones posibles de las condiciones del
método configuran cuatro casos posibles.
Hay que tener en cuenta que si (casos 1 y 4), ha de valer el valor mayor (sea
ó ), y si (casos 2 y 3), el menor.
14
b. Casos 2 y 3: Si , entonces es mejor aproximación que , por lo
que se continúa con el método de Newton-Raphson, hallando pero
redefiniendo antes , de modo que . En caso
contrario, se continúa con el método de Newton-Raphson tal y como se había
empezado, con .
De este modo, la ventaja que presenta esta variación del método de Newton-Raphson es que
puede llegar a ahorrar algunas iteraciones que habría que realizar si se empleara sólo el método
clásico.
5. Conclusiones
El resultado principal que se puede obtener del expuesto trabajo es que, si bien el tema elegido
como objetivo de la investigación, los algoritmos de aproximación de raíces, ya ha sido estudiado y
trabajado en profundidad, todavía se pueden obtener resultados no vistos anteriormente que,
aunque de pocas aplicaciones en la vida cotidiana a causa de la venida de fenómenos como la
computación, son valiosos porque contribuyen a aumentar nuestro conocimiento en la rama, lo
que no es sino un beneficio para el futuro.
Cumpliendo con los objetivos marcados antes incluso de empezar a redactar la presente
memoria, se ha hecho un repaso de los métodos más importantes ya existentes, y se ha conseguido
entenderlos a fondo. Sin embargo, lo más importante ha sido idear ciertas estrategias que son de
utilidad en la aproximación de raíces cuando las circunstancias lo permiten, a partir de las cuales se
han desarrollado el método combinado y el modificado. El primero es útil cuando lo que interesa es
obtener una mejor acotación de la raíz, mientras que el segundo consigue mejorar la rapidez del
método de Newton-Raphson a costa de unas operaciones un tanto más elaboradas. Pese a los
problemas acontecidos, se ha conseguido aportar algo que no había sido concebido previamente, lo
cual es todo un éxito para la investigación.
6. Bibliografía
A lo largo de todo el proceso de elaboración de este trabajo, han sido varios los recursos
empleados para la formación, especialmente en lo que concierne al estudio inicial de los algoritmos
ya existentes. Las publicaciones más notables empleadas son:
JAVIER ETAYO; [et al.] 1978. Matemáticas. Madrid, Anaya. Curso de Orientación
Universitaria
15
R. RIVEROS. 2010. Cálculo Numérico. Pilar. Paraguay. Libros de Cátedra
Asimismo, los sitios web más relevantes y de mayor utilidad al trabajo son los siguientes:
http://www.wiris.net/demo/formula/portal/es/
http://en.wikipedia.org/wiki/Gerolamo_Cardano
http://en.wikipedia.org/wiki/Ars_Magna_(Gerolamo_Cardano)
http://es.wikipedia.org/wiki/Tartaglia
http://en.wikipedia.org/wiki/Lodovico_Ferrari
http://en.wikipedia.org/wiki/Newton%27s_method#History
http://en.wikipedia.org/wiki/False_position_method
http://neohumanism.org/n/ne/newton_s_method.html#History
http://www.geogebra.org/forum/viewtopic.php?f=20&t=21587
http://www.python.org/
http://code.google.com/p/sympy/
16
ANEXO I: COMPARACIÓN DE LOS ALGORITMOS EXPUESTOS
Comparación de los métodos mostrados en la resolución de la ecuación en el intervalo .
Un valor aproximado de , hallado por ordenador (con GeoGebra), y con un redondeo de 15 cifras decimales, es
Número Método de Método de la “regula Método de pendiente fija Método de Newton- Método combinado Método modificado
de bisección falsi” Raphson
iteración
1
2
3
4
5 -
6 - - - -
17
ANEXO II: EL MÉTODO COMBINADO PROGRAMADO EN PYTHON
A continuación se muestra el código correspondiente al método combinado, programado en Python. Para ejecutarlo, es necesario tener Python instalado,
así como el paquete sympy.
1 #coding=utf-8
2
3 #Importar funciones necesarias
4 from math import sin, cos, tan, asin, acos, atan, sqrt, log, exp
5 from math import sinh, cosh, tanh, asinh, acosh, atanh
6
7 #Importar el paquete sympy (http://sympy.org/) que permitirá la diferenciación de la función de forma automática
8 #(Automatic Differentiation)
9 from sympy import *
10
11 #Se define que x será una variable y por tanto debe ser tratada como un símbolo por sympy
12 x = Symbol ('x')
13
14 #Título
15 print 'MÉTODO COMBINADO programado en Pyhton'
16 print '(Nota: Tenga en cuenta que sólo debe introducir ecuaciones que cumplan con los requisitos del método
17 combinado)'
18 print ' '
19
20 #Petición de datos
21 ecuacion = raw_input('Introduzca la ecuación a resolver en forma de función: f(x)= ')
22 a = float(input('Introduzca el extremo inferior del intervalo en el que se encuentra la raíz: '))
23 b = float(input('Introduzca el extremo superior del intervalo en el que se encuentra la raíz: '))
24 n = int(raw_input('Introduzca el número de iteraciones que desea realizar: '))
25
26 #se hallan las derivadas primera y segunda de la función dada por medio de sympy
27 primera_derivada = str(diff(ecuacion, x))
28 segunda_derivada = str(diff(primera_derivada, x))
29
30 #Se definen en Python las funciones a utilizar en el algoritmo
18
31 def f(x):
32 return eval(ecuacion)
33 def d(x):
34 return eval(primera_derivada)
35 def dd(x):
36 return eval(segunda_derivada)
37
38 #Se comprueba cuál es el extremo por el que empezar el método de Newton (alfa) y el otro (beta)
39 if (dd(a) * f(a)) > 0:
40 alfa = a
41 beta = b
42 else:
43 alfa = b
44 beta = a
45
46 #Se definen unas variables necesarias
47 i = 0 #Variable índice para el bucle while
48 N_0 = alfa #Variable que almacena el valor inicial del método de Newton y se actualiza en cada iteración del bucle
49 #con el valor de la aproximación anterior
50 RF = 0 #Variable que almacenará sucesivamente el valor de las iteraciones del método de la "regula falsi". Aquí
51 #sólo se define con el valor 0
52 b_k = b #Variable para el método de la "regula falsi" que se va actualizando según cambia el valor del extremo
53 #que no está fijo (por las condiciones del método, hay uno que está fijo y otro que no lo está)
54
55 #Cuerpo del algoritmo
56 while i < n:
57 N = N_0 - (f(N_0)/d(N_0))
58 N_0 = N
59 i += 1
60 RF = (f(b_k) * a - f(a) * b_k) /(f(b_k) - f(a)) #No es necesario evaluar el signo de RF ya que las condiciones
61 b_k = RF #del problema indican que RF siempre cae entre r y b
62 c = (N + RF) / 2.0
63
64 #Impresión por pantalla de las soluciones obtenidas
65 print ' '
66 print ':: SOLUCIONES APROXIMADAS ::'
67 print ' '
19
68 print 'En %d iteraciones del método combinado, los resultados obtenidos en la' % n
69 print 'aproximación de la raíz de %s = 0 en el intervalo (%f, %f) son los siguientes:' % (ecuacion, a, b)
70 print ' '
71 print '·) La última itereación por el lado del método de Newton-Raphson aporta el resultado N =', N
72 print ' '
73 print '·) La última iteración por el lado del método de la "regula falsi" aporta el resultado RF =', RF
74 print ' '
75 print '·) Punto medio final: c =', c
76
77
20