Está en la página 1de 114

Solucion de una ecuacion no lineal en la

computadora.

Indice
1. Generalidades y conceptos basicos 1
1.1. Deniciones y caractersticas de los metodos . . . . . . . . . . 2
1.1.1. Diferencia en el concepto de raz en R y en F . . . . . . 2
1.1.2. Deniciones de raz computable. Comparacion y uso
adecuado . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.3. Caractersticas de los metodos y conceptos que requieren 5
1.2. B usqueda del cambio de signo . . . . . . . . . . . . . . . . . . 7
1.2.1. Formas de b usqueda de la aproximaci on inicial de la
raz de una ecuacion. . . . . . . . . . . . . . . . . . . . 7
1.2.2. Datos para la b usqueda del cambio de signo . . . . . . 8
1.2.3. Hipotesis de la b usqueda del cambio de signo. Analisis
e implementacion del algoritmo. . . . . . . . . . . . . . 10
1.2.4. Algoritmo de b usqueda del Cambio de signo . . . . . . 11
2. Metodos de cambio de signo (De intervalo, de encierro o sin
derivadas) 12
2.1. Metodo de biseccion . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.1. N umero maximo de iteraciones . . . . . . . . . . . . . 14
2.1.2. Casos de incumplimiento de hipotesis . . . . . . . . . . 14
2.1.3. Justicacion de la formula del punto medio . . . . . . . 16
2.1.4. Algoritmo de biseccion . . . . . . . . . . . . . . . . . . 17
2.1.5. Resultados de la corrida del programa . . . . . . . . . 18
2.1.6. Uso de la tolerancia relativa. . . . . . . . . . . . . . . . 20
2.1.7. Estimacion del error en biseccion . . . . . . . . . . . . 21
2.2. Metodo de falsa posicion FPS (Regula falsi ) . . . . . . . . . . 22
2.2.1. Algoritmo de falsa posicion simple . . . . . . . . . . . . 26
2.3. Metodo de falsa posicion modicado FPM . . . . . . . . . . . 27
2.3.1. Algoritmo de falsa posicion modicado . . . . . . . . . 27
1
2.3.2. Resultados de las corridas de falsa posicion simple y
modicada . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4. Conclusiones sobre los metodos de cambio de signo . . . . . . 29
3. Metodos de b usqueda del punto jo 30
3.1. Metodo de iteracion lineal IL . . . . . . . . . . . . . . . . . . 31
3.1.1. Representaci on graca del punto jo y de las iteracio-
nes del metodo. . . . . . . . . . . . . . . . . . . . . . . 32
3.1.2. Comportamientos que pueden presentarse . . . . . . . 33
3.1.3. Analisis algebrico de la convergencia de IL . . . . . . . 35
3.1.4. Vericacion de la convergencia en IL . . . . . . . . . . 37
3.1.5. N umero maximo de iteraciones en IL . . . . . . . . . . 39
3.1.6. Discusion del algoritmo de IL . . . . . . . . . . . . . . 40
3.1.7. Algoritmo de iteracion lineal . . . . . . . . . . . . . . . 40
3.1.8. Orden de convergencia en IL . . . . . . . . . . . . . . . 43
3.1.9. Formas de encontrar funciones adecuadas. . . . . . . 48
3.1.10. Iteracion lineal y la Teora del Caos. . . . . . . . . . . 53
3.2. Metodo de Wegstein o iteracion lineal modicado MILM . . . 60
3.2.1. Algoritmo de iteracion lineal modicada (Wegstein) . . 64
3.3. Metodo de las secantes . . . . . . . . . . . . . . . . . . . . . . 65
3.3.1. Algoritmo del metodo de las secantes . . . . . . . . . . 67
3.3.2. Resultados de los metodos de Wegstein y de la secante. 68
3.3.3. Orden de convergencia del metodo de las secantes . . . 69
3.4. Metodo de Newton. . . . . . . . . . . . . . . . . . . . . . . . . 71
3.4.1. Deduccion de la formula fundamental . . . . . . . . . . 72
3.4.2. Convergencia del metodo de Newton [Com05]. . . . . . 75
3.4.3. Casos anomalos. . . . . . . . . . . . . . . . . . . . . . . 76
3.4.4. N umero maximo de iteraciones en Newton . . . . . . . 77
3.5. Enfoque del algoritmo de Newton . . . . . . . . . . . . . . . . 78
3.6. Algoritmo de Newton con metrica . . . . . . . . . . . . . . . . 84
3.6.1. Resultados del metodo de Newton con metrica. . . . . 86
3.7. Sistemas de ecuaciones no lineales . . . . . . . . . . . . . . . . 88
3.7.1. Casos particulares: Sistemas no lineales de 2 y 3 ecua-
ciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4. Races complejas de ecuaciones 94
4.1. Planteamiento general . . . . . . . . . . . . . . . . . . . . . . 94
4.2. Metodo de los cuadrantes . . . . . . . . . . . . . . . . . . . . 96
4.3. Races reales y complejas de una ecuacion: metodo de M uller . 101
5. Apendice 105
2
6. Bibliografa 113
1. Generalidades y conceptos basicos
El modelo matematico representado por una ecuacion cuyas races se
requiere conocer es el mas antiguo y simple, pero tambien uno de los mas
potentes. De el se derivan otros mas elaborados, pero de por s puede ser arbi-
trariamente complicado, seg un el tipo de ecuacion que se plantee: ecuaciones
algebricas, trascendentes, diferenciales ordinarias o parciales, integrales, de
diferencias, etc. El concepto, ademas, puede extenderse a mas dimensiones y
da lugar a los sistemas de ecuaciones simultaneas, de los que nos ocuparemos
en otro captulo.
En este estudiaremos la solucion de una ecuacion algebraica o trascenden-
te mediante la computadora. El uso de los Metodos Numericos, viabilizados
mediante esta poderosa herramienta, ha abierto la posibilidad de resolver
ecuaciones de cualquier tipo, mientras, en el campo de la matematica teorica,
sabemos que, a un en el grupo mas conocido, el de las ecuaciones polinomicas
o algebricas, no es posible resolver con exactitud teorica mas que las ecua-
ciones hasta de orden cuatro
1
. Es decir, sin el uso de los Metodos Numericos,
solo podramos resolver una porcion insignicante de los tipos de ecuacio-
nes que se presentan en la matematica aplicada; en cambio, gracias a ellos
contamos con una metodologa universal para resolver ecuaciones, dentro del
enfoque y las deniciones que vamos a ver.
El problema de la solucion de una ecuacion no lineal (excluimos la lineal
por su simplicidad) es bien conocido, lo que lo hace adecuado para comenzar
por el un curso de Metodos Numericos, ya que el estudiante no requiere
explicaciones previas para comprender el tema: se trata de hallar los ceros
2
de una funcion de variable real
f : I R R f(x)=0 (1)
Pero, antes de abordar los metodos de solucion, debemos precisar varios
conceptos:
1
En el siglo XIX, los trabajos independientes, primero de Runi, y luego de Galois
y Abel, demostraron en forma incontrovertible la imposibilidad de hallar la solucion de
una ecuacion algebrica de grado mayor a cuatro mediante una formula que emplease las
operaciones elementales y races en funcion de los coecientes de la ecuacion.
2
Llamados tambien races de la ecuacion.
3
1.1. Deniciones y caractersticas de los metodos
Se llaman races exactas o simplemente races de la ecuacion (1) a los
valores, reales o complejos, que, al ser reemplazados en f(x), la anulan. Es
decir: a Races de f(x) = 0 f(a) = 0.
Si bien esta denicion es clara y unvoca cuando la empleamos en R o en
C, para poder usar consistentemente la computadora en la b usqueda de las
races, necesitamos considerar varios hechos:
Al aplicar cualquier metodo numerico estaremos haciendo uso del sis-
tema de n umeros de punto otante.
No solo es posible, sino mas que probable, que la raz a no pertenezca
a este conjunto. Es in util, entonces, que pretendamos llegar a ella con
el computador.
A un cuando a, eventualmente, sea un n umero de maquina (a F),
al evaluar la funcion f en el punto a, los errores de redondeo de la
aritmetica del computador impediran que la funcion se anule exacta-
mente, por lo cual no se reconocera a a como raz seg un la denicion
propuesta arriba.
Es, pues, preciso, formular una denicion de raz mas apropiada y utilizable,
que considere las diferencias entre los sistemas R y F.
1.1.1. Diferencia en el concepto de raz en R y en F
Introduciremos el concepto de raz computable
3
: puesto que no siempre
podremos llegar hasta, o siquiera reconocer, el valor teorico exacto dado
en la denicion anterior, necesitamos una denicion mas practica que nos
permita llegar a las races, dentro de los requerimientos de precision del
modelo y la capacidad de representacion del conjunto de punto otante. El
valor mas cercano que podemos alcanzar es oat(a), pero en muchos casos
no es indispensable acercarnos tanto al valor teorico. Entonces, daremos tres
criterios mas amplios y luego los discutiremos:
1.1.2. Deniciones de raz computable. Comparacion y uso ade-
cuado
Seg un el criterio horizontal:
x Races de f(x)=0 [x a[ tol
x
(2)
3
Llamada tambien aproximada.
4
O, tambien
x Races de f(x)=0
[x a[
[a[
tolr
x
(3)
En cambio, el criterio vertical la dene as:
x Races de f(x)=0 [f(x)[ tol
y
(4)
Las dos primeras deniciones hacen uso de la diferencia entre la raz obtenida
y la exacta, y acotan ese valor: el criterio (2) pone la cota tol
x
(tolerancia
horizontal ) en el error absoluto de x, y el (3) acota el error relativo. El con-
cepto es muy claro, pero para su aplicacion existe el inconveniente de que
a no es conocida - y si lo fuese, obviamente, no estaramos buscando una
aproximaci on -, de modo que se requieren formas indirectas de determinar si
(2) o (3) se cumplen. Pero, en caso de que as sea, la vecindad esta asegurada
y la precision controlada por el valor de tolerancia que se escoja.
En cambio, la tercera denicion acota el error absoluto en el calculo de la
funcion. En este caso no hay termino desconocido con que comparar, pero
esta ventaja es solo aparente, ya que no es facil en muchos casos escoger una
adecuada tolerancia vertical tol
y
, es decir, una que asegure que x este cerca
de a. Depende del condicionamiento del problema, punto que tocaremos en
seguida.
Por otro lado, la tolerancia horizontal absoluta implica menor o mayor di-
cultad de satisfacerla seg un el tama no de a, pues especica un n umero
determinado de decimales correctos en la respuesta. Para una raz grande
este requerimiento puede ser mucho mas exigente que para una peque na. En
cambio, la tolerancia horizontal relativa es independiente de la escala: da lo
mismo usar una tolr
x
de 1E-5 en las vecindades de la raz 1.2345 que cerca
de 1234.5: en ambos casos implica el mismo n umero de dgitos signicativos
correctos en la respuesta.
La caracterstica de la funcion f que determina el comportamiento de la to-
lerancia vertical en relacion con la horizontal es la derivada de f en la raz
buscada. Si la ecuacion planteada es f(x) = 0, podemos considerar que la
b usqueda de la raz equivale a la evaluaci on de f
1
(0); es decir, la evaluaci on
de la funcion inversa f
1
(y) en el argumento y = 0. Este enfoque nos sirve
para analizar el condicionamiento del problema de la solucion de una ecua-
cion.
Sea x = f
1
(0)
x
.
=
df
1
(y)
dy

y
[
x
[

1
df
dx

x=a
tol
y
.
Es decir, si el modulo de la derivada de f(x) en a es peque no, el error
x
en la raz puede ser grande, a un si tol
y
es peque na (caso mal condicionado
de b usqueda de la raz cuando se usa la tolerancia vertical). En cambio, si la
5
curva es muy empinada en a ([
df
dx
[
x=a
grande), tol
y
debe ser grande para que
admita hasta valores muy cercanos a a.
x
y
y=f(x)
y=f(x)
x
y
Bien condicionado
Mal condicionado
Figura 1: Condicionamiento de la solucion de una ecuacion
Aunque no se conozca a, la formula anterior puede acotarse para obtener
una relacion a veces util entre tol
x
y tol
y
, de modo que, a traves de tol
y
podamos controlar el cumplimiento de tol
x
, que es la que nos asegura la
cercana a la raz exacta:
Si denimos m
1
= mn[
df
dx
[ en un entorno cercano a a, manteniendonos en
el lado de la seguridad podemos denir
tol
y
= m
1
tol
x
(5)
Sin embargo, en el caso mal condicionado, m
1
puede ser nulo o demasiado
peque no, y tol
y
< [
(0)
y[, con lo cual la precision del sistema de punto o-
tante no permite satisfacerla, y la relacion (5) no siempre se puede utilizar,
a mas del costo del calculo de m
1
para cada raz.
1.1.3. Caractersticas de los metodos y conceptos que requieren
Los metodos numericos para resolver una ecuacion no lineal son algorit-
mos iterativos
4
, basados en operaciones aritmeticas elementales, que deben
converger hacia una raz y que, en general, no estan ligados a tipos especcos
de ecuaciones.
4
El sustantivo iteracion es sinonimo de repeticion, y de el deriva el adjetivo iterativo,
que se utiliza en este contexto y que no debe confundirse con interactivo.
6
Hay varios conceptos que es bueno establecer de antemano, para poder refe-
rirnos a ellos mas adelante.
Convergencia: Estos metodos generan una secuencia x
i
de aproxima-
ciones sucesivas a la raz. Para que el metodo sea util, es necesario que esa
secuencia tienda a un lmite; es decir, que converja. Como lo vimos ya en el
captulo anterior,
Denicion de convergencia 1.1.1. Una sucesion S = x
i
, i = 1 . . . se
llama convergente si L R [ lm
i
x
i
= L. En caso contrario se llama
divergente.
En nuestro caso, el lmite debe ser la raz exacta a, cuyo valor no pre-
tendemos alcanzar, pero s aproximarnos lo suciente como para vericar la
convergencia seg un criterios bien determinados para cada metodo.
En notacion matematica, podemos denir de varias maneras equivalentes la
convergencia:
lm
i
x
i
= a (6)
lm
i
[x
i
a[ = 0 (7)

i>N
[x
i+1
a[ < [x
i
a[ (8)
La denicion 8, al no usar lmites, es mas facilmente aplicable en la practica
algortmica. El parametro N - usualmente un n umero entero positivo peque no
- indica la posibilidad de que la convergencia no necesariamente se establezca
desde el principio; pero, una vez que lo hace, ya no cesa.
Si en la aplicacion de un metodo numerico falla la convergencia hacia la raz,
el proceso es in util. Algunos metodos tienen condiciones de convergencia, las
cuales aseguran que esta se produzca, y en cuya ausencia la utilizacion del
metodo esta casi con seguridad condenada al fracaso
5
.
Orden de convergencia: Otra cuestion importante, a mas de la conver-
gencia en s, es la rapidez con que alcanza una vecindad satisfactoria a la raz
buscada. Es claro que una convergencia demasiado lenta es, en la practica,
casi tan indeseable como la divergencia. La forma mas usual de medir esta
rapidez es el orden de convergencia.
Denicion de orden de convergencia 1.1.1. Se dice que una secuencia
convergente x
i
converge a su lmite a al menos con orden p si:
lm
i
[x
i+1
a[
[x
i
a[
p
= K
p
5
No siempre lo esta, pues la condicion de convergencia es suciente, pero no necesaria.
7
Donde K
p
se conoce como la constante de convergencia, [K
1
[ < 1 (o tambien
constante de error).
Criterio paralelo de terminacion: Si, por razones de mala seleccion
del metodo, errores en el programa, incumplimiento de hipotesis o datos mal
dados, un metodo no converge, hay que prever como detenerlo para evitar que
entre en un lazo interminable, que puede ser oneroso en terminos economicos
y que, de cualquier manera, no trae ning un benecio. Esta buena practica
de programacion debe aplicarse en cualquier metodo iterativo. La forma de
hacerlo en nuestro caso sera determinando de antemano el n umero maximo de
iteraciones, NMAX, requerido para que se verique el criterio de convergencia
que usaremos en el metodo (lo cual puede hacerse mas precisamente en unos
metodos que en otros) y, mediante un contador de iteraciones, IT, que se
comparara continuamente con el, evitar que se sobrepase esa cota. Si se llega
a ella y a un no se verica la convergencia, el proceso debera terminar, escribir
un mensaje adecuado, y avanzar al siguiente paso.
Criterio de vericaci on de convergencia: Es la forma en que vamos
a cerciorarnos de que el metodo ha llegado a las vecindades deseadas de la
raz exacta. En la b usqueda de una raz hemos indicado ya la conveniencia
de aplicar el criterio horizontal de convergencia, absoluto o relativo. A mas
de esto, seg un el enfoque de la aritmetica de intervalos, buscaremos siempre
determinar la raz mediante un intervalo sucientemente peque no que la con-
tenga. El optimo sera el limitado por los dos n umeros de maquina vecinos
de a, que se diferencian en una ULP. Esta consigna es mas ambiciosa que
la de la generalidad de los textos de Metodos Numericos, pero asegura la
consistencia y robustez de los resultados que vamos a obtener.
Aproximaci on inicial: Para que el proceso de generacion de la secuen-
cia x
i
comience, es necesario que el metodo numerico tenga un punto de
partida. A este se lo conoce como aproximacion inicial, o x
0
. En funcion del
metodo que se esta usando, este valor puede requerir mas o menos esfuer-
zo para encontrarlo adecuadamente. Los metodos que tienen convergencia
global, son robustos, en el sentido de que funcionan a un con aproximaciones
iniciales alejadas de la raz a. En cambio, los de convergencia local necesitan
x
0
mas proximas a a. Sin embargo, la rapidez de convergencia de estos es
superior.
8
1.2. B usqueda del cambio de signo
Al programar un metodo numerico, hay que decidir si el trabajo de en-
contrar x
0
lo vamos a dejar al usuario, o si proveeremos un algoritmo previo
para hallarla. Aunque la primera solucion es com un, preferiremos adoptar la
segunda, mas completa.
1.2.1. Formas de b usqueda de la aproximacion inicial de la raz
de una ecuacion.
Surge naturalmente la idea de hacer un graco de la funcion f(x) para
apreciar en el las abscisas de los puntos de corte con el eje x, es decir, las
races. Aunque en general la precision de un graco com un no nos va a per-
mitir leer en el mas de dos o tres cifras de la raz, en la mayora de los casos
esta aproximacion sera suciente para generar a partir de ella la secuencia
de b usqueda
6
.
Ya que nuestro proposito es automatizar la determinacion de x
0
, y a la compu-
tadora, mas facil que analizar un graco, le es extraer la informacion de los
datos a partir de los cuales se genera ese graco: es decir, de una tabla de
valores de (x, f(x)), adoptaremos ese enfoque y construiremos antes que na-
da esa tabla de valores.
Puesto que pretender que en ella encontremos ordenadas nulas es pensar en
lo excusado, lo que buscaremos en la tabla - bajo la hipotesis de continuidad
de la funcion real f(x) - sera aquellos intervalos en los cuales la funcion ha
cambiado de signo, ya que en ellos se encontrar an las races.
1.2.2. Datos para la b usqueda del cambio de signo
Denicion de la funcion: Para que el computador calcule la tabla de va-
lores se requiere, antes que nada, darle a conocer la funcion real (f(x) R)
con la que va a trabajar. Como la unica restriccion del metodo -que luego po-
dremos incluso suavizar- es la hipotesis de continuidad de f, deberamos ser
capaces de especicar como dato, en tiempo de ejecucion, cualquier expresion
continua que queramos, sea esta polinomica o trascendente, racional o irra-
cional. Para reconocerla y procesarla, el programa que maneje la b usqueda
6
Para ciertos tipos de ecuaciones se puede separar la funcion en partes, gracarlas inde-
pendientemente, y estimar las abscisas de los puntos de interseccion. Ej: en xtan(x) = 0,
se pueden gracar y = x y y = tan(x).
En otros casos es posible tambien hacer consideraciones de tipo analtico para aproximar-
nos a la raz (ver en [DM72] varios ejemplos), pero estos son analisis particulares, validos
solo para cada ecuacion.
9
debera tener capacidades de reconocimiento sintactico; ser capaz de conver-
tir una secuencia de caracteres en una regla de evaluaci on, que reconozca
operadores, funciones y operandos; y a partir de ellos invocar a operaciones
y funciones adecuadas, atendiendo a la prioridad de los operadores, a los
signos de agrupacion, etc.
El reto no es trivial, aunque ciertos lenguajes de programacion, o al menos
algunos de sus dialectos, pueden tener incorporada esa capacidad en la in-
terfaz de entrada de datos. Y el adentrarnos en los detalles de tal analizador
sint actico esta fuera de los propositos de este curso
7
. La forma mas sencilla de
cortar este nudo gordiano, que adoptaremos por ahora, es introducir la deni-
cion de la funcion en el programa fuente. Claro esta que dependeremos de el,
ya que necesitaremos editarlo antes de cada corrida para cambiar la funcion
que vamos a utilizar, ademas de que en cada ejecucion podremos resolver
una sola ecuacion; pero por ahora es la unica forma de seguir adelante.
Intervalo de b usqueda: Dato imprescindible para construir la tabla de
valores sera el intervalo I = [A, B] R en que buscaremos las races. Este
intervalo debe ser adecuado, y en muchas ocasiones esta mas o menos deter-
minado por el conocimiento que tengamos del problema fsico modelado con
nuestra ecuacion. Por ejemplo, si la variable es el tiempo t, suelen no tener
sentido valores de t < 0. Si estamos dise nando la carga de dise no de una
columna, no podra ser negativa (es decir, de tension); ni mayor que la carga
de pandeo (que ya inutiliza a la estructura), etc.
En algunos tipos de ecuaciones -concretamente, en las polinomicas- se pue-
den calcular por metodos rapidos las cotas de las races, lo cual permite
determinar el intervalo I = [A, B] apropiado. Otras veces son condiciones
matematicas de existencia de valores reales de la funcion las que determinan
uno o ambos extremos. Finalmente, un graco elaborado por alg un software
estandar de los que hay muchos en el mercado, o a un por nosotros mismos,
nos puede se nalar los valores de A y B convenientes. Por el momento, su-
pondremos que contamos con esos datos.
Paso de recorrido: Otro dato imprescindible para poder construir la tabla
de valores es el del incremento que tomaremos para avanzar desde A hasta
B, el cual determina el n umero de puntos en que dividiremos al intervalo
de b usqueda. Los dos conceptos son practicamente equivalentes y, en vez de
ingresar el tama no del incremento, se puede especicar el n umero de puntos
7
El MATLAB puede hacerlo de varias maneras, una de las cuales es leer la expresion:
expr=input(Funcion ,s); y luego convertirla en funcion utilizando f=inline(expr); .
10
equidistantes que escogeremos para cubrir I = [A, B].
El dato de la longitud del incremento, al que llamaremos PASO, es el que
requiere mas criterio de parte del usuario, y representa un tpico compromiso
de ingeniera, entre dos tendencias opuestas:
Un PASO demasiado peque no implica mucho trabajo extra, con poca retri-
bucion en resultados. Hay que recordar que la evaluaci on de la funcion f
es el proceso mas costoso en terminos de tiempo de CPU, y f puede ser
arbitrariamente complicada, de modo que aumentar gratuitamente el n ume-
ro de evaluaciones afecta gravemente a la ecienca de todo el proceso. La
b usqueda del cambio de signo es solo una etapa previa a la solucion de la
ecuacion, y cuando ya entremos en este tema nos preocupara la eciencia de
cada metodo. Pero no tiene mayor sentido exigir eciencia en el proceso nal
si el previo desperdicia despreocupadamente el tiempo de CPU y, en de-
nitiva, vuelve ineciente al procedimiento total. La otra tendencia, es decir,
escoger un PASO grande, tiene tambien sus desventajas: podra suceder que
en este caso no detectemos todos los cambios de signo que se presentan en el
intervalo, con lo cual no vamos a poder determinar todas las races buscadas.
No hay una forma perfecta de seleccionar un PASO adecuado, pues depende
de cada funcion. Un graco puede ayudar mucho pero, obviamente, tambien
para dibujar el graco se necesita determinar un incremento apropiado. De
cualquier manera, si contamos con un buen software de gracacion, que toma
su propio incremento sin consultarnos, al menos no se nos presenta el dilema,
y es probable que, con el graco a la vista, no haya dicultad en escoger una
longitud adecuada, incluso optima, para el PASO. Pero tambien hay casos de
funciones que presentan, por ejemplo, discontinuidades, en los que muchos
programas de gracacion no hacen un trabajo conable, y se requiere mas
analisis para escoger el PASO. (Ver la gura 3 y el segundo ejemplo de 2.1.4)
Otra limitacion que tiene la b usqueda del cambio de signo para determinar
aproximaciones a las races de una ecuacion se reere a las races m ultiples:
si son de orden par, no producen cambio de signo, as que no van a ser detec-
tadas; y, si de orden impar, el cambio de signo no advierte su multiplicidad
8
.
Como sustento teorico para los metodos de solucion de una ecuacion, vamos
a establecer hipotesis acerca del PASO, aun cuando en determinados casos
estas seran difciles, si no imposibles, de cumplir simultaneamente:
8
Una forma de manejar el problema sera buscar los cambios de signo de la funcion
f (que determina las races de orden impar) y de su derivada
df
dx
(para detectar las de
orden par), pero solo con mucho analisis se puede resolver completamete el problema de
las races m ultiples. Lo enfrentaremos mas adelante.
11
Hipotesis del PASO:
P
1
.- El PASO sera sucientemente grande como para que no atente
contra la eciencia del proceso global.
P
2
.- El PASO sera sucientemente peque no como para que no haya mas
de un cambio de signo dentro de cualquier subintervalo
9
.
1.2.3. Hipotesis de la b usqueda del cambio de signo. Analisis e
implementaci on del algoritmo.
Hipotesis:
S
1
: f : R R C
0
[A, B] (continuidad)
S
2
: No hay mas de una raz entre [xi, xd]. (Es la misma P
2
)
El algoritmo de la b usqueda del cambio de signo toma un subintervalo
de longitud PASO, cuyos puntos extremos son (xi, yi) y (xd, yd), y, comen-
zando desde el extremo izquierdo del intervalo de b usqueda [A, B], lo va
desplazando a lo largo del eje de las abscisas. En cada posicion, a partir de
las respectivas ordenadas yi y yd, determina si en el subintervalo en cuestion
la funcion cambia o no su signo. (Lo hace analizando el signo del producto
yi.yd
10
, que es positivo si los signos coinciden y negativo si no). Los inter-
valos que contienen cambio de signo, bajo la hipotesis de continuidad de la
funcion, contienen tambien una raz, y son los apropiados para que en ellos
los metodos numericos respectivos determinen la aproximaci on con la tole-
rancia que se haya especicado: un punto cualquiera de ellos puede tomarse
como aproximaci on inicial. En cambio, los subintervalos sin cambio de signo
no son interesantes, y sencillamente se los deja atras para continuar con la
b usqueda.
Aunque no es el proposito de este procedimiento encontrar races exactas
de la ecuacion, en caso de que, por improbable casualidad, aparezca una or-
denada nula, el algoritmo debe detectarla e imprimirla. Si ha sido una yd,
ademas, hay que evitar que en el siguiente paso vuelva a aparecer como yi
(lo que ocasionara que se repita la impresion de la abscisa, dando la erronea
sensacion de que se trata de una raz doble).
En el caso de que la hipotesis de continuidad no se cumpla, un cambio de
signo puede ser provocado por una discontinuidad, pero sera detectado en
la misma forma. Depende, entonces, del metodo numerico al que se le confe
9
Esta hipotesis nunca se cumplira en el caso de races m ultiples.
10
Para evitar errores cuando las ordenadas tengan parte imaginaria, debe usarse
real(yi).real(yd). Vease el parrafo sobre el cambio de signo en el metodo de biseccion.
12
llegar a la raz aproximada, evitar el error de confundir la discontinuidad con
una raz.
Note que para determinar si se ha completado la b usqueda, se compara xi, y
no xd, con B. De esta manera, si el ultimo subintervalo queda solo parcial-
mente dentro de [A, B], todava se lo examina, pues se considera preferible
hallar una raz ligeramente fuera del intervalo que dejar de encontrar una
que este dentro de el.
En la implementaci on en MATLAB que sigue se hace uso de la facilidad que
presta el lenguaje para denir una funcion en lnea (f=inline(expr)), y, luego
de procesada una ecuacion, el guion regresa a pedir otra, hasta que ya no se
ingrese ninguna mas. De esta manera, en una sola corrida se pueden resolver
varias ecuaciones. En un ambiente sin ese tipo de facilidades, se puede denir
la funcion directamente dentro del programa fuente, pero habra que editar
el codigo cada vez que se quiera cambiar de ecuacion.
1.2.4. Algoritmo de b usqueda del Cambio de signo
expr=ok;
while expr
clc
%Lee repetitivamente la funcion y los datos basicos
expr=input(Funcion cuyos ceros busca \n,s);
if isempty(expr), return, end
R=;
while size(R,2)<2
R=input(Extremos del rango: );
end
A=R(1);B=R(2);
paso=input(Paso de recorrido: );
tolx = 0;
while isempty(tolx) | tolx == 0
tolx=input(Tolerancia x: );
end
nmax=input(NMAX si el metodo necesita leerlo: );
%Define como funcion la expresion leda
f=inline(expr);
%Busqueda del cambio de signo:
xi=A;yi=f(xi);
while xi<B
xd=xi+paso;yd=f(xd);
if yi*yd ~= 0
if real(yi)*real(yd)< 0
%Hallo cambio de signo
fprintf(Hallo cambio de signo entre %6.3f y %6.3f\n\n,xi,xd)
%Vaya al metodo numerico:
[ri,rd]=metnum(f,xi,xd,yi,yd,tolx);
if isempty([ri rd])
fprintf(No convergio.\n)
else
if ri~=rd
fprintf(Raz en [%20.15e , %20.15e]\n\n,ri,rd)
else
fprintf(Raz en %20.15e\n\n,ri)
13
end
end
end
xi=xd;yi=yd;
else
if yi==0
fprintf(La raz es %20.15e\n\n,xi)
xi=xd;
yi=yd;
else
fprintf(La raz es %20.15e\n\n,xd)
xi=xd+paso;
yi=f(xi);
end
end
end
fprintf(\n Proceso terminado\n)
fprintf( <Para continuar, digite algo>)
pause
end
2. Metodos de cambio de signo (De intervalo,
de encierro o sin derivadas)
El primer grupo de metodos, llamados de cambio de signo utilizan ese
criterio para ahorquillar cada raz y llegar a encerrarla en un intervalo su-
cientemente estrecho como para satisfacer la tolerancia especicada.
Solo se los puede utilizar a partir de un intervalo que contenga cambio de
signo, por lo cual es indispensable haber pasado previamente por ese proceso,
el cual conectara con el metodo respectivo en el momento en que yi yd < 0
(ver guion de la pag. 11).
Los metodos de este grupo se apoyan en las siguientes hipotesis:
C
1
: f : R R C
0
[xi, xd]. (Continuidad de f)
C
2
: yi yd < 0.
C
3
: No hay mas de un cambio de signo en [xi, xd]. (Es la misma P
2
)
C
4
: La tolerancia horizontal usada es adecuada.
2.1. Metodo de biseccion
El metodo de biseccion, tambien llamado dicotomico o metodo de Bol-
zano, esta basado en el teorema de este matematico checo, que arma que
una funcion continua toma en un intervalo todos los valores comprendidos
entre las ordenadas de sus extremos.
Es el metodo emblematico de este grupo, y consiste en encerrar a la raz en
14
intervalos cuya longitud en cada iteracion es la mitad de la precedente. A
partir del intervalo de partida [xi,xd], de longitud PASO, que se ha obtenido
mediante la b usqueda del cambio de signo, de modo que yi yd < 0, se cal-
cula el punto medio
11
x = xi +
xdxi
2
. Luego se escoge cual de las dos mitades
contiene el cambio de signo (evaluando, por ejemplo, yi y), y esa sera el
nuevo [xi,xd]. Notese que el extremo izquierdo solo puede moverse hacia la
derecha, y el derecho solo hacia la izquierda, lo cual produce dos sucesiones
convergentes y acotadas. Puede demostrarse que el lmite de estas secuencias
es la raz a. Este procedimiento se repite hasta que la longitud llegue a ser
menor que la tolerancia absoluta tolx especicada, o, eventualmente, hasta
que nos topemos con la granularidad del sistema de punto otante, en cuyo
caso el punto medio x coincidira con el extremo xi.
Cuando la diferencia xdxi < tolx, cualquier punto del intervalo puede con-
siderarse raz aproximada, de acuerdo con el criterio (2), pues su distancia a
la raz exacta en ning un caso puede ser mayor que la tolerancia. Este sera, en-
tonces, el criterio de vericaci on de convergencia que se usara en biseccion, el
cual, ademas, cumple con el objetivo ya expuesto anteriormente, de determi-
nar un intervalo que contenga a la raz, limitado por dos n umeros de maquina.
Si las hipotesis indicadas para este grupo de metodos se cumplen, bisec-
cion converge siempre; es uno de los mejores y mas efectivos; y es el mas
claro, seguro y robusto de los metodos de este captulo. La formula del pun-
to medio en que se basa es independiente de las ordenadas, y esto la hace
inmune a los errores de redondeo en el calculo de la funcion. Si estos llegan
a afectar, cuando se usan tolerancias muy peque nas, al signo de la funcion,
no es culpa del metodo de biseccion, sino del algoritmo que eval ua f(x).
En cuanto a su programacion, resulta mas sencilla y corta que la de otros
metodos, y puede hacerse en forma iterativa o recursiva.
2.1.1. N umero maximo de iteraciones
Una de las ventajas de biseccion es que, por su extrema regularidad, se
puede anticipar el n umero de iteraciones necesarias para llegar a satisfacer
una tolerancia dada, mientras esta no exija mayor precision de la que tiene
el sistema de punto otante que se esta empleando.
Puesto que, al comenzar el metodo, tenemos un intervalo de longitud PASO,
y en cada iteracion este se va reduciendo a la mitad, se tiene en la iteracion
i la longitud L
i
=
PASO
2
i
. El n umero maximo necesario de iteraciones sera,
11
La razon de utilizar esta formula en lugar de la mas usual
xi+xd
2
es su mayor estabilidad
numerica, como se vera mas adelante.
15
entonces, el que satisfaga por primera vez la tolerancia horizontal:
PASO
2
NMAX
< tolx 2
NMAX
>
PASO
tolx
NMAX > log
2
_
PASO
tolx
_
y, dado que NMAX debe ser entero:
NMAX =
_
log
2
_
PASO
tolx
__
+ 1 (9)
Si se cumplen las hipotesis del metodo, la convergencia debe darse maximo en
este n umero de iteraciones. Maximo, porque hay una remota posibilidad de
que converja en menos, lo cual sucede si es que en una iteracion i < NMAX
el punto medio coincide exactamente con la raz a, y ademas los errores de
redondeo en la evaluaci on de la funcion en ese punto se anulan entre s. La
funcion de la pagina 17 toma en cuenta esta posibilidad.
Ejemplo: Si partimos de un paso unitario, con [xi, xd] = [1, 2] y quere-
mos llegar a determinar en precision doble los dos n umeros de maquina
mas cercanos que encierran a una raz, tol
x
= 2
53
=
1
2
URL, lo cual da
NMAX = log
2
(2
53
)| + 1 = 54. En cambio, el calculo exhaustivo secuencial
requerira, en promedio,
1
2
2
52
2.2518E15 evaluaciones para determinar
el mismo intervalo.
2.1.2. Casos de incumplimiento de hipotesis
C
1
: Continuidad: Ante todo, se supone que f es una funcion real, pues
en caso contrario un cambio de signo no necesariamente encierra una raz.
Cumplido este requisito basico, si la funcion no es continua en [xi, xd] el cam-
bio de signo encontrado en el puede corresponder, no solo a una raz, sino
tambien a una discontinuidad. Incluiremos en el algoritmo una comprobacion
que intente detectar este problema. El uso exclusivo de una tolerancia verti-
cal, como ya se discutio, tiene la dicultad de la determinacion de su valor
adecuado, que depende del condicionamiento del problema en la funcion f.
Preferiremos, entonces, detectar si, en las sucesivas iteraciones, el modulo de
la ordenada va disminuyendo (convergencia a una raz) o no (probable dis-
continuidad). En la funcion 2.1.4 se lleva esto a cabo mediante el calculo de
la variable yy, cociente de las dos ultimas ordenadas en cada iteracion, que
debera ser menor que uno cuando ya se haya llegado a satisfacer la tolerancia
para que el resultado sea aceptado como raz. De todas maneras, se puede
a nadir una comprobacion de tolerancia vertical, evaluada con la formula (5)
de la pagina 4, asimilando m a la derivada numerica de f entre los dos extre-
mos del intervalo alcanzado. Con estos a nadidos, el metodo va a funcionar
correctamente tambien en la mayora de los casos en que un cambio de signo
sea provocado por una discontinuidad.
16
C
2
: Cambio de signo: Aunque esta hipotesis debe siempre cumplirse, y la
implementaci on de los algoritmos 1.2.4 y 2.1.4 debe garantizarlo, es posible,
si se hacen los calculos manualmente, que errores en la evaluaci on de la fun-
cion lleven a entrar a bisectar un intervalo que no contenga cambio de signo.
Si bien, obviamente, en este caso no se puede pretender llegar a un resultado
correcto, resulta interesante analizar lo que sucedera, para diagnosticar el
error cometido.
Puesto que el algoritmo de biseccion determina el cambio de signo mediante
el producto y yi, en el caso indicado es claro que ese producto sera siempre
positivo, y, por consiguiente, producira el desplazamiento hacia el centro del
extremo izquierdo del intervalo (x = xi, y = yi). Cuando se llegue a veri-
car la convergencia, el extremo derecho xd sera el mismo del inicio, pero el
izquierdo se habra acercado mucho a el. La respuesta sera Probable discon-
tinuidad en [xi, xd] (si no se esta usando la toly de la formula (5) podra
tambien decir que se trata de una raz, si [f(x)[ es decreciente) y la perma-
nencia de xd debera ser una advertencia sobre el posible error cometido.
En forma paralela, al usar en la implementaci on MATLAB o lenguajes simi-
lares, que manejan variables complejas, pueden detectarse cambios de signo
espurios al evaluar yi.yd, y luego, en cada iteracion, en y.yi, lo cual indica
siempre cambio de signo en la mitad izquierda. En ese caso, se producira un
comportamiento simetrico al anterior, pero esta vez variar a solo el extremo
derecho, y la respuesta mantendra la xi original del intervalo.
Para ilustrarlo, sea f(x) = x +

x
2
10, x
1
= 2 y x
2
= 2.25. Al evaluar la
funcion obtenemos y
1
= f(x
1
) = 2 + 2.4495i, y
2
= f(x
2
) = 2.25 + 1.7139i,
de donde el producto y
1
.y
2
= 0.9429 + 9.9554i, cuya parte real tiene signo
negativo, por lo cual el MATLAB lo considera menor que cero, y detecta un
cambio de signo inexistente entre x
1
y x
2
.
En este tipo de lenguajes se requiere, entonces, utilizar la parte real de las
variables al hacer el producto: real(yi).real(yd), lo cual evita el problema.
C
3
: Un solo cambio de signo en el intervalo: Si no se cumple con esta
hipotesis, es decir, si se tiene un n umero impar mayor que uno de cambios de
signo en el intervalo, el metodo de biseccion se concentrar a solo en uno, que
depende de la distribucion de las races (o discontinuidades) en el intervalo.
C
4
: Tolerancia adecuada: No es posible satisfacer una tolerancia dema-
siado peque na para la precision de la maquina, que implicara exceder el
n umero de dgitos signicativos correctos disponibles en la mantisa. Un in-
tento de hacerlo desembocara en el mensaje de No convergencia en el
n umero maximo de iteraciones (de hecho, es el unico caso en que se presenta
17
este mensaje en el metodo de biseccion). Veamos cual debera ser, entonces,
la tolerancia mnima admisible.
Si el programa pide ingresar como dato la tolerancia relativa tolr
x
, esta no
puede ser menor que el epsilon de maquina, ya que es la magnitud que puede
alcanzar el error relativo siempre presente en la representacion de un n umero.
Si se trabaja con la tolerancia horizontal absoluta tol
x
, no podramos acep-
tar un valor menor que [a[eps < [a[tolr
x
, pero, al no conocer a, debemos
acotarlo
12
: tol
x
sera, entonces > mn
[|xi|,|xd|]
tolr
x
. Aunque estrictamente la
tolerancia mnima cambiara, seg un esto, en cada iteracion, por simplicidad
en la funcion de la pagina 17 se la ha calculado solo al comienzo del proceso.
2.1.3. Justicacion de la formula del punto medio
Comprobemos que el algoritmo escogido para el calculo del punto medio
es el mas adecuado desde el punto de vista numerico, preferible al mas obvio
x =
xi+xd
2
. La razon se desprende de los diagramas de Bauer de la gura 2.
XI
XI
/
1
X
1
XD
XD/
1
2
-1
XI
-XI
/
1
X
-XI
/
X
1
XD
XD/
1
X
2
-1

0
0
0
0

1
1

1
1
3
2
/
2
XI
XD XI
XD
+
/
_
/
+
Figura 2: Algoritmos para el calculo del punto medio
En el primer algoritmo,
A
1
x
.
=
1
, y acotando, [
A
1
x
[ eps, que se mantie-
ne constante a lo largo de todo el proceso.
En cambio, en el algoritmo de la derecha, que es el escogido, [
A
2
x
[
xdxi
|xi+xd|
eps,
12
Si estamos con la menor tolr
x
admisible, para no infringir la cota anterior debera
usarse tol
x
max
[|xi|,|xd|]
tolr
x
.
18
y cuando xi xd su lmite es cero.
La superioridad del algoritmo escogido para determinar el punto medio se
nota, entonces, cuando se estan alcanzando ya los ultimos dgitos de la man-
tisa, como se ilustra en el siguiente ejemplo, elaborado para un sistema de
punto otante con = 10 y 3 dgitos signicativos:
Si xi = 0.961 y xd = 0.963, el calculo con el algoritmo 1 da: x = 0.5(0.961 +
0.963) = 0.5 1.92 = 0.960 Es decir, el valor calculado, no solo que no es
correcto, sino que ni siquiera pertenece al intervalo!.
Con el segundo algoritmo, en cambio:
x = 0.961+0.5(0.9630.961) = 0.961+0.50.002 = 0.962 , que es correcto.
2.1.4. Algoritmo de biseccion
function [ri,rd]=bisect(f,xi,xd,yi,yd,tolx)
nmax=floor(log2((xd-xi)/tolx))+1;
yy=0;
for it=1:nmax
x=xi+.5*(xd-xi);
y=f(x);
if y==0
ri=x;rd=x;
return
elseif yi*y<0
xd=x;
yy=y/yd;
yd=y;
else
xi=x;
yy=y/yi;
yi=y;
end
end
if xd-xi>tolx
fprintf(Tolerancia absoluta %15.7e demasiado peque~na para la precision del punto
flotante\n,tolx)
ri=;rd=;
return
end
%Chequea continuidad
ri=xi; rd=xd;
if yy>=1
fprintf( Probable discontinuidad y no )
end
return
2.1.5. Resultados de la corrida del programa
Ejercicio: Implementar el metodo de biseccion, de acuerdo con los lineamientos dados
y la funcion indicada.
Ejemplo: Se incluye a continuacion la tabla de resultados obtenidos con el metodo
de biseccion en la ecuacion x
3
x 1 = 0
Extremos del rango: [-3 4] Paso de recorrido: 1 Tolerancia x: 5e-4
19
ECUACI

ON: x^3-x-1 = 0
Metodo de biseccion
Hallo cambio de signo entre 1.000 y 2.000
it xi yi xd yd x y
----------------------------------------------------------------------
0 1.00000000 -1.000e+000 2.00000000 5.000e+000
1 1.00000000 -1.000e+000 1.50000000 8.750e-001 1.50000000 0.875000
2 1.25000000 -2.969e-001 1.50000000 8.750e-001 1.25000000 -0.296875
3 1.25000000 -2.969e-001 1.37500000 2.246e-001 1.37500000 0.224609
4 1.31250000 -5.151e-002 1.37500000 2.246e-001 1.31250000 -0.051514
5 1.31250000 -5.151e-002 1.34375000 8.261e-002 1.34375000 0.082611
6 1.31250000 -5.151e-002 1.32812500 1.458e-002 1.32812500 0.014576
7 1.32031250 -1.871e-002 1.32812500 1.458e-002 1.32031250 -0.018711
8 1.32421875 -2.128e-003 1.32812500 1.458e-002 1.32421875 -0.002128
9 1.32421875 -2.128e-003 1.32617188 6.209e-003 1.32617188 0.006209
10 1.32421875 -2.128e-003 1.32519531 2.037e-003 1.32519531 0.002037
11 1.32470703 -4.659e-005 1.32519531 2.037e-003 1.32470703 -0.000047
----------------------------------------------------------------------
Raz en [1.324707031250000e+000 , 1.325195312500000e+000]
Ejemplo: Al buscar las races de la ecuacion
x
3
x1
x
2
2.7x+1.82
, el resultado debe ser igual
que el anterior, pero en este caso hay discontinuidades provocadas por el denominador al
anularse, que deben ser manejadas correctamente.
Un graco cuidadoso de la funcion (Figura 3) nos muestra su comportamiento en el
intervalo crtico: La aplicacion del metodo de biseccion en este caso da lugar a las siguientes
1.15 1.2 1.25 1.3 1.35 1.4 1.45 1.5 1.55 1.6
1000
800
600
400
200
0
200
400
600
800
1000
Y=(X
3
X1)/(X
2
2.7x+1.82)
Figura 3: Comportamiento de la funcion
tablas, en donde se puede ver que detecta la diferencia entre races y discontinuidades.
20
Notese que se uso un paso mucho mas peque no que en el ejemplo anterior para que se
pudieran aislar los tres casos signicativos:
Extremos del rango: [1 2] Paso de recorrido: .028 Tolerancia x: 5e-4
ECUACI

ON:(x^3-x-1)/(x^2-2.7*x+1.82) = 0
Metodo de biseccion
Hallo cambio de signo entre 1.280 y 1.308
it xi yi xd yd x y
------------------------------------------------------------------------------------
0 1.28000000e+00 -7.619e+01 1.30800000e+00 9.537e+01
1 1.29400000e+00 -2.001e+02 1.30800000e+00 9.537e+01 1.29400000e+00 -200.125
2 1.29400000e+00 -2.001e+02 1.30100000e+00 9.993e+02 1.30100000e+00 999.254
3 1.29750000e+00 -4.416e+02 1.30100000e+00 9.993e+02 1.29750000e+00 -441.563
4 1.29925000e+00 -1.403e+03 1.30100000e+00 9.993e+02 1.29925000e+00 -1403.478
5 1.29925000e+00 -1.403e+03 1.30012500e+00 8.210e+03 1.30012500e+00 8209.557
6 1.29968750e+00 -3.326e+03 1.30012500e+00 8.210e+03 1.29968750e+00 -3326.293
------------------------------------------------------------------------------------
Probable discontinuidad y no Raz en [1.2996875000e+00 , 1.3001250000e+00]
Hallo cambio de signo entre 1.308 y 1.336
it xi yi xd yd x y
------------------------------------------------------------------------------------
0 1.30800000e+00 9.537e+01 1.33600000e+00 -2.110e+01
1 1.32200000e+00 6.738e+00 1.33600000e+00 -2.110e+01 1.32200000e+00 6.737
2 1.32200000e+00 6.738e+00 1.32900000e+00 -8.904e+00 1.32900000e+00 -8.904
3 1.32200000e+00 6.738e+00 1.32550000e+00 -1.757e+00 1.32550000e+00 -1.756
4 1.32375000e+00 2.277e+00 1.32550000e+00 -1.757e+00 1.32375000e+00 2.277
5 1.32462500e+00 2.136e-01 1.32550000e+00 -1.757e+00 1.32462500e+00 0.213
6 1.32462500e+00 2.136e-01 1.32506250e+00 -7.826e-01 1.32506250e+00 -0.783
------------------------------------------------------------------------------------
Raz en [1.324625000000000e+000 , 1.325062500000001e+000]
Hallo cambio de signo entre 1.392 y 1.420
it xi yi xd yd x y
------------------------------------------------------------------------------------
0 1.39200000e+00 -4.147e+02 1.42000000e+00 1.847e+02
1 1.39200000e+00 -4.147e+02 1.40600000e+00 5.872e+02 1.40600000e+00 587.16
2 1.39900000e+00 -3.425e+03 1.40600000e+00 5.872e+02 1.39900000e+00 -3425.50
3 1.39900000e+00 -3.425e+03 1.40250000e+00 1.390e+03 1.40250000e+00 1390.15
4 1.39900000e+00 -3.425e+03 1.40075000e+00 4.601e+03 1.40075000e+00 4600.99
5 1.39987500e+00 -2.751e+04 1.40075000e+00 4.601e+03 1.39987500e+00 -27505.59
6 1.39987500e+00 -2.751e+04 1.40031250e+00 1.102e+04 1.40031250e+00 11022.37
------------------------------------------------------------------------------------
Probable discontinuidad y no Raz en [1.3998750000e+00 , 1.4003125000e+00]
2.1.6. Uso de la tolerancia relativa.
Al denir races computables al comienzo de este captulo, se menciono que
la tolerancia horizontal relativa tol
r
x tiene la ventaja de ser invariante con
respecto a cambios de escala en la ecuacion, y que una determinada tole-
rancia relativa, aplicada en cualquier sector de la recta de punto otante,
21
especica siempre la misma precision - es decir, n umero de dgitos signica-
tivos correctos, que va asociado con la cota superior del error relativo - de la
raz buscada. Esta caracterstica hace ventajoso su uso, y vamos a discutir
las implicaciones que tendra en la implementaci on del metodo de biseccion:
Lectura de datos: La lectura de tol
r
x junto con el intervalo de b usqueda
y el paso sustituira a la de la tolx absoluta, con mas propiedad, puesto
que, como dijimos, determina la misma precision en todas las races
buscadas.
N umero maximo de iteraciones: La formula (9) depende de tolx, y, a su
vez, puesto que tolx = [a[tol
r
x, de cada raz que se busque. Puesto que
no conocemos a, deberemos acotar NMAX, por el lado de la seguridad,
empleando la formula
NMAX =
_
log
2
_
PASO
mn[xi[, [xd[tol
r
x
__
+ 1 (10)
A mas de usarla al entrar al intervalo donde se ha ubicado el cambio de
signo, esta formula podra aplicarse luego de cada iteracion, ajustando
as dinamicamente el valor de NMAX (que podra ir decreciendo),
pero, para un PASO peque no, no parece necesario hacerlo.
Vericacion de la convergencia: Como ya se anoto, se requiere tol
r
x >
eps para no exceder la precision de la representaci on numerica de punto
otante, exceso que desemboca en no convergencia. Tomando eso en
cuenta, la vericacion xd xi < tolx se convertira en xd xi <
mn[xi[, [xd[tol
r
x, siempre y cuando mn[xi[, [xd[tol
r
x no sea menor
que [ a [ eps. Si la tol
r
x es muy cercana a eps esto quiere decir que
resulta preferible usar xd xi < max[xi[, [xd[tol
r
x.
2.1.7. Estimacion del error en biseccion
Bajo el enfoque de intervalos en que lo hemos visto, este metodo genera, mas que
una secuencia de aproximaciones numericas a la raz, una de intervalos decrecientes que
la contienen, cualquiera de cuyos puntos interiores tiene igual derecho de ser considerado
como la aproximacion momentanea de la iteracion, y, al nal, como la raz computada. Sin
embargo, otros autores (por ejemplo, [CC98]) designan al punto medio de cada iteracion
como el nuevo termino de la secuencia de aproximaciones puntuales, desechando la con-
sideracion del resto de puntos factibles en el intervalo; y con respecto a ese punto medio
establecen cotas de error absoluto y relativo, es decir, medidas de la maxima distancia
posible a la raz. En ese caso el estudio de los valores exactos del error (que solo se pueden
calcular si se conoce de antemano la raz) muestra un comportamiento irregular, puesto
que, si la raz ha cado en una iteracion cerca de un punto medio (a una distancia menor
a la cuarta parte del intervalo [xi, xd]), se alejara del proximo. Las cotas aproximadas (
x
22
(utilizando cada punto medio como valor de la raz) o maximas (
I
(considerando la opcion
mas pesimista dentro de los puntos del intervalo) disminuyen en cambio regularmente (-
gura 4). De hecho (
x
, muy cercana a la cota matematica (
I
adelantada en una iteracion,
resulta mas cercana al error verdadero que esta, usada en el punto anterior, y con ella se
podra vericar la convergencia. Las respectivas formulas son:
[
x
[ =

x a
a

(
x
=
xd xi
[xd + xi[
(
I
=
xd xi
mn([xd[, [xi[)
1 2 3 4 5 6 7 8
0
1
2
3
4
5
6
7
8
BISECCION: Cotas de error relativo por iteracin.
667.38./x.*(1exp(0.146843*x))40 = 0
Error relativo exacto.
Cota aproximada (usando el punto medio).
Cota mxima (usando el intervalo).
Figura 4: Error relativo en biseccion ( %)
Ejercicio: Programar el metodo de biseccion usando tolerancia horizontal relativa tol
r
x.
23
2.2. Metodo de falsa posicion FPS (Regula falsi )
El metodo de falsa posicion, tambien llamado Regula falsi, es decir regla
falsa, lo que indica sus antiguos orgenes, que datan de cuando a un el latn
era el idioma ocial de la ciencia, tiene la misma base e iguales hipotesis que
el de biseccion: se trata de encerrar a cada raz en un intervalo cada vez mas
peque no, escogiendo en cada iteracion el segmento apropiado. A diferencia
del anterior, este toma en cuenta los valores de la funcion para la seleccion
del punto de prueba y hace la suposicion (la regla falsa) de que la raz se
encuentra mas cerca de aquel extremo en el que la ordenada es mas peque na.
Como se puede comprobar facilmente, esta suposicion implica la linealidad
de la funcion, y no siempre se cumple.
El punto de division se calcula ahora como el de intersecci on de la secante
L
x
que pasa por los extremos [xi, yi] y [xd, yd] y el eje de las x, es decir, la
solucion del sistema:
_
y = L
x
y = 0
_

_
xxi
yyi
=
xdxi
ydyi
y = 0
_
Despejando x y reemplazando y se obtiene la formula fundamental del meto-
do:
x = xi + yi
xd xi
yi yd
(11)
El punto de abscisa x divide al intervalo original en dos subintervalos.
Cuando la raz se encuentra en el segmento de intervalo mas peque no, se
ha obtenido ventaja respecto al metodo de biseccion, en cuanto a la rapidez
de aproximaci on a la raz; pero si no es as, el efecto es el contrario. En la
gura 5 se puede ver el primer caso arriba y el segundo en la curva inferior.
Obviamente, a mas de la forma de la funcion, inuye tambien el intervalo en
que se ha hallado el cambio de signo.
De aqu se puede intuir que no siempre el metodo de falsa posicion converge
mas rapidamente que el de biseccion, aunque habra que discutir la forma de
vericaci on de la convergencia para llegar a una conclusion mas precisa.
En cuanto a la forma particular de la formula (11), queda para el lector
demostrar que es mas benigna numericamente que la que se podra obtener al
sacar com un denominador y simplicar terminos semejantes en el numerador.
Considerando que comparte con biseccion las hipotesis de este grupo de
metodos, y por la forma de plantearlo, pudiera parecer que falsa posicion
funcionara en forma similar a biseccion. Pero bastan algunos ejemplos para
24
1 0 1 2 3 4 5 6 7 8
0.5
0
0.5
1
y=sin((x2)/5)*cos(x/10)+0.2
1 0.5 0 0.5 1 1.5 2
2
0
2
4
6
y=x
3
x1
Figura 5: Raz en el segmento mas corto y en el mas largo
ver como diere en mas de un aspecto. Veamos el comportamiento del meto-
do con dos funciones simetricas entre s (gura 6), en donde se muestra el
proceso de 5 iteraciones en un intervalo que contiene el cambio de signo.
Como se nota, las aproximaciones obtenidas, se naladas sobre el eje con
peque nos crculos, se mueven lentamente hacia la raz solo desde un lado,
izquierdo o derecho seg un el caso. Y, por la forma de la curva, se nota que
la secante solo cortara al eje X en el lado hacia el que mira la concavidad de
la curva en la raz: nunca lograra pasar al otro lado, y por consiguiente no
se llegara a cumplir la vericaci on de convergencia que usamos tan comoda-
mente en biseccion: xd xi < tolx, ya que la diferencia xd xi no llegara a
ser menor que [x
f
a[, donde x
f
es el extremo que no se mueve.
Para averiguar cual es el extremo movil x
m
en un caso cualquiera, el analisis
muestra que, si f

(x) no cambia de signo en [xi,xd], solo se mueve un extre-


mo, y es aquel en el que no coinciden el signo de la segunda derivada con el
de la funcion. Es decir, f

(x) f(x
m
) < 0.
13
Notese que el hecho de hallar dos valores sucesivos de x muy cercanos no ga-
rantiza la cercana a la raz, puesto que no la encierran. Es, entonces, preciso
recurrir a otra forma de vericar la convergencia para este caso. Trataremos
13
Si f

(x) cambia de signo en el intervalo [xi,xd], ambos extremos pueden moverse.


25
1 0 1 2
2
1
0
1
2
3
4
5
f(x)=x.
3
x1
Convergencia por la izquierda
2 1 0 1
2
1
0
1
2
3
4
5
f(x)=x.
3
+x1
Convergencia por la derecha
Figura 6: Iteraciones con falsa posicion
de mantener el mismo criterio de aritmetica de intervalos, para obtener un
entorno cerrado de la raz que la contenga; en vez de recurrir, por ejemplo a
la tolerancia vertical valiendonos de (5).
Al metodo que usaremos en este y en otros casos para lograrlo, lo vamos a
denominar Remate, y consiste en lo siguiente:
Cuando ya tengamos razones para sospechar la cercana a la raz, (si la dis-
tancia entre los dos ultimos valores de x: x1 y x, es menor que la tolerancia:
dx = [xx1[ < tolx), y ademas conozcamos que no encierran a la raz (pues
podran encerrarla en casos en que f

(x) cambie de signo en [xi, xd]) avanza-


remos la distancia dx en el sentido adecuado (que conocemos), es decir, en el
sentido de x1 a x. Sea p el resultado de este avance. Si ya p ha pasado al otro
lado de la raz (es decir, si la funcion cambia de signo entre x y p)
14
tenemos
a entre x y p y se satisface tolx para todos los puntos del intervalo [x, p].
En caso contrario, a un no hemos llegado y deben hacerse mas iteraciones. Es
de advertir que en este metodo no es facil prever el n umero de iteraciones
necesario, y NMAX en este caso debe introducirse como dato. Muchas veces
resulta suciente trabajar con NMAX de biseccion, pero no hay el mismo
14
Como siempre en el cambio de signo, puede fallar cuando el error en la evaluacion de
la funcion llega a afectar a su signo.
26
tipo de seguridad.
En el algoritmo 2.2.1 se ha implementado el metodo con estas caractersticas.
Respecto al control de discontinuidades, dado que en la formula de x inter-
vienen las ordenadas - que en el caso discontinuo tienden a crecer mucho,
junto con los errores absolutos asociados - falsa posicion suele no converger
debido al efecto de esos errores en el calculo de x. Sin embargo, si la tolx es
grande, ese efecto podra no ser suciente para evitar la convergencia a una
discontinuidad, para prevenir lo cual se puede implementar el mecanismo que
ya se menciono en biseccion.
El uso del criterio indicado permite detectar la convergencia, y muchas veces,
aunque no siempre, esta se produce en menos iteraciones que en biseccion.
Puede demostrarse que el metodo de biseccion es equivalente al de falsa po-
sicion aplicado a la funcion sign(f(x)). Sin embargo, no son raros los casos
en que la regula falsi resulta mas lenta. Un caso extremo es el siguiente:
Ejemplo: Resolver con falsa posicion la ecuacion x
20
1 = 0 partiendo del intervalo
[xi, xd] = [0.4, 2]. Comparar con el comportamiento de biseccion con los mismos datos y
la misma tolerancia.
Ejercicio: Implementar el metodo de falsa posicion, seg un los lineamientos dados y
el algoritmo siguiente.
2.2.1. Algoritmo de falsa posicion simple
function [ri,rd]=falsap(f,xi,xd,yi,yd,tolx,nmax);
%Pone el remate antes que nada
it=0; x=xi;y=yi; x1=xd;y1=yd;
while it<=nmax %Remata aun cuando it=nmax
if abs(x-x1)<tolx
if x==x1
%Ya no saca nada con proseguir
ri=;rd=;
fprintf( {x} termina en %24.16e y no cumple tolx = %8.2e\n,x,tolx)
return
end
%Remate
if y*y1==0
ri=x; rd=x;
elseif real(y)*real(y1)<0
ri=min(x,x1);rd=max(x,x1);
else
p=x+(x-x1);fp=f(p);
if fp*y==0
ri=p; rd=p;
elseif real(fp)*real(y)<0
ri=min(x,p);rd=max(x,p);
else
ri=;rd=;
end
end
if ~(isempty([ri rd]))
fri=f(ri);frd=f(rd);
27
mx=abs((frd-fri)/(rd-ri))*tolx;
if mx > 1 | abs(f(ri))>mx | abs(f(rd))>mx
fprintf( Probable discontinuidad y no )
end
return
end
end
%Aun no converge
if it<nmax
it=it+1;
x1=x;y1=y;
x=xi+yi*(xd-xi)/(yi-yd);
y=f(x);
if y==0
ri=x;rd=x;
return
elseif real(y)*real(yi)>0
xi=x;yi=y;
else
xd=x;yd=y;
end
else
break
end
end
ri=;rd=;
return
2.3. Metodo de falsa posicion modicado FPM
Las caractersticas de avance unilateral, eventual lentitud, vericacion de
convergencia menos ntida, encontrados en falsa posicion, motivan a modi-
carlo para obtener mejores prestaciones. Como la convergencia unilateral
se debe a que las secantes se anclan en el extremo que permanece jo a la
manera de un pendulo y van adquiriendo cada vez mayor pendiente, resulta
adecuado disminuirla trazando las secantes entre el extremo que se ha movi-
do y, en el extremo opuesto, un punto de igual abscisa que en falsa posicion,
pero cuya ordenada se va bisectando en cada iteracion (este punto ya no
pertenece a la curva). Con varias repeticiones llega un momento en que la
intersecci on de la secante con el eje X pasa al otro lado de la raz, y entonces
por un lado disminuye bruscamente la longitud del intervalo que contiene a
la raz, mientras por otro comienza a darse la convergencia por ambos lados,
como suceda en biseccion, lo cual permite volver a utilizar el mismo criterio
directo de vericaci on de convergencia.
Una tecnica adicional, ilustrada en la gura 7, que mejora la velocidad de
convergencia, aconseja usar falsa posicion simple cada vez que la interseccion
con el eje de las X pasa al otro lado de la raz. Esta recomendacion se ha
implementado en el algoritmo de 2.3.1, mediante el uso de la bandera M, que
toma el valor 1 si en la iteracion actual se ha movido el extremo izquierdo y
28
-1 si lo ha hecho el derecho.
Las hipotesis de este metodo modicado son las mismas del anterior.
En la gura 7 pueden verse siete iteraciones del metodo en la funcion
1 0.5 0 0.5 1 1.5 2
2
1
0
1
2
3
4
5
1 2 3 4 5 67
f(x)=x
3
x1
Figura 7: Iteraciones en falsa posicion modicado
f(x) = x
3
x 1. Las tres primeras aparecen a la izquierda de la raz;
la cuarta pasa a la derecha; la quinta y la sexta estan otra vez a la izquierda
y la septima regresa a la derecha. Puede apreciarse como en las iteraciones
cuarta y quinta se traza la secante como en falsa posicion simple, es decir, sin
bisectar la ordenada. Asimismo es evidente la mayor rapidez de aproximaci on
a la raz.
2.3.1. Algoritmo de falsa posicion modicado
function [ri,rd]=falsapmod(f,xi,xd,yi,yd,tolx,nmax);
it=0; m=0;
while xd-xi>=tolx && it<nmax
it=it+1;
x=xi+yi*(xd-xi)/(yi-yd);
y=f(x);
if y==0
ri=x;rd=x;
return
29
elseif real(y)*real(yi)>0
yy=y/yi;xi=x;yi=y;
if m~=-1
yd=yd/2;
end
m=1;
else
yy=y/yd;xd=x;yd=y;
if m~=1
yi=yi/2;
end
m=-1;
end
end
if xd-xi<tolx
ri=xi;rd=xd;
if ~(isempty([ri rd]))
fri=f(ri);frd=f(rd);
mx=abs((frd-fri)/(rd-ri))*tolx;
if yy>=1 | mx>=1 | abs(f(ri))>mx | abs(f(rd))>mx
fprintf( Probable discontinuidad y no )
end
end
return
else
ri=;rd=;
end
return
2.3.2. Resultados de las corridas de falsa posicion simple y modi-
cada
Ejercicio: Programar el metodo de falsa posicion modicado, seg un los lineamientos
dados y el algoritmo anterior.
Ejemplo: En las tablas que siguen se puede ver el resultado de aplicar Falsa posicion
simple y Falsa posicion modicada a la ecuacion de prueba. Es evidente la mayor velocidad
de convergencia del segundo, e inclusive la mayor precision alcanzada, aun cuando la
tolerancia empleada es la misma: mientras en falsa posicion simple, gracias al remate,
se ha llegado a un intervalo cuya longitud es 2.53E 4, en falsa posicion modicada se
alcanza una longitud de 8.2E 9, que permite determinar practicamente 5 dgitos mas
de la raz, y en solo 6 iteraciones, mientras FPS requirio 9 mas el remate. Una tolerancia
similar habra requerido 27 iteraciones en biseccion.
Extremos del rango: [-3 4] Paso de recorrido: 1 Tolerancia x: 5e-4
ECUACI

ON: x.^3-x-1 = 0
Metodo de falsa posicion
Hallo cambio de signo entre 1.000 y 2.000
it xi yi xd yd x y p f(p)
----------------------------------------------------------------------------------------
0 1.00000000 -1.0000e+00 2.0000 5.000e+00
1 1.16666667 -5.7870e-01 2.0000 5.000e+00 1.16666667 -5.7870e-01
2 1.25311203 -2.8536e-01 2.0000 5.000e+00 1.25311203 -2.8536e-01
3 1.29343740 -1.2954e-01 2.0000 5.000e+00 1.29343740 -1.2954e-01
4 1.31128102 -5.6588e-02 2.0000 5.000e+00 1.31128102 -5.6588e-02
5 1.31898850 -2.4304e-02 2.0000 5.000e+00 1.31898850 -2.4304e-02
6 1.32228272 -1.0362e-02 2.0000 5.000e+00 1.32228272 -1.0362e-02
7 1.32368429 -4.4039e-03 2.0000 5.000e+00 1.32368429 -4.4039e-03
30
8 1.32427946 -1.8693e-03 2.0000 5.000e+00 1.32427946 -1.8693e-03
9 1.32453199 -7.9296e-04 2.0000 5.000e+00 1.32453199 -7.9296e-04
r 1.3247845 2.8385e-04
-----------------------------------------------------------------------------------------
Raz en [1.324531986580092e+00 , 1.324784511428232e+00]
Metodo de falsa posicion modificado
it xi yi xd yd x y
---------------------------------------------------------------------------------
0 1.0000000e+00 -1.000e+00 2.0000000e+00 5.000e+00
1 1.1666667e+00 -5.787e-01 2.0000000e+00 2.500e+00 1.1666667e+00 -0.578704
2 1.3233083e+00 -6.004e-03 2.0000000e+00 1.250e+00 1.3233083e+00 -0.006004
3 1.3233083e+00 -6.004e-03 1.3265430e+00 7.796e-03 1.3265430e+00 0.007796
4 1.3247156e+00 -1.022e-05 1.3265430e+00 7.796e-03 1.3247156e+00 -0.000010
5 1.3247180e+00 -1.736e-08 1.3265430e+00 3.898e-03 1.3247180e+00 -0.000000
6 1.3247180e+00 -1.736e-08 1.3247180e+00 1.730e-08 1.3247180e+00 0.000000
---------------------------------------------------------------------------------
Raz en [1.324717953173593e+00 , 1.324717961302051e+00]
2.4. Conclusiones sobre los metodos de cambio de signo
Los tres metodos vistos comparten las mismas hipotesis y el mismo me-
canismo para aislar las races: el cambio de signo. En su implementaci on,
ademas, se ha empleado una tecnica de vericaci on de convergencia consis-
tente con este mecanismo, que nos permite obtener un intervalo - tan peque no
como se desee dentro de la precision del sistema de punto otante usado -
que contiene a la raz.
El metodo de biseccion es el mas robusto de los tres, aunque generalmente es
el mas lento. Su estabildad es a toda prueba, e inuye en ello que la formula
del punto medio es independiente de las ordenadas y de los errores de re-
dondeo siempre involucrados en su calculo. En cambio falsa posicion simple
se basa precisamente en esos valores para tratar de acelerar la convergencia,
por lo cual no esta libre del efecto de redondeo. Sin embargo, este trabaja a
favor del metodo en los casos de discontinuidades hacia el innito.
Los tres metodos tienen orden de convergencia lineal. Biseccion requiere cer-
ca de tres iteraciones para calcular cada nuevo dgito del resultado. Falsa
posicion modicado es, generalmente, el mas rapido de los tres, con buenas
caractersticas de convergencia bilateral. Sin embargo, en determinados casos
puede tambien resultar lento. (Pruebese con el ejemplo de x
20
1 = 0 usando
[xi, xd] = [0.4, 2]). En casos como ese siempre se puede acudir a biseccion,
que, aunque puede terminar lentamente, comienza a converger sin diculta-
des, con tal de que se cumplan las hipotesis de la b usqueda previa del cambio
de signo.
Pero en casos en que la velocidad en llegar a la solucion sea determinante -
como en ambientes industriales o cientcos donde los resultados se requieren
31
en tiempo real para controlar maquinarias o vehculos que, a su vez, retroali-
mentan nuevos datos y nuevas ecuaciones a resolver- biseccion puede no ser
el metodo adecuado.
15
3. Metodos de b usqueda del punto jo
En este segundo grupo de metodos para resolver la ecuacion f(x) = 0,
se la transforma a una forma equivalente - en el sentido de que no altera las
soluciones - que, en lugar de la forma estandar igualada a cero tiene a x a la
derecha del signo igual: (x) = x.
Llamaremos a la funcion f funcion original y a la funcion de iteracion,
que tiene particular importancia en estos metodos.
El paso de la funcion original a la de iteracion puede hacerse mediante trans-
formaciones algebricas que tengan en cuenta la equivalencia deseada de las
soluciones, lo cual deja abiertas innumerables posibilidades, de modo que a
una funcion f pueden corresponder muchas . Sin embargo, como veremos a
continuaci on, unas son mejores que otras, y hay algunas que denitivamente
no pueden ser usadas. El estudio de las caractersticas de estas funciones es
parte importante del de los metodos de este grupo, particularmente de ite-
racion lineal.
Como un ejemplo, la funcion f(x) = x
3
x 1, considerando que es igual a
cero en la raz, dara lugar a las siguientes funciones de iteracion:

1
(x) = x
3
1 (x pasa al otro miembro)

2
(x) =
3

x + 1 (al despejar x
3
y extraer la raz c ubica)

3
(x) =
_
x+1
x
(al dividir para x, despejar x
2
y tomar la raz cuadrada)

4
(x) =
2x
3
+1
3x
2
1
(al restar f(x)/f

(x) del miembro derecho de x = x)


La b usqueda de los ceros de la funcion f se convierte, entonces, en el calculo
equivalente de los puntos jos de la funcion que se haya escogido.
De acuerdo con la forma de la ecuacion que se esta resolviendo, as como
un cero a de f (llamado tambien raz de la ecuacion f(x) = 0) verica la
forma estandar de la ecuacion, asimismo, considerado como punto jo de ,
a verica que (a) = a.
Por consiguiente, en este grupo debe satisfacerse la siguiente hipotesis:
F
1
: Los puntos jos de son ceros de f
15
Lo mismo puede suceder en un examen donde hay que resolver muchas ecuaciones.
32
3.1. Metodo de iteracion lineal IL
Este metodo, el mas emblem atico del grupo, se conoce tambien en la
bibliografa como metodo de b usqueda del punto jo (por antonomasia),
metodo de Picard, metodo de iteracion funcional, y hasta metodo de aproxi-
maciones sucesivas (denominacion poco especca, habida cuenta que todos
los metodos de este captulo podran llamarse as).
Si desarrollamos por serie de Taylor la funcion (x) en las vecindades de la
aproximaci on x
i
, obtenemos:
(x) = (x
i
) +

(x
i
)(x x
i
) +

(x
i
)
(x x
i
)
2
2

Puesto que a se encuentra en la vecindad de x
i
, la variable x puede tomar el
valor a:
a = (a) = (x
i
) +

(x
i
)(a x
i
) +

(x
i
)
(a x
i
)
2
2

Si en este desarrollo solo mantenemos el termino de orden 0, que es lo mas
sencillo que podemos hacer, obtendremos una nueva aproximaci on a a, y
consecuentemente la llamaremos x
i+1
:
x
i+1
= (x
i
), i = 0, 1, 2, (12)
que es la formula iterativa de este metodo.
La formula 12 genera una secuencia de valores de x
i
, a los que se les llama
simplemente las iteraciones. Para que el metodo tenga utilidad, es necesario
que converja hacia la solucion de la ecuacion.
Cabe, entonces, plantearse las dos preguntas siguientes:
1. Si la secuencia de iteraciones converge, hacia que lmite lo hace?
2. En que casos converge la secuencia de iteraciones?
Para responder a la primera pregunta, debemos plantear las siguientes hipote-
sis:
I
1
: C
0
[xi, xd]. (Continuidad de )
I
2
: L = lm
i
x
i
.
Y analizar (12) bajo esa luz:
L = lm
i
x
i+1
= lm
i
(x
i
) = ( lm
i
x
i
) = (L) (13)
33
Es decir, el lmite de la convergencia es el punto jo de y, por la forma en
que esta fue escogida (de acuerdo con la hipotesis F
1
), un cero de f(x).
Queda por responder la segunda pregunta: cuando existe ese lmite L? Va-
mos a analizarla empleando primero metodos gracos intuitivos antes de
emprender un analisis algebraico mas estricto:
3.1.1. Representaci on graca del punto jo y de las iteraciones
del metodo.
As como para resolver una ecuacion en su forma estandar f(x) = 0 de-
bemos considerar la intersecci on de las curvas y = f(x) y y = 0, cuando nos
interese ubicar el punto jo de una funcion (x) - es decir, el valor x = a que
cumple x = (x) - consideraremos la interseccion de y = (x) con y = x.
Esta ultima es la recta a 45

que pasa por el origen. El punto de interseccion


de esas dos curvas tiene como abscisa a.
En el ejemplo de la gura 8, a partir de x
0
= 1, se han dibujado varias
0.8 0.9 1 1.1 1.2 1.3 1.4 1.5 1.6
0.9
1
1.1
1.2
1.3
1.4
1.5
1.6
x
(x+1)
1/3
a
Figura 8: Iteraciones en el metodo de iteracion lineal
iteraciones con la funcion (x) = (x+1)
1/3
en un intervalo apropiado. Puede
advertirse como, en este caso, las iteraciones van avanzando hacia el valor de
34
a (abscisa de la intersecci on de las dos curvas). A partir de la aproximacion
inicial x
0
, la ordenada hasta la curva llega al punto (x
0
, (x
0
)) = (x
0
, x
1
).
Desde el, una horizontal hacia la recta la intersecta en el punto (x
1
, x
1
), y
una vez conocido x
1
podemos proseguir sucesivamente.
3.1.2. Comportamientos que pueden presentarse
Si bien en el ejemplo anterior las iteraciones se aproximan decididamente
hacia el punto jo, este comportamiento depende de la funcion , seg un lo
vamos a ver y analizar en seguida.
En la gura 9 pueden verse cuatro comportamientos diferentes: el caso 1
0 0.5 1
0.2
0.4
0.6
0.8
x
0.5+0.2 sin(x)
C
a
s
o

1
Xo
0 0.5 1
0.2
0.4
0.6
0.8
x
exp(x)
C
a
s
o

2
Xo
0.5 0 0.5 1 1.5
0
0.5
1
x
0.2 sqrt(x)+1.3 x0.2 x
1/6
C
a
s
o

3
Xo
0.5 0 0.5 1 1.5
0
0.5
1
x
0.2 sqrt(x)1.3 x0.2 x
1/6
+1
C
a
s
o

4
Xo
Figura 9: Convergencia y divergencia en iteracion lineal
es de convergencia monotona: las iteraciones, a partir de la aproximaci on
inicial x
0
estan siempre al mismo lado del punto jo, y se aproximan a el
ascendiendo por una escalera con pelda nos cada vez mas peque nos; el 2, de
convergencia alternada, donde el punto jo esta siempre entre dos iteraciones
sucesivas, que se van cerrando alrededor de a formando una espiral. En el
caso 3, hay divergencia monotona que forma una escalera mientras se aleja
de a, y en el 4, divergencia alternada, caracterizada por una espiral que se
35
va abriendo conforme aumentan las iteraciones.
Observando la gura puede deducirse lo que determina cada caso: cuando
la derivada de en el punto jo y sus vecindades esta entre 0 y 1, se tiene
el primer caso; si d/dx esta entre -1 y 0, es el segundo. En el tercer caso,
d/dx es mayor que 1 y en el cuarto es menor que -1.
Es decir, del graco se podra deducir que [d/dx[ < 1 en las vecindades del
punto jo implica convergencia y [d/dx[ > 1, divergencia. Asimismo, en los
casos monotonos (1 y 3) la derivada es positiva, y en los alternados, negativa.
Sin embargo, los gracos escogidos pueden no representar todos los casos y
las conclusiones extradas de ellos no son tan concluyentes como las que pue-
den obtenerse a partir de un analisis algebrico, mas preciso.
Ejemplo: Comprobar en las funciones de la gura 9 los valores de la derivada
asociadas a cada caso, en el intervalo com un [0 1]:
La funcion de iteracion del caso 1 es (x) = 0.5 + 0.2sen(x), cuya derivada esta dada
por 0.2cos(x); para el intervalo representado, 0.10806 < 0.2cos(x) < 0.2. En el caso 2,
(x) = e
x
, y en [0 1] su derivada d/dx = e
x
esta entre -1 y 0.36788. En el
caso 3, (x) = 0.2

x + 1.3x 0.2x
1/6
. La derivada
0.1

x
+ 1.3
1
30x
5/6
, en el intervalo
dado es mayor que 1.366
16
. Para el caso 4, (x) = 0.2

x 1.3x 0.2x
1/6
+ 1 y
d/dx =
0.1

x
1.3
1
30x
5/6
es menor que 1.233 . Todo lo cual coincide con lo previsto.
3.1.3. Analisis algebrico de la convergencia de IL
Ante todo, consideremos la cuestion de la existencia y unicidad del punto
jo.
Dada una funcion generica (x) denida sobre un intervalo acotado y cerrado
I [A, B] de valores reales, puede tener en el mas de un punto jo, o no tener
ninguno. Para estar seguros de que existe exactamente un punto jo en I se
requieren oportunas restricciones sobre (x). Si nos referimos a la funcion
original f(x), la primera hipotesis razonable es que el intervalo contenga
un cambio de signo, es decir, que [xi, xd] I y f(xi) f(xd) < 0. Pero
muchas veces es preferible trabajar solo con la funcion . Trasladada a ella,
la anterior condicion se transforma en que se tenga (I) I, o sea que, para
cada x I, (x) I. Combinada con la hipotesis de continuidad I
1
, esta
condicion asegura la existencia del punto jo en I.
Teorema 3.1.1. Si (x) I [xi, xd], con I intervalo acotado y cerrado,
y (x) es continua, entonces (x) tiene al menos un punto jo en I.
16
Notese que en este caso hay dos puntos jos representados, pero la prueba se esta ha-
ciendo respecto a a = 0.20884342
36
Demostracion. La hipotesis (I) I signica que xi (xi) xd y xi
(xd) xd. Si xi = (xi), o xd = (xd), uno de los extremos del intervalo
es un punto jo. Supongamos, por el contrario, que se tenga (xi) xi > 0
y (xd) xd < 0. La funcion f(x) = (x) x es continua, con f(xi) > 0
y f(xd) < 0. Entonces, por el conocido teorema sobre la funcion continua,
existe un punto a I con f(a) = (a) a = 0.
Asegurada la existencia del punto jo, seg un la denicion de convergencia
interesa saber cuando, conforme se realizan mas iteraciones del metodo, la
distancia con respecto a ese punto jo disminuye o no.
Para averiguarlo, partamos de dos ecuaciones basicas: la formula de las ite-
raciones en IL y la denicion de punto jo, y restemoslas:
_
x
i+1
= (x
i
)
a = (a)
_
A la diferencia podemos dividirla y multiplicarla por (x
i
a). Requerimos
ahora una hipotesis adicional: C
1
dentro del intervalo de trabajo I.
Usamos entonces el teorema del valor medio y tomamos modulos:
x
i+1
a =
((x
i
) (a))
(x
i
a)
(x
i
a) [x
i+1
a[ = [

()[[x
i
a[ (14)
donde [x
i
, a] I.
Como (14) relaciona las distancias entre dos iteraciones sucesivas y el
punto jo, cuando [

()[ < 1 la distancia estara reduciendose - es decir,


habra convergencia moment anea - e inversamente, cuando [

()[ 1, se
tendra divergencia. Sin embargo, como suele suceder en este tipo de ex-
presiones, no se conoce exactamente el valor de , y para poder continuar
habra que acotar la expresion, con lo cual se pierde parte de su precision:
Si denimos q = max
I
[

(x)[ (notese que, al ser un modulo, es siempre po-


sitivo) y reemplazamos este valor en (14) llegamos a la desigualdad
[x
i+1
a[ q[x
i
a[ (15)
De donde puede deducirse que si q < 1 se esta produciendo convergencia;
pero si q > 1 no podemos asegurar divergencia, pues [

()[ a un puede ser


menor que 1
17
.
Pasemos ahora a una expresion mas general, que permita aplicar los lmi-
tes de la denicion (8): como la expresion (15) admite valores cualesquiera
17
A menos que tambien mn
I
[

(x)[ 1
37
de i, apliquemosla sucesivamente a valores de i = 0, 1, 2 j :
[x
1
a[ q.[x
0
a[
[x
2
a[ q[x
1
a[ q
2
[x
0
a[
[x
3
a[ q[x
2
a[ q
3
[x
0
a[

[x
j
a[ q
j
[x
0
a[ (16)
Podemos ahora tomar lmites de (16) en dos casos diferentes:
Caso 1: q < 1 : lm
j
[x
j
a[ = 0 (17)
Caso 2: q 1 : lm
j
[x
j
a[ (18)
Es decir, en iteracion lineal, supuesta la existencia del punto jo, hay una
condicion suciente, pero no necesaria, de convergencia:
x I, [

(x)[ q < 1 x
i+1
= (x
i
) converge. (19)
Notese que, si bien en el caso 2 no se puede asegurar matematicamente que
el proceso diverja, es lo mas probable, pues solo por coincidencia
18
el lmite
se va a anular.
Para asegurar la unicidad del punto jo, hay que impedir que (x) vare en
forma demasiado rapida. Se tiene, de hecho, la siguiente condicion suciente:
Teorema 3.1.2. (Existencia y unicidad del punto jo) Si (I) I y (x)
es derivable sobre I, con [

(x)[ q < 1 para cada x I entonces existe uno


y un solo valor a I tal que (a) = a.
Demostracion. La condicion del teorema asegura la continuidad de la fun-
cion (x), y por consiguiente, la existencia del punto jo. Para demostrar la
unicidad, supongamos que a
1
, a
2
sean dos puntos jos distintos en I. Apli-
cando el teorema del valor medio, se obtiene [a
1
a
2
[ = [(a
1
) (a
2
)[ =
[

()(a
1
a
2
)[ q[a
1
a
2
[ < [a
1
a
2
[ lo cual es una contradiccion.
La condicion del teorema 3.1.2 es suciente para que la funcion (x) sea
una contracci on sobre I. Recordemos que (x) es una contraccion sobre I
cuando existe una constante q, llamada constante de contracci on, tal que
18
O en casos de orden de convergencia mayor que 1, que no han sido tomados en cuenta
hasta ahora.
38
[(x
1
) (x
2
)[ q[x
1
x
2
[, 0 q < 1 (condicion de Lipschitz ). Sin embar-
go, una funcion contractiva sobre I no necesariamente es derivable.
Esta condicion suciente de convergencia es caracterstica y muy impor-
tante en el metodo. Al escoger una funcion de iteracion debe tomarsela en
cuenta, y comprobar que se cumpla en el intervalo I donde estemos buscando
el punto jo. Tambien interesa al seleccionar el intervalo I.
A este respecto, podemos considerar dos alternativas: que hemos llegado a
la funcion (x) a partir de la funcion original f(x), o que directamente el
problema ha sido planteado en su forma de punto jo. En el primer caso - que
es el que supondremos generalmente - siempre podemos continuar utilizando
la b usqueda del cambio de signo en f(x) para hallar el intervalo I = [xi, xd],
pero al escoger el PASO sera preciso tratar de lograr el cumplimiento de (19).
En el segundo caso no podemos hallar el cambio de signo directamente, pero,
equivalentemente, podramos orientar la b usqueda hacia un intervalo en el
que ((xi) xi).((xd) xd) < 0 , es decir, donde (x) I, lo cual, junto
con la continuidad, garantiza la existencia del punto jo deseado.
3.1.4. Vericacion de la convergencia en IL
Con el criterio del analisis de intervalos, tambien en este grupo de metodos
buscaremos llegar a un intervalo, tan peque no como se desee - dentro de la
precision que nos permita el sistema de punto otante - que contenga la
raz y la acote por ambos lados. Este planteamiento diere del que se puede
encontrar en otros libros, pero es importante si queremos tener un criterio
unicado en todos los metodos, que ademas nos asegure siempre la precision
de la respuesta. Examinaremos bajo este enfoque algunas posibilidades:
[x
i+1
x
i
[ < tol
x
Con convergencia monotona, este criterio no siempre indica que estemos
cerca del punto jo a, como se muestra en la gura 10, en la cual varias
iteraciones, a partir de x
0
, estan distanciadas entre s menos que la
tolerancia, pero a un estan lejos de a.
[(x
i
) x
i
[ < tol
y
Puesto que x
i+1
= (x
i
) este criterio es practicamente el mismo ante-
rior, con el unico cambio de la denominacion de la tolerancia, que ahora
es vertical. Por ese motivo, tampoco es siempre valido.
39
0 0.5 1 1.5 2 2.5 3
0
0.5
1
1.5
2
2.5
3
|Xi+1Xi| no siempre mide la vecindad al punto fijo
x
y
tol x
a
xo
Figura 10: Peque nas diferencias entre iteraciones
Criterio basado en la convergencia de la serie:
[x
0
a[ = [x
0
x
1
+ x
1
a[ [x
1
x
0
[ +[x
1
a[
[x
0
a[ [x
1
x
0
[ + q[x
0
a[ (1 q)[x
0
a[ [x
1
x
0
[
[x
0
a[
[x
1
x
0
[
1 q
[x
j
a[
q
j
1 q
[x
1
x
0
[
. .
Formula telescopica
(20)
Donde se ha supuesto el cumplimiento de la condicion suciente de
convergencia (19) y se ha hecho uso repetido de (16).
No usaremos directamente la formula telescopica (20) porque, al estar
basada en cotas y no tomar en cuenta el orden de convergencia, pue-
de resultar a veces demasiado conservadora, pero la emplearemos para
hallar una estimacion del n umero maximo de iteraciones en la seccion
siguiente.
Criterio basado en el cambio de signo:
Como ya lo hicimos en falsa posicion, implementaremos el remate pa-
ra asegurarnos el cumplimiento del criterio se nalado anteriormente: es
decir, hallar un intervalo que encierre a la raz y asegure la precision
de la respuesta.
40
3.1.5. N umero maximo de iteraciones en IL
Seg un (20), en la iteracion NMAX en que se verique la convergencia se
cumplira:
q
NMAX
1 q
[x
1
x
0
[ < tol
x
(21)
De aqu puede deducirse una formula para el n umero maximo de iteraciones
cuando se cumple la condicion de convergencia (19) que, si bien no tan pre-
cisa como la de biseccion, pues no toma en cuenta el orden de convergencia,
generalmente es una estimacion ajustada:
NMAX =
_
log
_
|x
1
x
0
|
(1q)tol
x
_
log
_
1
q
_
_
+ 1 (22)
La comparacion de (9) con (22) es la mejor forma de averiguar cuando ite-
racion lineal sera mas rapido que biseccion para satisfacer una tolerancia
dada. Aunque la mera comparacion de los denominadores
19
indica que para
ello q < 0.5, al armar esto no se esta tomando en cuenta la relacion entre
los respectivos numeradores: debe tambien cumplirse que
|x
1
x
0
|
1q
PASO.
Sin embargo, como NMAX es directamente proporcional a q, mientras mas
peque no sea este, mas pronto convergira IL para una funcion de orden de
convergencia lineal.
3.1.6. Discusion del algoritmo de IL
Para nuestra implementaci on del algoritmo deberan denirse las funciones
f(x), (x) y

(x), aunque esta ultima podra calcularse por diferenciacion


numerica.
Usaremos f(x) para buscar los cambios de signo que nos permitan hallar
aproximaciones iniciales a las races buscadas, pero no en una forma obliga-
toria, como en el primer grupo de metodos, sino por conveniencia.
Tambien, para evitar calculos casi seguramente infructuosos, solo se reali-
zaran iteraciones en las que la convergencia este asegurada. Es decir, trata-
remos a (19) como si fuera una condicion necesaria y no solo suciente. En
ocasiones, puede ser necesario estrechar el intervalo [xi, xd] para lograr su
cumplimiento.
Esto requiere calcular antes que nada el valor de q, cota de [

(x)[ en el
intervalo. Pero, para simplicar su calculo, que podra resultar complicado,
19
Cuando en biseccion se ha escrito la formula usando logaritmos decimales.
41
usaremos una aproximaci on inicial que, de ser necesario, renaremos con-
forme avanza el calculo: q
0
= max
I
[

(xi)[, [

(xd)[. Esta nos da el valor


correcto de q en los casos en que [

(x)[ es una funcion creciente, decreciente,


o primero decreciente y luego creciente en el intervalo (es decir, aproxima-
damente el 75 % de las veces); q
0
se queda corta como estimacion de q solo
cuando [

(x)[ crece primero, y luego decrece (es decir, tiene un maximo lo-
cal) dentro del intervalo. Vease la gura 11: en los 3 primeros casos, q
0
y q
coinciden.
En el Caso 4 de la gura 11, q
0
solo es una aproximacion (menor) a q. En
1 2 3 4 5
0
1
2
3
4
qo=q
Caso 1
2 0 2 4
0
2
4
6
qo=q
Caso 2
1 0 1 2 3
0
1
2
3
4
qo=q
Caso 3
1 0 1 2 3
0
1
2
3
4
qo q
Caso 4
Figura 11: Representaciones de [

(x)[
ese caso, el algoritmo recalculara [

(x)[ cada vez que haga una nueva itera-


cion, y, en caso de resultar mas grande que el valor actual de q, lo reempla-
zara por este. As, aunque no llegue al valor teorico de q = max
I
[

(x)[,
al menos alcanzara la aproximacion mas cercana q = max
I
[

(x)[, con
I

= xi, x
0
, x
1
, x
2
, xd.
3.1.7. Algoritmo de iteracion lineal
function [ri,rd] = itlineal(xi,xd,tolx)
expr1=input(Funcion de iteracion\n,s); fi=inline(expr1);
expr2=input(Derivada de la funcion de iteracion\n,s);
42
fip=inline(expr2);
it=0; x=xi; x1=xd;
q=max(abs(fip(xi)),abs(fip(xd)));
if q>1
fprintf(No cumple condicion de convergencia: q = %4.2f\n,q)
ri=;rd=;
return
end
fix=fi(x); k=abs(fix-x); nmax=Inf;
while it<=nmax
if it==0
nmax=floor(log(k/((1-q)*tolx))/log(1/q))+1;
end
if abs(x-x1)<tolx
%Remate
if real(fix-x)*real(fi(x1)-x1)<0
ri=min(x,x1);rd=max(x,x1);
return
elseif fix==x
ri=x;rd=x;
return
else
p=x+(x-x1);fipp=fi(p);
if real(fix-x)*real(fipp-p)<0
ri=min(x,p);rd=max(x,p);
return
elseif fipp==p
ri=p;rd=p;
return
end
end
end
%Otra iteracion:
if it<nmax
it=it+1;
x1=x;
x=fix;
fix=fi(x);
fipx=abs(fip(x));
if fipx>q
q=fipx;
nmax=floor(log(k/((1-q)*tolx))/log(1/q))+1;
end
end
end
ri=;rd=;
return
Ejemplo: En lo que sigue se pueden ver los resultado de aplicar iteracion lineal a la
ecuacion de prueba 0 = x
3
x 1, con las funciones de iteracion que se obtuvieron en la
seccion 3, pagina 30.
En cada caso se conrman los resultados del analisis. En el cuarto se utilizo la alternativa
de especicar una aproximacion inicial, pues del estudio de los gracos de las funciones que
se incluyen se pudo apreciar que es posible lograr que el algoritmo implementado converja,
ya que q < 1 en el punto jo. Ademas, se empleo una opcion de calculo numerico de la
derivada.
Notese que el valor de q es esencial en la convergencia, y, en general, esta es mas rapida para
los valores mas peque nos de q, aparte de la cuestion de ordenes superiores de convergencia,
como el que se presenta en el caso 4.
ECUACION: 0= x.^3-x-1
43
Extremos del rango: [-3,4]
Paso de recorrido: 1
Tolerancia x: 5e-8
-----------------------------
Funcion de iteracion: x.^3-1
Derivada de la funcion de iteracion:3*x.^2
Hallo cambio de signo entre 1.000 y 2.000
Metodo de iteracion lineal
it x fi(x) x1 q
-------------------------------------------------------------------
No cumple condicion de convergencia: q = 12.00. No converge.
===================================================================
Funcion de iteracion:(x+1).^(1/3)
Derivada de la funcion de iteracion:((x+1).^(-2/3))/3
it x fi(x) x1 q p
----------------------------------------------------------------------------
1 1.259921050e+000 1.312293837e+000 1.000000000e+000 0.2100
2 1.312293837e+000 1.322353819e+000 1.259921050e+000 0.2100
3 1.322353819e+000 1.324268745e+000 1.312293837e+000 0.2100
4 1.324268745e+000 1.324632625e+000 1.322353819e+000 0.2100
5 1.324632625e+000 1.324701749e+000 1.324268745e+000 0.2100
6 1.324701749e+000 1.324714878e+000 1.324632625e+000 0.2100
7 1.324714878e+000 1.324717372e+000 1.324701749e+000 0.2100
8 1.324717372e+000 1.324717846e+000 1.324714878e+000 0.2100
9 1.324717846e+000 1.324717936e+000 1.324717372e+000 0.2100
10 1.324717936e+000 1.324717953e+000 1.324717846e+000 0.2100
11 1.324717953e+000 1.324717956e+000 1.324717936e+000 0.2100
R 1.32471797
----------------------------------------------------------------------------
Raz en [1.324717953236911e+000 , 1.324717970328857e+000]
============================================================================
Funcion de iteracion: sqrt(1+1/x) Derivada de la funcion de
iteracion:-0.5*x.^(-2)*(1+1./x).^-0.5
it x fi(x) x1 q
------------------------------------------------------------------
1 1.414213562e+000 1.306562965e+000 1.000000000e+000 0.3536
2 1.306562965e+000 1.328671090e+000 1.414213562e+000 0.3536
3 1.328671090e+000 1.323869976e+000 1.306562965e+000 0.3536
4 1.323869976e+000 1.324900445e+000 1.328671090e+000 0.3536
5 1.324900445e+000 1.324678713e+000 1.323869976e+000 0.3536
6 1.324678713e+000 1.324726398e+000 1.324900445e+000 0.3536
7 1.324726398e+000 1.324716142e+000 1.324678713e+000 0.3536
8 1.324716142e+000 1.324718348e+000 1.324726398e+000 0.3536
9 1.324718348e+000 1.324717873e+000 1.324716142e+000 0.3536
10 1.324717873e+000 1.324717975e+000 1.324718348e+000 0.3536
11 1.324717975e+000 1.324717953e+000 1.324717873e+000 0.3536
12 1.324717953e+000 1.324717958e+000 1.324717975e+000 0.3536
------------------------------------------------------------------
Raz en [1.324717953359772e+000 , 1.324717975307686e+000]
==================================================================
Funcion de iteracion: (2*x.^3+1)./(3*x.^2-1)
Derivada de la funcion de iteracion: Usara diferencias hacia adelante
it x fi(x) x1 q
------------------------------------------------------------------
No cumple condicion de convergencia: q = 1.50
Alternativa: Valor de la aproximacion inicial: 2
44
it x fi(x) x1 q
------------------------------------------------------------------
1 1.545454545e+000 1.359614916e+000 2.000000000e+000 0.2795
2 1.359614916e+000 1.325801345e+000 1.545454545e+000 0.2795
3 1.325801345e+000 1.324719049e+000 1.359614916e+000 0.2795
4 1.324719049e+000 1.324717957e+000 1.325801345e+000 0.2795
5 1.324717957e+000 1.324717957e+000 1.324719049e+000 0.2795
6 1.324717957e+000 1.324717957e+000 1.324717957e+000 0.2795
------------------------------------------------------------------
Raz en 1.324717957244746e+000
Proceso terminado.
1 1.5 2
2
0
2
4
6
y=f(x)
1 1.5 2
1
1.2
1.4
1.6
1.8
2
y=fi(x)
1 1.2 1.4 1.6 1.8 2
0
0.5
1
1.5
y=|fi(x)|
Figura 12: Gracas de funciones del caso 4.
Ejercicio: 1.- Programar el metodo de iteracion lineal, seg un los lineamientos dados y
el algoritmo 3.1.7.
Ejercicio: 2.-(Opcional). Implementar en el algoritmo una opcion que permita derivar
numericamente, en lugar de especicar la funcion

, y otras que faciliten el diagnostico y


solucion del problema cuando q > 1: Por ejemplo, gracar las funciones f(x), (x) y [

(x)[;
estrechar el intervalo; especicar la aproximacion inicial directamente.
3.1.8. Orden de convergencia en IL
Generalmente, el comportamiento de iteracion lineal, seg un (16) tiene
orden de convergencia 1, de acuerdo con la denicion (1.1.1). Pero, para
45
determinadas funciones de iteracion, el orden puede ser mayor.
Veamos cuando se presenta cada caso: sea
j
= x
j
a. Desarrollando x
i+1
=
(x
i
) en las vecindades del punto jo a se tiene
a +
i+1
= x
i+1
= (a +
i
) = (a) +

(a)
i
+

(a)

2
i
2
+

(a)

3
i
6

i+1
=

(a)
i
+

(a)

2
i
2
+

(a)

3
i
6

En donde la distancia [
i+1
[ = [x
i+1
a[ puede ponerse en funcion de po-
tencias crecientes de la distancia anterior [
i
[ = [x
i
a[ y de las derivadas
de en el punto jo.
Como x
i
y x
i+1
son aproximaciones a a,
i
y
i+1
son peque nas, y, por
consiguiente, sus potencias crecientes son cada vez mas cercanas a cero. Si
conservamos solo la dominante, obtenemos la aproximacion:
Si

(a) ,= 0 : [
i+1
[
.
= [

(a)[[
i
[
[
i+1
[
[
i
[
.
= [

(a)[
Y, tomando lmites:
lm
i
[x
i+1
a[
[x
i
a[
= [

(a)[ < 1 (23)


Es decir, orden de convergencia 1, o convergencia lineal. Asimismo:
Si

(a) = 0,

(a) ,= 0 : [
i+1
[
.
= [

(a)[
[
i
[
2
2

[
i+1
[
[
i
[
2
.
= [

(a)
2
[
Lo que, en el lmite da:
lm
i
[x
i+1
a[
[x
i
a[
2
=
[

(a)[
2
(24)
Que corresponde al orden de convergencia 2, o convergencia cuadratica. En
forma similar:
Si

(a),

(a) = 0,

(a) ,= 0 : [
i+1
[
.
= [

(a)[
[
i
[
3
6

[
i+1
[
[
i
[
3
.
= [

(a)
6
[
Y en el lmite:
lm
i
[x
i+1
a[
[x
i
a[
3
=
[

(a)[
6
(25)
Orden de convergencia 3 o convergencia c ubica. Y as podramos continuar
indenidamente.
46
Entonces, para determinar el orden de convergencia de la iteracion lineal ha-
cia el punto jo a de la funcion de iteracion, hay que determinar el orden de
la primera derivada que no se anula en el punto jo.
Obviamente, mientras mayor es el orden de convergencia, mas rapidamente
converge el metodo, si atendemos al n umero de iteraciones necesarias para
satisfacer una tolerancia horizontal dada. Pero la aparente ventaja de una
formula de mayor orden, ya en su aplicacion, resulta contrarrestada por su
mayor complejidad: la necesidad de contar con mas grados de libertad en
la funcion que permitan anular un mayor n umero de derivadas en el punto
jo, puede dar lugar a funciones de iteracion complicadas, cuya evaluacion es
mucho mas costosa, y el menor n umero de iteraciones puede en realidad re-
presentar mayor cantidad de operaciones, es decir, mas tiempo de procesador
y mayor propagacion del error. En general, un punto de equilibrio aceptable
es la convergencia cuadratica.
Para aplicar la teora contenida en las formulas (23),(24),(25) y otras
semejantes, se deben dar tres pasos:
1. Vericar que se trata de una formula del tipo x
i+1
= (x
i
)
2. Cerciorarse de que se esta buscando el punto jo de la funcion
3. Calcular la secuencia

(a),

(a)
p1
(a),
p
(a), donde

j
(a) = 0, j = 1, 2 p 1, y
p
(a) ,= 0.
Notese que al evaluar la secuencia de derivadas en el punto jo, aunque no
se conoce el valor de a, se tienen las igualdades fundamentales (a) = a y
f(a) = 0, que son sucientes.
Ejemplo: Hallar el orden de convergencia de la formula x
i+1
= x
i

f(x
i
)
f

(x
i
)
(formula de
Newton) hacia una raz de la ecuacion f(x) = 0.
1. Se trata en efecto de iteracion lineal, con (x) =
f(x)
f

(x)
2. Sea r el punto buscado. Entonces
20
, (r) =
f(r)
f

(r)
=
0
f

(r)
3. Una vez satisfechos los dos puntos anteriores, se puede proceder al calculo de la
secuencia de derivadas en el punto jo:
Primero hallamos las derivadas en x y luego reemplazamos el punto jo a:

(a) =
f(a)f

(a)
f

(a)
2
y

(a) =
f

(a)
f(

a)
.
Examinamos dos posibilidades:
Caso 1: Si f

(a) ,= 0, entonces

(a) = 0 y

(a) ,= 0. Por consiguiente, es de orden 2.


20
Notese que, a un si f

(r) = 0, al levantar la indeterminacion resultante el valor es cero


por el menor grado del denominador.
47
Caso 2: Si f

(a) = 0, en la expresion de

(a) aparece la indeterminacion


0
0
, y levantandola
con varias aplicaciones de la regla de LHopital, se obtiene

(a) = 1/2 ,= 0 si f

(a) ,= 0,
lo cual signica que la formula es de orden 1.
El caso 1 corresponde a races simples y el 2 a m ultiples. La formula de Newton, entonces,
es de orden 2 para el caso mas frecuente, pero solo es lineal para el de races m ultiples, en
el cual no presenta la ventaja de un mayor orden de convergencia
21
.
Forma numerica de investigar el orden de convergencia: Aunque
el analisis anterior es importante, y previo a la aplicacion del metodo, sus
expresiones algebricas pueden resultar difciles de manejar, como se puede
comprobar en varios ejercicios. Una forma aproximada de comprobar el or-
den de convergencia, paralela a la realizacion de las iteraciones, esta basada
en la proximidad, que se acent ua conforme se arma la convergencia, entre
[
i
[ = [x
i
a[ y [
i+1
[ = [x
i+1
x
i
[, debido a que x
i+1
a: esta cercana
permite ir calculando, en cada iteracion, los varios cocientes
|
i+1
|
|
i
|
p
, y observar
cual de ellos tiende hacia la constante de convergencia.
El siguiente guion de MATLAB lo implementa, y los resultados de su aplica-
cion sobre las funciones de iteracion de la pag. 31 se muestran a continuaci on.
%funcion para hallar el orden de convergencia en iteracion lineal
%function op = ordconv(fi,xi,xd,tolx)
% fi : Funci`on
% [xi,xd]: Intervalo en que ha hallado cambio de signo
% tolx : Tolerancia horizontal absoluta
function op = ordconv(fi,xi,xd,tolx) it=0; x=xi;fix=fi(x);x1=xd;
%Evalua la derivada numericamente:
fipi=fip(fi,xi,1);fipd=fip(fi,xd,1); q=max(abs(fipi),abs(fipd));
k=abs(fix-x); nmax=Inf; dx1=1; while it<=nmax & abs(dx1)>tolx
if it==0
if q<1
nmax=floor(log(k/((1-q)*tolx))/log(1/q))+1;
else
nmax=floor(log((xd-xi)/tolx)/log(2))+1;
end
end
%Otra iteracion:
if it<nmax & abs(dx1)>tolx
it=it+1;
x1=x;
x=fix;
dx1=x-x1;
dx(it)=dx1;
fix=fi(x);
fipx=abs(fip(fi,x,1));
if fipx>q
q=fipx;
nmax=floor(log(k/((1-q)*tolx))/log(1/q))+1;
end
fprintf(%2d % 16.9e % 16.9e,it,x,dx1)
if it>1 & abs(dx1)>0
s1(it)=abs(dx1/dx(it-1));s2(it)=abs(dx1/(dx(it-1))^2);s3(it)=abs(dx1/(dx(it-1))^3);
fprintf(% 16.9e % 16.9e %16.9e\n,s1(it),s2(it),s3(it))
else
fprintf(\n)
end
end
end if it>=nmax & q>1
fprintf(\n No convergio\n)
op=;
else
%Divide la desviacion estandar de cada secuencia para su promedio
it0=it-5;
if it0<1, it0=1; end
it1=it-1;is1=s1(it0:it1);is2=s2(it0:it1);is3=s3(it0:it1);
21
Puede demostrarse en forma similar que x
i+1
= x
i
m
f(x
i
)
f

(x
i
)
es de orden 2 hacia una
raz de multiplicidad m, pero para aplicar esta formula se requiere conocer de antemano
m, lo cual no la hace practica.
48
p(1)=std(is1)/mean(is1);p(2)=std(is2)/mean(is2);p(3)=std(is3)/mean(is3);
[M,op]=min(p);
if M<1
fprintf(\n Orden de convergencia mas probable: %d (desv.est/prom = %7.4f)\n,op,M)
else
%No parece ser de orden 1, 2 o 3 a partir de la secuencias aproximadas.
%Corrige la secuencia de dx para usar x(i)-a:
for it=it1-1:-1:it0
dx(it)=dx(it)+dx(it+1);
end
%Luego vuelve a calcular las secuencias
for it=it0:it1
if it>1
dx1=dx(it);
is1(it)=abs(dx1/dx(it-1));is2(it)=abs(dx1/(dx(it-1))^2);
is3(it)=abs(dx1/(dx(it-1))^3);
end
end
p(1)=std(is1)/mean(is1);p(2)=std(is2)/mean(is2);p(3)=std(is3)/mean(is3);
[M,op]=min(p);
if M<1
fprintf(\n Orden de convergencia mas probable: %d (desv.est/prom = ...
%7.4f)\n,op,M)
else
%Si tampoco as` lo reconoce, prueba el resultado te`orico:
%Calcula las derivadas en a hasta hallar una diferente de 0
for op=1:4
K(op)=abs(fip(fi,x,op));
if K(op)>tolx, break, end
end
if K(op)>0
fprintf(\n Orden de convergencia: %d\n,op)
else
fprintf(\n No es de orden entero de 1 a 4.\n)
end
end
end
end
return
Orden de convergencia de Iteracion Lineal
-----------------------------------------------------------
FUNCION: x
3
1 = x
it x dx s1 s2 s3
------------------------------------------------------------------------------------------
0 1.000000000e+000
1 0.000000000e+000 -1.000000000e+000
2 -1.000000000e+000 -1.000000000e+000 1.000000000e+000 1.000000000e+000 1.000000000e+000
3 -2.000000000e+000 -1.000000000e+000 1.000000000e+000 1.000000000e+000 1.000000000e+000
4 -9.000000000e+000 -7.000000000e+000 7.000000000e+000 7.000000000e+000 7.000000000e+000
No convergio
------------------------------------------------------------------------------------------
FUNCION: sqrt(1+1/x) = x
it x dx s1 s2 s3
------------------------------------------------------------------------------------------
0 1.000000000e+000
1 1.414213562e+000 4.142135624e-001
2 1.306562965e+000 -1.076505975e-001 2.598915325e-001 6.274336624e-001 1.514758857e+000
3 1.328671090e+000 2.210812487e-002 2.053692723e-001 1.907739270e+000 1.772158552e+001
4 1.323869976e+000 -4.801113395e-003 2.171651112e-001 9.822864328e+000 4.443101523e+002
5 1.324900445e+000 1.030468753e-003 2.146312048e-001 4.470446482e+001 9.311270353e+003
6 1.324678713e+000 -2.217324977e-004 2.151763429e-001 2.088140396e+002 2.026398560e+005
7 1.324726398e+000 4.768559172e-005 2.150591015e-001 9.699033913e+002 4.374204960e+006
8 1.324716142e+000 -1.025642297e-005 2.150843181e-001 4.510467634e+003 9.458764109e+007
9 1.324718348e+000 2.205940115e-006 2.150788945e-001 2.097016621e+004 2.044588670e+009
10 1.324717873e+000 -4.744537343e-007 2.150800609e-001 9.750040787e+004 4.419902753e+010
11 1.324717975e+000 1.020454190e-007 2.150798100e-001 4.533209340e+005 9.554586700e+011
12 1.324717953e+000 -2.194791482e-008 2.150798638e-001 2.107687595e+006 2.065440679e+013
13 1.324717958e+000 4.720554392e-009 2.150798575e-001 9.799557693e+006 4.464915129e+014
14 1.324717957e+000 -1.015296291e-009 2.150798841e-001 4.556242048e+007 9.651921511e+015
15 1.324717957e+000 2.183697667e-010 2.150798427e-001 2.118394842e+008 2.086479445e+017
16 1.324717957e+000 -4.696687483e-011 2.150795668e-001 9.849328965e+008 4.510390386e+018
Orden de convergencia mas probable: 1 (desv.est/prom = 0.0000)
-------------------------------------------------------------------------------------------
FUNCION: (x+1)^(1/3) = x
it x dx s1 s2 s3
-------------------------------------------------------------------------------------------
0 1.000000000e+000
1 1.259921050e+000 2.599210499e-001
2 1.312293837e+000 5.237278679e-002 2.014949801e-001 7.752160905e-001 2.982505999e+000
49
3 1.322353819e+000 1.005998246e-002 1.920841542e-001 3.667632869e+000 7.002936245e+001
4 1.324268745e+000 1.914925413e-003 1.903507706e-001 1.892158077e+001 1.880876121e+003
5 1.324632625e+000 3.638806993e-004 1.900234322e-001 9.923281133e+001 5.182071880e+004
6 1.324701749e+000 6.912325944e-005 1.899613240e-001 5.220428684e+002 1.434653911e+006
7 1.324714878e+000 1.312993059e-005 1.899495293e-001 2.747982818e+003 3.975482118e+007
8 1.324717372e+000 2.493994720e-006 1.899472890e-001 1.446673976e+004 1.101813879e+009
9 1.324717846e+000 4.737264747e-007 1.899468635e-001 7.616169431e+004 3.053803350e+010
10 1.324717936e+000 8.998281964e-008 1.899467825e-001 4.009629873e+005 8.464018979e+011
11 1.324717953e+000 1.709194564e-008 1.899467666e-001 2.110922589e+006 2.345917362e+013
12 1.324717956e+000 3.246559688e-009 1.899467595e-001 1.111323214e+007 6.502028718e+014
13 1.324717957e+000 6.166736011e-010 1.899467930e-001 5.850710022e+007 1.802126123e+016
14 1.324717957e+000 1.171351904e-010 1.899468215e-001 3.080184091e+008 4.994836953e+017
15 1.324717957e+000 2.224953555e-011 1.899474911e-001 1.621609103e+009 1.384391059e+019
Orden de convergencia mas probable: 1 (desv.est/prom = 0.0000)
-------------------------------------------------------------------------------------------
FUNCION:(2*x3+1)/(3*x
2
1) = x
it x dx s1 s2 s3
------------------------------------------------------------------------------------------
0 1.000000000e+000
1 1.500000000e+000 5.000000000e-001
2 1.347826087e+000 -1.521739130e-001 3.043478261e-001 6.086956522e-001 1.217391304e+000
3 1.325200399e+000 -2.262568801e-002 1.486830926e-001 9.770603229e-001 6.420682122e+000
4 1.324718174e+000 -4.822249519e-004 2.131316191e-002 9.419895610e-001 4.163363169e+001
5 1.324717957e+000 -2.167542639e-007 4.494878646e-004 9.321124153e-001 1.932941072e+003
6 1.324717957e+000 -4.374278717e-014 2.018081969e-007 9.310460303e-001 4.295398917e+006
Orden de convergencia mas probable: 2 (desv.est/prom = 0.5990)
------------------------------------------------------------------------------------------
Proceso terminado
3.1.9. Formas de encontrar funciones adecuadas.
Dada la importancia que tiene para iteracion lineal la correcta seleccion
de la funcion de iteracion, veamos algunos criterios para escogerla:
El primero es buscar funciones que cumplan la condicion suciente de con-
vergencia. Al respecto, hay que recordar que la condicion de convergencia,
en una funcion (x) dada, puede cumplirse en las vecindades de un punto
jo y no en las de otro. Por consiguiente, la b usqueda de (x) debe repetirse
en cada intervalo que contiene un punto jo. Como sabemos, a partir de la
funcion original f(x), podremos determinar los intervalos mediante sus cam-
bios de signo.
Una vez determinado un intervalo [xi, xd], veamos algunas formas de hallar
adecuadas .
Uso de la funcion inversa. Una funcion (x) =
1
(x): a) Tiene los
mismos puntos jos que (x), lo cual se deduce de que a = (a)
(a) = ((a)) = a. b)Cumple la condicion de convergencia cuando
(x) no la cumple, pues [

(x)[ > 1 [

(x)[ =

(x)

< 1.
Es decir, si hemos tratado de usar la funcion de iteracion (x) sin
exito, lo tendremos si empleamos =
1
, siempre y cuando se la
pueda hallar con facilidad. As, para resolver 0 = x
3
x1, la funcion
(x) = (x + 1)
1
3
= (x
3
1)
1
converge en [1, 2], mientras (x
3
1) no
lo hace.
Uso de multiplicadores. Si denimos (x) = x g(x)f(x), con-
tamos con el multiplicador g(x) como grado de libertad para lograr
50
que la condicion de convergencia se cumpla:[1 [g(x)f(x)]

[ < 1
0 < [g(x)f(x)]

< 2. Es facil demostrar que, si x [xi, xd]f

(x) > 0,
la constante g =
2
M
1
+m
1
, con M
1
= max(f

(x)) y m
1
= mn(f

(x))
en el intervalo garantiza el cumplimiento de la condicion, y, por con-
siguiente, la convergencia. (Si x [xi, xd]f

(x) < 0, se resolvera la


ecuacion equivalente f(x) = 0). En la ecuacion 0 = x
3
x 1, con
[xi, xd] = [1, 2], f

(x) = 3x
2
1 > 0, M
1
= 11, m
1
= 2 y g =
2
13
,
lo cual da (x) = x
2
13
(x
3
x 1) =
2x
3
13
+
15x
13
+
2
13
. En esta,

(x) =
6x
2
13
+
15
13
, y [

(x)[
9
13
.
Otra posibilidad es escoger g(x) =
1
f

(x)
, lo cual desemboca en la formu-
la de Newton.
El otro criterio que debe tomarse en cuenta es el del orden de convergencia:
es preferible tener funciones de iteracion con orden superior a 1, mientras
no sean muy complicadas, pues de serlo el ahorro en n umero de iteraciones
puede ser solo aparente, y la complejidad aritmetica aumentar. Sin embargo,
tambien importa el valor de la constante de convergencia: podra haber un
metodo de 1er orden con una constante cercana a cero que resulte mas con-
veniente que uno cuadratico con constante alta.
Ejemplos:
1.-[Com05] Partamos del problema del calculo de los ceros de la siguiente ecuacion:
x
3
3x
2
+ 1 = 0
Se puede vericar que las races son reales y tienen los siguientes valores:

1
0.5321;
2
0.6527;
3
2.8794
Transformemos ahora el problema original en uno equivalente de calculo de puntos jos.
Mas precisamente, reescribamos la ecuacion en la siguiente forma:
x = (x) :=
x
2
3
+
1
3x
Donde la funcion de iteracion (x) esta denida sobre cualquier intervalo I que no con-
tenga a cero (ver una representacion graca en la gura 13). El procedimiento (7.22)
proporciona, a partir del valor x0 = 0.5422, los resultados que se presentan en la tabla
siguiente e ilustran gracamente en la Figura 13.
k xk k xk k xk k xk
-----------------------------------------------------------
1 -0.5542 9 -2.9952 17 2.8515 25 0.8883
2 -0.4991 10 2.8790 18 2.8272 26 0.6383
3 -0.5849 11 2.8794 19 2.7822 27 0.6580
4 -0.4559 12 2.8782 20 2.7001 28 0.6509
5 -0.6618 13 2.8771 21 2.5536 29 0.6533
6 -0.3577 14 2.8752 22 2.3042 30 0.6525
7 -0.8894 15 2.8714 23 1.9145 31 0.6528
8 -0.1111 16 2.8645 24 1.3959 32 0.6527
Tabla: Valores generados por la formula iterativa x
k+1
=
x
2
k
3
+
1
3x
k
, con x
0
= 0.5542
51
5 0 5
5
4
3
2
1
0
1
2
3
4
5
Figura 13: Procedimiento iterativo x
k+1
= x
2
k
/3 + 1/(3x
k
) con x
0
= 0.5422
Destacamos que, no obstante el punto inicial haya sido escogido cercano al punto jo

1
, la sucesion de los valores x
k
se alejan de ese punto, con un comportamiento de tipo
alternante, hasta llegar a un valor muy proximo al punto jo
3
; se alejan, sin embargo,
tambien de ese punto, con un comportamiento esta vez de tipo monotono; en n, se ve que
la sucesion converge, con un comportamiento alternante, al punto jo correspondiente a
la raz
2
. Se concluye, por consiguiente, que el metodo iterativo considerado es util sola-
mente para el calculo de la raz
2
. Es interesante examinar el valor de la derivada

(x)
en los diferentes punto jos. Se tienen los siguientes valores

(
1
) 1.5320;

(
2
) 0.3473;

(
3
) 1.8794
de los cuales se ve que la convergencia se tiene con respecto al punto en el cual la derivada
es menor que 1 en modulo, o sea cuando la (x) es una contraccion en un entorno adecuado
del punto jo. Se observa, ademas, que al signo negativo de la derivada corresponde un
comportamiento alternante de la sucesion.
Para llegar a los otros puntos jos se necesitara escoger otras funciones (x) que cumplan
similares condiciones respecto a ellos.
2.-Analizar la validez de cada una de las funciones que se dan a continuacion para
resolver la ecuacion 0 = x
4
+ 2x
2
x 3 y determinar cual es la mas conveniente:

1
(x) = (3 + x 2x
2
)
1
4
;
2
(x) =
_
x + 3 x
4
2

3
(x) =
_
x + 3
x
2
+ 2
;
4
(x) =
3x
4
+ 2x
2
+ 3
4x
3
+ 4x 1
En primer lugar, determinemos el o los intervalos de trabajo: de la b usqueda del
cambio de signo en f(x) = x
4
+2x
2
x3 hallamos dos: [1, 0] y [1, 2]. Notese que
52
la seleccion de la funcion de iteracion mas adecuada puede variar con el intervalo.
Escojamos para analizar [xi, xd] = [1, 2]. Se deja al lector estudiar el otro intervalo.
Se comprobara la validez de las funciones dadas si se muestra que cada una resulta
de una manipulacion algebraica de la ecuacion f(x) = 0:
0 = x
4
+ 2x
2
x 3 x
4
= 3 + x 2x
2
x = (3 + x 2x
2
)
1
4
=
1
(x).
0 = x
4
+ 2x
2
x 3 2x
2
= x + 3 x
4
x =
_
x+3x
4
2
=
2
(x).
0 = x
4
+ 2x
2
x 3 x
2
(x
2
+ 2) = x + 3 x =
_
x+3
x
2
+2
=
3
(x).
0 = x
4
+ 2x
2
x 3 x = x
x
4
+2x
2
x3
4x
3
+4x1
x =
3x
4
+2x
2
+3
4x
3
+4x1
=
4
(x).
Todas las funciones, pues, son validas, y sus puntos jos coinciden con los ceros de
f(x).
Luego comprobaremos la convergencia, calculando la derivada de cada funcion y el
valor de q en el intervalo:

1
(x) =
1 4x
4(3 + x 2x
2
)
0.75
[

1
(x)[ =
[1 4x[
4[2x
2
x 3[
0.75
La funcion es creciente en [1, 1.5] y decreciente en [1.5, 2], pero presenta una dis-
continuidad en 1.5, que hace el valor teorico de q innito. Sin embargo, seg un el
algoritmo, se inicializa q = q
o
en [

1
(2)[ = 0.7677 < 1, y no se incrementa en las
diversas x
i
.

2
(x) =

2(1 4x
3
)
2

x + 3 x
4
[

2
(x)[ =

2[1 4x
3
[
2

x + 3 x
4
Que crece en [1, 2]. El valor maximo esta a la derecha: q = [

2
(2)[ = 6.6092 > 1.

3
(x) =
_
x + 3
x
2
+ 2
[

3
(x)[ =
[2 6x x
2
[
(x
2
+ 2)
3
2
(x + 3)
1
2
Creciente en [1, 2]. El valor maximo esta a la derecha: q = [

3
(2)[ = 0.2524 < 1.
Para
4
(x), la forma en que la construimos nos hace ver que obedece a la forma de
Newton. En este caso,
[

4
(x)[ =

f(x)f

(x)
(f

(x))
2

=
[(x
4
+ 2x
2
x 3)(12x
2
+ 4)[
(4x
3
+ 4x 1)
2
Al estar f(x) en el numerador y ser simple la raz contenida en el intervalo,
4
(a) =
0, lo cual hace que el orden de convergencia sea mayor que 1 (de hecho, seg un ya se
demostro, es 2). La funcion
4
es, entonces, la mas adecuada, independientemente
de su valor de q = 0.6496.
El orden de seleccion es, pues,
4
,
3
,
1
. En cambio, no se garantiza que
2
converja (y puede vericarse que, de hecho, diverge).
El lector puede comprobar que, con una tolerancia de 5.10
8
, comenzando desde
x
0
= 1, el n umero de iteraciones necesario para alcanzar la convergencia es: 5
para
4
, 12 en
3
, 33 con
1
y no converge en la funcion
2
. La raz hallada es
1.1241230297.
3.- Resolver por iteracion lineal la ecuacion f(x) = A(k + x)
n
= 0.
Al estudiar la expresion, es facil ver que la solucion exacta es el valor x = a =
n

A k,
de modo que
n

A = a + k, y k podra considerarse como una aproximacion inicial a


53
n

A, mientras a sera la correccion a k necesaria para calcular


n

A con una tolerancia


especicada
22
.
Mostrar la validez de (x) =
x(Ak
n
)
(k+x)
n
k
n
para este caso:
x = (x) es equivalente a f(x) = 0:
x =
x(Ak
n
)
(k + x)
n
k
n
(k +x)
n
k
n
= Ak
n
(k +x)
n
= A A(k +x)
n
= 0
Y la raz a =
n

Ak es el punto jo de :
(a) = (
n

Ak) =
(
n

Ak)(Ak
n
)
(k+
n

Ak)
n
k
n
=
n

Ak = a
Aunque existe tambien el punto jo x = 0, este coincide con el que buscamos cuando
k =
n

A, caso que en la practica no interesa.


Hallar el intervalo de valores de k que aseguren la convergencia desde x
0
= 0:
Para ese valor, el calculo de x
1
= (x
0
) resulta indeterminado. Mediante L

H opital
se llega a (0) =
Ak
n
nk
n1
. La derivada es

(x) = (Ak
n
)
(k+x)
n1
(k+xnx)k
n
((k+x)
n
k
n
)
2
Para x
0
= 0 la condicion de convergencia [

(0)[ < 1, luego de levantar la indeter-


minacion, se convierte en:
[
(n1)(Ak
n
)
2nk
n
[ < 1 k
n
>
(n1)A
3n1
.
Que es la condicion suciente de convergencia buscada. Naturalmente, mientras
mas cerca se encuentre k de
n

A, mas pronto convergira (por ejemplo, un valor de


k que coincida en su primera cifra signicativa con
n

A, usada en [Zed91]). Note-


se, ademas, que

(x) es negativa, por lo cual la convergencia es alternada y la


vericacion de convergencia [x
i+1
x
i
[ < tol
x
es valida.
Estudiar el orden de convergencia del metodo:

(a) = 1 +
nA(
1
n

A
k1)
Ak
n
es diferente de cero y menor que 1. Luego, converge en un
entorno adecuado de k, pero su orden de convergencia es solo 1.
Estudiar el proceso mediante un guion MATLAB para hallar races enesimas con
este metodo.
4.- Hallar una funcion de mayor orden de convergencia para calcular la raz enesima de un
n umero real A.
a).-A partir de la ecuacion f(x) = A x
n
= 0, podemos hacer uso de la formula de
Newton, cuya convergencia, como ya analizamos, es cuadratica:
x
i+1
= x
i

f(x
i
)
f

(x
i
)
x
i+1
= x
i

Ax
n
i
nx
n1
i
=
A + (n 1)x
n
i
nx
n1
i
(26)
Como puede comprobarse facilmente, esta funcion (x) =
A+(n1)x
n
nx
n1
es mucho mas e-
ciente que la del ejemplo anterior, y, a un mas, puede llegarse a ella solo a base del binomio
de Newton, es decir, sin hacer uso del calculo. Converge para cualquier x
0
> 0 y en cada
iteracion entrega
x
i+1
=
_
1
1
n
_
x
i
+
1
n
Ax
1n
i
b).-A un mejores resultados pueden obtenerse, a partir de la misma ecuacion f(x) =
A x
n
= 0, utilizando la formula de Halley
23
(cuya deduccion, en este caso, tambien
22
En [Zed91] se presenta un metodo para calcular races enesimas que en esencia se
ajusta a esta idea.
23
Vease (47).
54
requiere solamente el binomio de Newton). En este caso la formula iterativa, facilmente
memorizable,
x
i+1
= x
i
(1 n)x
n
i
(1 + n)A
(1 n)A(1 + n)x
n
i
(27)
converge para cualquier x
0
> 0 con orden de convergencia c ubico.
5.- Hallar una funcion (x) adecuada para resolver la acuacion log(ln(x)) = ln(log(x)).
A partir de la ecuacion dada se pueden construir dos funciones de iteracion evidentes:

1
(x) = e
10
ln(log(x))
y
2
(x) = 10
e
log(ln(x))
que son inversas entre s. Pero el calculo de sus derivadas, para determinar cual de las
dos cumple la condicion de convergencia en un intervalo que contenga a la raz, puede
resultar engorroso
24
. Recurrimos, entonces, a un enfoque graco: como puede verse en el
0 20 40 60 80 100
0
20
40
60
80
100
120
140
Funciones de iteracin
Seleccin de la funcin de iteracin adecuada
0 20 40 60 80 100
1.5
1
0.5
0
0.5
1
ln(log(x)) vs log(ln(x))
y=10
(exp(log(ln(x))))
y=x
y=ln(log(x))
y=log(ln(x))
y=exp(10
ln(log(x))
)
Figura 14: Analisis de la adecuada
panel izquierdo de la gura 14, en que se han gracado por separado los dos miembros de
la ecuacion dada, y en el derecho, en que aparecen
1
(x) y
2
(x), la solucion se encuentra
cerca de 80.
25
En el graco derecho, al comparar cada curva con la recta y = x, se ve que
en el punto jo la pendiente de
1
(x) es mayor, mientras la de
2
(x) es menor que 1. Por
consiguiente, la funcion adecuada sera
2
(x) = 10
e
log(ln(x))
.
24
Son

1
ln(
1
)
x log(x)
y

2
log(
2
)
x ln(x)
, que, evaluadas en el punto jo, resultan ln(10) y
1
ln(10)
25
Esta ecuacion admite la solucion analtica x = exp((ln(10))
ln(10)
ln(10)1
) = 78.89169413 .
55
3.1.10. Iteracion lineal y la Teora del Caos.
Hemos estudiado la funcion de iteracion (x) desde el punto de vista de
su utilidad para la b usqueda de su punto jo, es decir, la raz de la ecuacion
f(x) = 0. Sabemos que, si el punto jo a no se encuentra en el intervalo en el
cual se garantiza la convergencia (donde [

(x)[ < 1), lo mas probable es que


las iteraciones diverjan. Pero no hemos analizado la forma en que lo hacen.
Resulta que el estudio de varias de estas funciones, precisamente en su cam-
po de divergencia, iluminaron el estudio naciente de la teora del caos, y
permitieron a Mitchel Feigenbaum, quien las estudio en los ultimos a nos de
la decada de 1970, captar la universalidad del principio subyacente a varios
modelos caoticos, aparentemente no relacionados.
De las varias proyecciones o mapeos que se emplean actualmente para gene-
rar secuencias aparentemente caoticas, pero que tienen un oculto principio
de orden, la mas sencilla es la cuadratica, que obedece a la formula
x
i+1
= rx
i
(1 x
i
) (28)
donde r > 0 es el parametro de crecimiento cuando se aplica al estudio de
poblaciones, de fenomenos metereologicos, de los precios del mercado, y, en
general, de fenomenos no lineales.
Si analizamos la respectiva funcion (x) = rx(1 x), llamada tambien fun-
cion de crecimiento logstico, es facil hallar sus dos puntos jos, resultantes
de resolver la ecuacion x = rx(1 x), que valen a
1
= 1
1
r
y a
2
= 0.
Por otro lado, la condicion de convergencia [

(x)[ < 1 se convierte en es-


te caso en [r(1 2x)[ < 1, de donde resulta el intervalo de convergencia
C = [
r1
2r
,
r+1
2r
]. Si a C, las iteraciones x
i+1
= (x
i
), con x
0
C, conver-
giran a ese punto jo, en la forma conocida. Pero, si a no pertenece a C,
las iteraciones con aproximacion inicial x
0
C pueden converger, dentro de
ciertos valores del parametro r, no a un punto jo, sino a dos o mas polos.
No resulta difcil establecer los valores del parametro r que permiten esta
convergencia:
a
1
C
r 1
2r
1
1
r

r + 1
2r
1 r 3 (29)
a
2
C
r 1
2r
< 0
r + 1
2r
1 r < 1 (30)
Es decir, si r esta en [1, 3], la convergencia se produce hacia a
1
= 1
1
r
(caso 2 de la gura 15), y cuando esta en [-1, 1), las iteraciones convergen
hacia a
2
= 0 (caso 1) desde un x
0
que pertenezca a C. Si x
0
no esta en
ninguno de esos intervalos, diverge hacia .
56
Pero, si r > 3, y x
0
C, conforme r crece las iteraciones comienzan a con-
verger, no hacia un punto jo, sino hacia dos o mas polos equidistantes de
r+1
2r
(caso 3). Llega un momento, cuando r ha crecido mas, en que, aunque
no se da la divergencia hacia o , las iteraciones oscilan sin llegar a
estabilizarse (caso 4).
La gura 16 graca los valores de r contra los de x a los que convergen las
0 0.5 1
0.2
0.4
0.6
x
0.8 x (1x)
C
a
s
o

1
Xo
0 0.5 1
0.2
0.4
0.6
x
2.5 x (1x)
C
a
s
o

2
Xo
0 0.5 1
0
0.2
0.4
0.6
0.8
x
3.1 x (1x)
C
a
s
o

3
Xo
0 0.5 1
0
0.2
0.4
0.6
0.8
1
x
3.8 x (1x)
C
a
s
o

4
Xo
Figura 15: Iteracion lineal en la base de la teora del caos.
iteraciones de la formula (28), en la parte mas interesante de lo que se suele
llamar diagrama de orbita: la region 3.4 r 4. En r = 3.4 el sistema pre-
senta un ciclo de perodo 2, como lo indican las dos ramas. Conforme r crece
estas ramas se abren, en una bifurcacion que duplica el perodo, dando lugar
a un ciclo de perodo 4. Conforme r sigue creciendo se produce una cascada
de duplicaciones adicionales, con perodos 8, 16, resultantes, hasta que
en r 3.57 la proyeccion se torna caotica. El diagrama parece haber dege-
nerado en una masa de puntos sin estructura. Sin embargo, ocasionalmente,
conforme r contin ua creciendo, el orden reemerge del caos. Esto se aprecia
en forma mas dramatica en la ventana de perodo 3 (zona blanca mas ancha)
que incluye el valor 3.835. (Como un ejemplo, resulta interesante iterar con
(28) en ese r, y cerciorarse de que converge con perodo tres).
A un mas: si se hace el diagrama de orbita, con una escala mayor, en las zonas
57
blancas, sorprendentemente se reproduce el diagrama total, y as indenida-
mente, lo que demuestra su estructura fractal.
Para explicarse este comportamiento hay que visualizar que, al realizar ite-
raciones con la funcion (x), lo estamos tambien haciendo con las funciones
compuestas
2
(x) = ((x)),
3
(x) = (((x))), y en general
(i)
(x) =
(( ((x)) )),
26
las cuales pueden ser convergentes en intervalos en los
que (x) no lo es, e imponen su esquema de convergencia, que desde el pun-
to de vista de (x) representa ciclos periodicos de orden 2
i1
. Los puntos
Figura 16: Impronta del caos en la funcion de crecimiento logstico.
jos de , obviamente, lo son tambien de las funciones compuestas, pero en
cambio los de
2
, por ejemplo, no lo son de
3
(a menos que sean m ulti-
ples). Si durante las iteraciones la variable independiente entra en una zona
de convergencia de una funcion compuesta, convergira a ese punto jo, y, si
son varios, se ira alternando cclicamente, produciendo las ramas m ultiples
tpicas de la gura 16.
La funcion
2
(x) = r
2
x(1 x)[1 rx(1 x)] corresponde a un polinomio de
26
Exactamente la misma gura 16 se obtiene al estudiar
2
(x),
3
(x) .
58
cuarto grado, y su funcion asociada f
2
(x) = x
2
(x) tiene x = a
2
= 0 como
una de sus races, que se puede eliminar, pues no interesa, con lo cual llegamos
a un polinomio de grado 3, cuyos coecientes son: [r
3
, 2r
3
, r
2
(r +1), r
2
+1].
Uno de los ceros de este polinomio - punto jo de
2
(x) - es el valor de
a
1
= 1
1
r
, que podemos eliminar de la ecuacion y reducirla por division al
polinomio cuadratico de coecientes [r
3
, r(r + 1), r + 1], cuyas races son
b
1,2
=
r+1

(r+1)(r3)
2r
, equidistantes de
r+1
2r
que, para ser reales, requieren
que r este fuera del intervalo [1, 3], es decir, en nuestro diagrama de orbi-
ta, r > 3. La convergencia a estos dos valores se da en el intervalo en que
[
d
2
(x)
dx
[ < 1, es decir, 3 < r 3.44948, seg un se puede evaluar numericamente
(Ver la gura 16, el caso 3 de la gura 15 y el ejercicio propuesto al nal de
este punto).
La funcion f
3
(x), asociada con
3
(x), se ha estudiado detalladamente:
es un polinomio de grado siete cuyo parametro es r
(27)
. Una de sus races
corresponde al punto jo a
1
de , y las otras seis pueden ser reales o imagi-
narias, dependiendo del valor de r.
Al dar valores al parametro r desde 3 en adelante y obtener los gracos de
las respectivas funciones f
3
podemos ver como inicialmente las dos primeras
ondulaciones de la curva no cortan al eje x - cuatro races imaginarias - por
ejemplo, en la parte superior de la gura 17, que corresponde a r = 3.78;
pero luego la cortan cuatro veces - races reales distintas - como en el caso
r = 3.90, lo cual nos sugiere buscar el valor intermedio de r en que esas
ondulaciones son tangentes al eje x, y, con el par de la derecha, dan lugar a
tres races dobles.
Se puede demostrar - pero excede el alcance de este tema - que es en
r = 1 + 2

2 donde la curva se hace tangente al eje x en tres puntos - en los


cuales, por consiguiente, su derivada se anula - y produce tres races dobles
-, que, obviamente, quedan dentro de la zona de convergencia del metodo de
iteracion lineal, puesto que en ellas 1 <
d
3
dx
= 0 < 1, y marcan la zona de
triple perodo que caracteriza - seg un Yorke - al caos: En la gura 18 se tiene,
en su parte superior, la funcion f
3
(cuyos ceros coinciden con los puntos jos
de
3
) y, en la inferior, la derivada de
3
. Se puede ver la correspondencia
obvia entre las zonas de convergencia Z1, Z2 y Z3, en que [
d
3
(x)
dx
[ < 1 (zona
encerrada entre las dos horizontales) y las races dobles x1, x2 y x3, lo cual
produce la convergencia de la iteracion a esas tres races. En cambio el punto
jo a de cae en una zona de no convergencia, y por ello no aparece en el
graco de la gura 16.
27
f
3
(x) = r
7
x
7
4r
7
x
6
+2r
6
(3r +1)x
5
2r
6
(3+2r)x
4
+r
4
(r
3
+6r
2
+r +1)x
3
2r
4
(r
2
+
r + 1)x
2
+ r
3
(r
2
+ r + 1)x + 1 r
3
59
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
3
2
1
0
1
f3 con r = 3.78
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
3
2
1
0
1
f3 con r = 3.9
Figura 17: La funcion f
3
antes y despues del caso tangente.
Calculadas numericamente, las races son:
0.95631784197369
0.95631784197369
0.73879612503597
0.51435543896543
0.51435511515870
0.15992883948891
0.15992879740362
Dentro de la precision del calculo, podemos ver que son iguales de dos en dos
(es decir, races dobles). La que no se empareja es el punto jo a
1
de
(28)
, al
que tambien converge desde valores de x en C = [1
1
r
, 1 +
1
r
] para r [1, 3],
pero no en el caso considerado r > 3.
Con la teora elemental de convergencia expuesta se ha podido explicar en
gran parte el comportamiento de las iteraciones de la funcion de crecimien-
to logstico, que hace no mucho tiempo constituyo una intrigante novedad
matematica, y sento los nuevos paradigmas de la teora del caos.
28
En este caso
2

2
1+2

2
60
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
3
2
1
0
1
f3 con r = 3.824
X1 X2
X3
a
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
20
10
0
10
20
dfi3/dx con r = 3.824
Z1 Z2 Z3
Figura 18: Funciones f
3
(x) y
d
3
(x)
dx
en r=1+2

2.
Ejercicio: Estudiar el intervalo de convergencia de iteracion lineal con la funcion

2
(x) mediante dos gracos sincronizados que, para cada valor de r dado, en el inter-
valo 0 < x < 1, muestren, el primero, el graco de f
2
(x), y el segundo, el de
d
2
(x)
dx
,
en el cual se marquen las races de f
2
(x) = 0 y se resalte si estan o no en la franja de
convergencia.
3.2. Metodo de Wegstein o iteracion lineal modicado
MILM
El metodo anterior, de iteracion lineal, es uno de los mas importantes
desde el punto de vista teorico, porque es rico en resultados relacionados
con muchas areas de la Matematica, y al aplicarlo a funciones de iteracion
adecuadas es capaz de generar otros metodos, como el de Newton. Sin em-
bargo, es clara su gran dependencia de la funcion de iteracion (x), de cuya
adecuada seleccion depende en la practica la convergencia y la eciencia del
metodo.
Esta ultima consideracion hace natural buscar adecuaciones a iteracion lineal
que mejoren sus caractersticas. Una de ellas, muy citada en los textos, es el
61
proceso
2
de Aitken, que genera una secuencia de segundo orden cuando
iteracion lineal es solo de orden uno, y su implementacion en el metodo de
Steensen. Aqu vamos a estudiar otra alternativa, debida a Wegstein, que
trata de modicar la formula de iteracion lineal a n de que converja con cual-
quier funcion (aunque no cumpla la condicion suciente de convergencia),
y, en los casos en que converge linealmente, suba su orden de convergencia.
Como veremos, el resultado ya no sera una formula del tipo x
i+1
= (x
i
),
pero cumplira con los objetivos indicados.
En la gura 19 se ha representado una funcion (x), la recta y = x y la
0
0
A B C a
P
Q
R
M N
O
D
S
Figura 19: Deduccion del metodo de Wegstein
intersecci on de ambas, en O, cuya abscisa es el punto jo a. Los puntos co-
nocidos A y B corresponden a dos aproximaciones anteriores (que pueden
haber sido o no obtenidas con iteracion lineal), de abscisas x
i1
y x
i
; y el
punto C, cuya abscisa x
i+1
sera la proxima aproximacion que se obtendra
en iteracion lineal. Se dene el incremento BC = x = x
i+1
x
i
, y se intro-
duce un factor de mejoramiento que opera sobre x, denominado . Es claro
que el valor optimo de en el graco sera aquel que, al multiplicarlo por
x nos llevara directamente al punto jo de abscisa a (es decir, el que hace
x = Ba); pero este valor es imposible de calcular con exactitud, puesto
que, de lograr hacerlo, tendramos una formula cerrada para hallar cualquier
62
raz en una ecuacion cualquiera, la cual, seg un se ha demostrado, es imposi-
ble de obtener.
Sin embargo, J.H.Wegstein
29
propuso una forma de aproximar el valor de
mediante consideraciones geometricas, y obtener un resultado mas preciso
que el de = 1 (el cual representara al metodo de iteracion lineal):
En el triangulo rectangulo isosceles MNO, cada cateto mide ( 1)x, y
en el triangulo rectangulo RNO el angulo = ORN tiene como tangente
NO
RN
. Conocer el angulo sera equivalente a conocer el valor de , ya que
permitira, mediante el trazo de la secante RO, llegar igualmente al valor del
punto jo a. Esto se expresa mediante la relacion tan =
1

=
1
1tan
,
obtenida en RNO. Pero, aunque no podemos obtener , podemos apro-
ximarlo por

= RPQ, cuya tangente puede calcularse como tan

=
QR
PQ
=
(x
i
)(x
i1
)
x
i
x
i1
. Y en seguida podramos hallar un valor aproximado de

=
1
1tan

.
Entonces, en lugar de la secante RO, trazaramos RS, hasta la intersecci on
con la recta x = y. Es decir, as como a = x
i
+( x
i+1
x
i
) = x
i
+((x
i
)x
i
),
podemos llegar a una nueva iteracion con el valor aproximado

: x
i+1
=
x
i
+

((x
i
) x
i
), que corresponde a la formula de Wegstein, y equivale
a encontrar la interseccion de la recta PR con x = y (punto S, de abscisa
x
i+1
).
En resumen, la nueva iteracion sera la abscisa del punto de interseccion de
la secante que pasa por las dos iteraciones anteriores con la recta y = x.
Son, pues, tres las formulas que usaremos en cada iteracion (se ha suprimido
el asterisco, y se sobreentiende que al hablar de y nos referimos a sus
valores aproximados):
tan =
(x
i
) (x
i1
)
x
i
x
i1
(31)
=
1
1 tan
(32)
x
i+1
= x
i
+ ((x
i
) x
i
) (33)
y, aunque las podramos reunir en una sola, conviene matenerlas indepe-
dientes para efectos de analisis. Notese, sin embargo, que ahora x
i+1
ya no
depende solo de x
i
, sino tambien de x
i1
, y (33) ya no es una formula de itera-
cion lineal. Los autores suelen reemplazar en (31) (x
i1
) por x
i
, suponiendo
iteracion lineal, lo cual no es correcto y le quita precision a la formula sin
ninguna ventaja, puesto que (x
i1
) ya fue evaluada en la iteracion anterior.
29
Accelerating convergence of iterative processes. Comun.ACM, 1 (1958) 9.
63
Analisis de en los cuatro casos de convergencia: Si (x) es una
funcion continua en el intervalo de trabajo [xi, xd], por el teorema del va-
lor medio aplicado a (31) podemos armar que tan =

(), donde
[x
i1
, x
i
] [xi, xd]. Usando la formula (32) podemos hallar los intervalos de
variaci on de en cada uno de los casos de convergencia representados en la
gura 9 de la pagina 34 y comprobar que tome valores logicos en cada caso.
Aunque esto no constituye propiamente una demostracion de convergencia,
al menos nos permitira comprobar que el metodo no arroje valores absurdos.
Caso 1: 1 <

(x) < 1 (Convergencia monotona): reemplazando en


(32), 0 < < . Es decir, debe aumentar el tama no del paso de
avance hacia el punto jo.
Caso 2: 1 <

(x) < 0 (Convergencia alternada): el intervalo en que se


mueve resulta [
1
2
, 1], lo cual contribuye a amortiguar moderadamente
el movimiento oscilatorio de las iteraciones alrededor del punto jo, y
as acelera la convergencia.
Caso 3: 1 <

(x) < (Divergencia monotona): aqu resulta < 0,


y con eso reorienta adecuadamente el avance de las iteraciones, que
originalmente se alejaban de a.
Caso 4: <

(x) < 1 (Divergencia alternada): ahora esta en


el intervalo [0,
1
2
], con lo cual act ua mas fuertemente que en el caso 2
para amortiguar el movimiento oscilatorio resonante de las iteraciones
alrededor de a.
Entonces, en todos los casos, los intervalos calculados para resultan dentro
de lo que la logica permita prever en aras de mejorar o alcanzar la conver-
gencia de iteracion lineal. Notese que en los casos 1 y 2 ya no se conoce si la
convergencia acelerada se mantendr a de la misma forma que originalmente,
es decir, monotona y alternada, respectivamente. En las iteraciones de Wegs-
tein podemos pasar de uno a otro caso en forma imprevisible.
En la gura 20 pueden verse los cuatro casos que acabamos de analizar,
y como la nueva iteracion de Wegstein (abscisa del punto D) se aproxima
en todos los casos al punto jo a. En estos gracos, como lo haremos en el
algoritmo, en lugar de escoger x
0
y x
1
= (x
0
), que puede alejarse de la raz
en los casos de no convergencia, se ha preferido utilizar la informacion del
cambio de signo en f(x), es decir, los valores de xi y xd, (representados como
A y B respectivamente) como aproximaciones iniciales.
Vericacion de la convergencia y n umero maximo de iteraciones en
Wegstein: Como en este caso la convergencia puede resultar monotona o
64
0
0
A B a
P
R
O
D
Caso 1
0
0
A B a
P
R
O
D
Caso 2
0
0
A B a
P
R
O
D
Caso 3
0
0
A B a
P
R
O
D
Caso 4
Figura 20: Primera iteracion en los cuatro casos con Wegstein.
alternada, recurriremos, para vericarla, al remate, como en falsa posicion
y en la propia iteracion lineal. En cuanto al n umero maximo de iteraciones,
pese a que Wegstein en general converge mas rapido que iteracion lineal,
lo cual inducira a usar en el, como una cota superior, el NMAX de ese
metodo, hay que tener en cuenta que la formula (22) requiere q < 1; pero
Wegstein funciona tambien cuando q 1, en cuyo caso esa formula ya no es
utilizable. De hecho, el calculo de q ya no es necesario, por lo cual tampoco
necesitaremos trabajar con

(x).
Estabilidad de la formula de Wegstein: Al analizar las formulas (31),(32)
y (33) a la luz de los conceptos del captulo 1, podemos encontrar casos peli-
grosos en cuanto a la estabilidad numerica: si

4
, la formula de es mal
condicionada, lo cual se advierte tambien en la gura (19), pues RQ sera casi
paralela a la recta y = x, y su intersecci on, a mas de difcil de determinar,
puede salir del intervalo de trabajo. Tambien es mal condicionada la formula
(31) cuando (x
i
) (x
i1
). Estos casos pueden bloquear la convergencia
teorica del metodo de Wegstein, pero pueden evitarse cambiando las apro-
ximaciones iniciales. De hecho, al escoger los dos extremos del intervalo que
contiene el cambio de signo como aproximaciones iniciales, se evita tener este
65
problema en la primera iteracion.
3.2.1. Algoritmo de iteracion lineal modicada (Wegstein)
function [ri,rd]=wegstein(xi,xd,nmax,tolx)
expr1=input(Funcion de iteracion\n,s);
fi=inline(expr1);
x=xi; x1=xd;
fix=fi(x);fix1=fi(x1);
it=0;
while it<=nmax
if abs(x-x1)<tolx
%Remate
if real(fix-x)*real(fix1-x1)<0
ri=min(x,x1);rd=max(x,x1);
return
elseif fix==x
ri=x;rd=x;
return
else
p=x+(x-x1);fip=fi(p);
if real(fix-x)*real(fip-p)<0
ri=min(x,p);rd=max(x,p);
return
elseif fip==p
ri=p;rd=p;
return
end
end
%No paso al otro lado de la raz
end
if it<nmax
it=it+1;
tg=(fix-fix1)/(x-x1);
alfa=1/(1-tg);
x1=x;
fix1=fix;
x=x+alfa*(fix-x);
fix=fi(x);
if isnan(x),break,end
if ~(xi<x && x<xd),break,end
else
it=it+1;%Para que no entre a loop
end
end
ri=; rd=;
return
3.3. Metodo de las secantes
Un paso obvio a partir del metodo de Wegstein es quitarle al usuario la
responsabilidad de escoger, o tan solo considerar, una funcion (x): puesto
que para cualquiera de ellas converge, podramos denir una por defecto, que
el algoritmo impondra automaticamente, y as trabajara solo con la funcion
original f(x).
La funcion (x) escogida para llegar al metodo de las secantes - solo un caso
66
particular de Wegstein - es de las que emplea una funcion multiplicadora
(vease 3.1.9 en la pagina 48), en este caso g(x) = 1:
(x) = x + f(x) (34)
Es claro que los puntos jos de esta funcion coinciden con los ceros de f(x),
y al sustituirla en las formulas de Wegstein desaparece de ellas la funcion de
iteracion (x):
tan =
[x
i
+ f(x
i
)] [x
i1
+ f(x
i1
)]
x
i1
x
i
= 1
f(x
i
) f(x
i1
)
x
i1
x
i
=
1
1 tan
=
x
i1
x
i
f(x
i
) f(x
i1
)
x
i+1
= x
i
+ ((x
i
) x
i
) = x
i
+ f(x
i
)
x
i1
x
i
f(x
i
) f(x
i1
)
La formula nal
x
i+1
= x
i
+ f(x
i
)
x
i1
x
i
f(x
i
) f(x
i1
)
(35)
es la del metodo de las secantes, y respecto a ella se puede hacer algunas
consideraciones:
Es una formula aparentemente identica a la (11), del metodo de falsa
posicion simple, aunque utiliza una diferente nomenclatura: ahora el
subndice
i
ha tomado el lugar del caracter I, mientras
i1
reemplaza a
D. Pero, pese a ello, los dos metodos no son iguales, y la nomenclatura
expresa, precisamente, la razon de la diferencia: mientras en el metodo
de falsa posicion simple los dos puntos por los que se traza la secante
deben encerrar a la raz, en secantes tambien las trazamos - a lo que el
metodo debe su nombre - pero sin preocuparnos mas que de la secuencia
de los puntos pivotales; es decir, cada secante pasa por los dos puntos
de la curva cuyas abscisas son las ultimas iteraciones calculadas, tal
como lo vimos en el metodo de Wegstein. En la gura (21) puede verse
la diferencia de comportamiento de las iteraciones en los dos metodos, y
como en general en el de las secantes la convergencia es bilateral y mas
rapida (los n umeros muestran la secuencia de avance), en comparacion
con la unilateral caracterstica de falsa posicion simple (sus teraciones
se acercan a la raz monotonamente, de derecha a izquierda).
En la forma equivalente de (35) x
i+1
= x
i

f(x
i
)
f(x
i
)f(x
i1
)
x
i
x
i1
puede verse
que la diferencia dividida del denominador corresponde a la formula
numerica de la derivada f

(x
i
) por diferencias hacia atras, con h =
67
2 1.8 1.6 1.4 1.2 1
10
0
10
20
f(x)=3*x.
4
2*x.
2
+5*x7
Convergencia por falsa posicin simple
2 1.8 1.6 1.4 1.2 1
10
0
10
20
1 2 3 4
5
f(x)=3*x.
4
2*x.
2
+5*x7
Convergencia por secantes
Figura 21: Comparacion entre FPS y Secantes
x
i
x
i1
. Es decir (35) es muy cercana a Newton, x
i+1
= x
i

f(x
i
)
f

(x
i
)
.
Tendremos ocasion de referirnos a la analoga de los dos metodos.
En cada iteracion, hallar x
i+1
requiere la evaluaci on de una unica fun-
cion f(x
i
) (pues f(x
i1
) se habra calculado en la iteracion anterior).
Esto es importante para estimar la eciencia de un metodo, sobe todo
cuando, como es com un en la practica, las funciones que se emplean
son complicadas.
Respecto a la estabilidad numerica de la formula (35), valen las mismas
consideraciones ya planteadas en Wegstein: si f(x
i
) f(x
i1)
pueden
presentarse inestabilidades que provocan bruscos desplazamientos en el
valor iterado, el cual sale del intervalo de b usqueda (overshooting). Es
decir, no se puede asegurar la convergencia del metodo. Generalmen-
te este problema se soluciona al cambiar las aproximaciones iniciales.
Notese que en este aspecto el metodo de falsa posicion simple no presen-
ta dicultad, por cuanto los signos de las dos ordenadas que se restan
en el denominador son diferentes, as que en realidad tenemos una suma
y no una resta.
68
El algoritmo del metodo de las secantes es practicamente el mismo de
Wegstein, con diferencias menores de tipo mnemotecnico en los nombres
de las variables. Sin embargo, igual se lo ha incluido como algoritmo
3.3.1
3.3.1. Algoritmo del metodo de las secantes
function [ri,rd]=secants(f,xi,xd,nmax,tolx)
x=xi; x1=xd;
fx=f(x); fx1=f(x1);
it=0;
while it<=nmax
if abs(x-x1)<tolx
%Remate
if real(fx)*real(fx1)<0
ri=min(x,x1);rd=max(x,x1);
return
elseif fx==0
ri=x;rd=x;
return
else
p=x+(x-x1);fp=f(p);
if real(fx)*real(fp)<0
ri=min(x,p);rd=max(x,p);
return
elseif fp==0
ri=p;rd=p;
return
end
end
end
if it<nmax
it=it+1;
alfa=(x-x1)/(fx-fx1);
x1=x;
fx1=fx;
x=x-alfa*fx;
fx=f(x);
if isnan(x),break, end
if ~(xi<x && x<xd),break,end
else
it=it+1;% Para que no siga en loop
end
end
ri=; rd=;
return
3.3.2. Resultados de los metodos de Wegstein y de la secante.
A continuacion se incluyen los resultados de los algoritmos de Wegstein y las secantes
sobre la ecuacion de prueba. Con Wegstein se ha escogido la funcion de iteracion
1
(x) =
x
3
1 que no tuvo convergencia en iteracion lineal, y que ahora converge sin problemas, y
como segunda funcion de iteracion,
4
(x) =
(2x
3
+1)
(3x
2
1)
, el cuarto caso del ejemplo de iteracion
lineal. En esta tambien se encuentra convergencia.
Luego aparecen los resultados del metodo de las secantes. Como el implcito en este caso
es f(x) + x, que coincide con
1
(x), los resultados son identicos.
69
Solucion de una ecuacion en la computadora
------------------------------------------
Extremos del rango: [-3,3]
Paso de recorrido: 1
Tolerancia x: 5e-11
Funcion de iteracion: x.^3-1
Numero maximo de iteraciones: 10
ECUACI

ON: x.^3-x-1 = 0
Metodo de iteracion lineal modificado
Hallo cambio de signo entre 1.000 y 2.000
it x fi(x) x1 fi(x1)
---------------------------------------------------------------------------
0 1.000000000e+000 0.000000000e+000 2.000000000e+000 7.000000000e+000
1 1.166666667e+000 5.879629630e-001 1.000000000e+000 0.000000000e+000
2 1.395604396e+000 1.718234911e+000 1.166666667e+000 5.879629630e-001
3 1.313656661e+000 1.266969185e+000 1.395604396e+000 1.718234911e+000
4 1.324016115e+000 1.321024974e+000 1.313656661e+000 1.266969185e+000
5 1.324725250e+000 1.324756351e+000 1.324016115e+000 1.321024974e+000
6 1.324717952e+000 1.324717932e+000 1.324725250e+000 1.324756351e+000
7 1.324717957e+000 1.324717957e+000 1.324717952e+000 1.324717932e+000
8 1.324717957e+000 1.324717957e+000 1.324717957e+000 1.324717957e+000
---------------------------------------------------------------------------
Raz en [1.324717957244714e+000 , 1.324717957244746e+000]
===========================================================================
Funcion de iteracion: (2*x.^3+1)./(3*x.^2-1)
Numero maximo de iteraciones: 10
it x fi(x) x1 fi(x1)
---------------------------------------------------------------------------
0 1.000000000e+000 1.500000000e+000 2.000000000e+000 1.545454545e+000
1 1.523809524e+000 1.353767353e+000 1.000000000e+000 1.500000000e+000
2 1.390878027e+000 1.328459855e+000 1.523809524e+000 1.353767353e+000
3 1.313782387e+000 1.324831081e+000 1.390878027e+000 1.328459855e+000
4 1.325376813e+000 1.324718361e+000 1.313782387e+000 1.324831081e+000
5 1.324724701e+000 1.324717957e+000 1.325376813e+000 1.324718361e+000
6 1.324717953e+000 1.324717957e+000 1.324724701e+000 1.324717957e+000
7 1.324717957e+000 1.324717957e+000 1.324717953e+000 1.324717957e+000
8 1.324717957e+000 1.324717957e+000 1.324717957e+000 1.324717957e+000
---------------------------------------------------------------------------
Raz en 1.324717957244746e+000
===========================================================================
Metodo de las secantes
it x f(x) x1 f(x1)
---------------------------------------------------------------------------
0 1.000000000e+000 -1.000000000e+000 2.000000000e+000 5.000000000e+000
1 1.166666667e+000 -5.787037037e-001 1.000000000e+000 -1.000000000e+000
2 1.395604396e+000 3.226305152e-001 1.166666667e+000 -5.787037037e-001
3 1.313656661e+000 -4.668747596e-002 1.395604396e+000 3.226305152e-001
4 1.324016115e+000 -2.991140971e-003 1.313656661e+000 -4.668747596e-002
5 1.324725250e+000 3.110134126e-005 1.324016115e+000 -2.991140971e-003
6 1.324717952e+000 -2.035090474e-008 1.324725250e+000 3.110134126e-005
7 1.324717957e+000 -1.378896997e-013 1.324717952e+000 -2.035090474e-008
8 1.324717957e+000 2.220446049e-016 1.324717957e+000 -1.378896997e-013
---------------------------------------------------------------------------
Raz en [1.324717957244714e+000 , 1.324717957244746e+000]
70
3.3.3. Orden de convergencia del metodo de las secantes
La teora de la seccion 3.1.8 no puede aplicarse directamente a la formula
(35) o a Wegstein por cuanto estas, aunque deducidas a partir de ella, ya no
son casos de iteracion lineal - basta observar que x
i+1
ya no es funcion solo
de x
i
, sino tambien de x
i1
. Se debe, entonces, hacer un analisis particular,
a partir de la secante, pero valido tambien para Wegstein, que relacione las
distancias sucesivas entre las iteraciones y la raz.
Podemos abreviar la formula (35) sustituyendo f(x
j
) por y
j
y sacando com un
denominador, de la siguiente manera:
a +
i+1
= x
i+1
=
x
i
y
i1
x
i1
y
i
y
i1
y
i
= a +
i+1
(36)
donde usaremos
j
para el error de x
j
con respecto a la raz a. Luego

i+1
=
(x
i
y
i1
x
i1
y
i
) a(y
i1
y
i
)
y
i1
y
i
=
y
i1

i
y
i

i1
y
i1
y
i
Desarrollando por Taylor alrededor de a:
f(a +
i1
) =

k=0
f
k
(a)

k
i1
k!
f(a +
i
) =

k=0
f
k
(a)

k
i
k!
Y reemplazando (como f(a) = 0, se omite k = 0):

i+1
=

k=1
f
k
(a)
k!
[
k
i1

k
i

i1
]

k=1
f
k
(a)
k!
[
k
i1

k
i
]
Para j sucientemente grande, [
j
[ [
j
[
2
[
j
[
3
, y despues
de un n umero suciente de iteraciones podemos quedarnos con las primeras
potencias no nulas
30
:

i+1
.
=
f

(a)
2
[
2
i1

2
i

i1
]
f

(a)[
i1

i
]
=
f

(a)
i

i1
2f

(a)
Entonces:
lm
i
[
i+1
[
[
i
[[
i1
[
=
[f

(a)[
2[f

(a)[
= C (37)
30
Note que, en el numerador, el termino encerrado en corchetes se anula cuando k = 1.
71
Si f C
2
(xi, xd) y f

(a) ,= 0 se tiene una raz simple. Sea p el orden de


convergencia para ese caso. Por la denicion 1.1.1, dado que x
j
= x
j

a, para j = i 1, i, i + 1, tenemos:
lm
i
[
i+1
[
[
i
[
p
= (38)
Es decir, para i sucientemente grande:
[
i
[ = [
i1
[
p
[
i1
[ = (
1

[
i
[)
1
p
=

1
p
[
i
[
1
p
Y, reemplazando (37) en (38):
[
i
[
p
= C[
i
[

1
p
[
i
[
1
p
= C

1
p
[
i
[
1+
1
p
Si en esta se igualan potencias de [
i
[ a izquierda y derecha:
p = 1 +
1
p
p
2
p 1 = 0 p =
1 +

5
2
1.618 (39)
Y a su vez, para la constante de convergencia:
= C

1
p

1+
1
p
= C
1+

5
2
= C
de donde
=
_
[f

(a)[
2[f

(a)[
_

51
2
(40)
El orden de convergencia del metodo de las secantes hacia una raz simple
de la ecuacion f(x) = 0 es, entonces, la omnipresente razon aurea 1.618,
y el exponente de la constante, su inversa 1 0.618.
Aunque no llega a ser cuadratico, el metodo de la secante (y Wegstein) se
aproxima mucho a ello: tiene convergencia bastante mas rapida que lineal
(se suele llamarla convergencia superlineal ), y, como ya se hizo notar, solo
necesita la evaluaci on de una funcion en cada iteracion.
Para terminar este analisis consideremos el caso de las races dobles, donde
se tiene f

(a) = 0, f

(a) ,= 0:

i+1
.
=
f

(a)
2
[
2
i1

2
i

i1
]
f

(a)
2
[
2
i1

2
i
]
=

i

i1

i1
+
i
Como antes, para una i sucientemente grande podemos sustituir:
[
i+1
[ = [
i
[
p
[
i1
[ =

1
p
[
i
[
1
p
72
y nos queda:
[
i
[
p
=
[
i
[

1
p
[
i
[
1
p

1
p
[
i
[
1
p
[ +[
i
[

1
1
p
[
i
[
p+
1
p
+ [
i
[
p+1
=

1
p
[
i
[
1+
1
p
Para que los tres terminos de la igualdad anterior sean homogeneos como
lo requiere la igualdad, es necesario que p = 1, (es decir, que el orden de
convergencia sea uno) y tenemos:
[
i
[
2
+ [
i
[
2

1
[
i
[
2
= 0
de donde se extrae la constante de convergencia
1 +
1

= 0
2
+ 1 = 0 =
1 +

5
2
0.618 < 1
Es decir, la convergencia del metodo de las secantes hacia races dobles (y
m ultiples en general) es lineal.
3.4. Metodo de Newton.
Este metodo, publicado por primera vez en 1685, se conoce tamben como
Newton-Raphson y es, probablemente, el mas utilizado para encontrar las
races de ecuaciones no lineales. Su idea fundamental aparece, en forma mas
o menos directa, tambien para resolver sistemas de ecuaciones no lineales y
para hallar races complejas de ecuaciones.
Como ya se ha mencionado, tiene orden de convergencia dos hacia races
simples, aunque es solo lineal hacia las m ultiples.
3.4.1. Deduccion de la formula fundamental
Estudiemos el origen de la formula de Newton desde dos puntos de vista:
el primero, que muestra su cercano parentesco con el metodo de la secante, y
el segundo, que enfatiza la precision y el error de truncamiento de la formula.
Newton como mejora, y a su vez caso particular del metodo de
iteracion lineal: Esta forma de llegar a la formula de Newton parte de
la misma idea que empleamos en el metodo de Wegstein, buscando mejorar
iteracion lineal. De hecho, la gura 22 que viene a continuacion es practica-
mente la misma gura 19, y los argumentos son esencialmente los mismos
que entonces.
Dados los puntos A,B y C, de abscisas respectivamente x
i1
, x
i
y x
i+1
, que
73
0
0
A B C a
P
Q
R
M N
O
D
S
Figura 22: El metodo de Newton como mejora a I.Lineal
corresponden al metodo de iteracion lineal, la idea, desde x
i
, era aplicar un
factor al incremento x = BC para conseguir, si no llegar directamente a
la raz a, lo cual es imposible, al menos una mayor cercana que en iteracion
lineal. Para ello se haba deducido geometricamente que encontrar el valor
ideal de es equivalente a hallar el angulo = ORN, de la secante RO; y
aunque calcularlo con exactitud tambien es imposible, se puede aproximarlo
por un angulo cercano, calculable con los datos de iteraciones anteriores.
Mientras en el metodo de Wegstein lo hicimos mediante el angulo de la se-
cante PR que corta a la curva en los puntos de abscisas x
i1
y x
i
, en el de
Newton vamos a aproximar con el angulo
N
subtendido por la tangente
a la curva en el punto R, de abscisa x
i
, y su tangente trigonometrica por

(x
i
). Esta aproximacion es mas cercana que la de Wegstein, y por eso ge-
nera una mayor velocidad de convergencia.
Entonces, para aproximar la secante RO, trazaramos la tangente en R,
hasta la interseccion con la recta x = y en el punto S. Es decir, proce-
deramos en forma paralela a la de Wegstein, pero con la nueva forma de
aproximaci on a . La nueva iteracion (abscisa del punto D) tendra el valor
x
i+1
= x
i
+
N
((x
i
) x
i
), donde
N
=
1
1

(x
i
)
, que equivale a encontrar la
intersecci on de la tangente en R con x = y (punto S, de abscisa x
i+1
).
74
En resumen, la nueva iteracion sera la abscisa del punto de interseccion de
la tangente a la curva en la ultima iteracion con la recta y = x.
Hasta all se muestra un paralelismo completo entre los metodos de Wegstein
y de Newton, pero la forma estandar de este a nade la misma consideracion
que nos permitio llegar desde Wegstein a su caso especial, el metodo de la
secante: asignar por defecto a (x) la funcion f(x) + x. La formula nal
resulta, entonces:
x
i+1
= x
i
+
N
((x
i
) x
i
) x
i+1
= x
i
+
1
1

(x
i
)
f(x
i
) = x
i

f(x
i
)
f

(x
i
)
As queda completo el proceso, y se puede ver la gran cercana entre el
metodo de Newton y el de la secante, que ya se hizo notar a partir de otras
consideraciones en las observaciones sobre este metodo.
Por otro lado, como ya conocemos, la expresion x
i

f(x
i
)
f

(x
i
)
corresponde tam-
bien a una funcion de iteracion lineal, as que Newton puede ser considerado
como un caso especial de ese metodo.
La formula de Newton a partir del desarrollo en series de Taylor.
Este enfoque, en cambio, permite gracar el avance y analizar el error de
truncamiento de la formula. Parte del desarrollo en serie de Taylor de la fun-
cion f(x) alrededor de la aproximaci on x
i
, cercana a la raz.
f(x) = f(x
i
) + f

(x
i
)(x x
i
) + f

(x
i
)
(x x
i
)
2
2
+ f

(x
i
)
(x x
i
)
3
3!
+
Como a esta en el entorno cercano de x
i
, es lcito asignarle ese valor a x,
y despreciar los terminos de ordenes superiores a uno, que en general son
mucho mas peque nos. As tenemos la siguiente igualdad de primer orden:
0 = f(a)
.
= f(x
i
) + f

(x
i
)(a x
i
) a x
i
.
=
f(x
i
f

(x
i
)
a
.
= x
i

f(x
i
)
f

(x
i
)
Que es una nueva aproximacion a la raz a, y en consecuencia se llamara x
i+1
:
x
i+1
= x
i

f(x
i
)
f

(x
i
)
(41)
Por consiguiente, para llegar a la expresion de Newton se ha sustituido la
funcion por la recta y = f(x
i
) +f

(x
i
)(xx
i
) en las vecindades de la raz. Es
decir, se ha linealizado a la funcion, y luego se ha encontrado la interseccion
de esa recta con el eje x.
Veamos las caractersticas de esa recta:
75
Su ordenada en x
i
es y = f(x
i
) + 0 = f(x
i
). Es decir, tiene la misma
ordenada que la funcion f en esa abscisa.
Si la escribimos en la forma y = f

(x
i
)x + (f(x
i
) x
i
f

(x
i
)), podemos
ver que su pendiente f

(x
i
) es la misma que la de la funcion en x
i
.
0
X1 X2 X3 X4
Figura 23: Iteraciones en el metodo de Newton.
Por estas dos caractersticas concluimos entonces que la recta en cuestion es
la tangente a la curva en el punto x
i
, y cada iteracion puede determinarse
gracamente trazando la tangente a la curva por la iteracion anterior y ha-
llando su interseccion con el eje x, seg un se puede ver en la gura 23; analoga,
como poda esperarse, a la gura 22, pero en esta la intersecci on, al tratarse
de la b usqueda de punto jo, era con la recta y = x, en tanto que ahora, en
la forma estandar de Newton que utiliza f(x), se la hace con y = 0.
Por esto, el metodo de Newton tambien se denomina metodo de la tangente,
o metodo de linealizacion. El error de truncamiento que se ha dado en la serie
por tomar solo los terminos de primer orden es R
1
(x) = f

()
(xx
i
)
2
2
, donde
se encuentra entre x y x
i
.
3.4.2. Convergencia del metodo de Newton [Com05].
Del estudio del orden de convergencia desarrollado en la seccion de itera-
cion lineal sabemos que Newton, hacia races simples, es de orden cuadratico,
76
y, seg un la formula (24), la constante de convergencia o de error es
|

(a)|
2
.
Basados en ello, si denimos M de modo que maximice a esa constante:
M
1
2

(y)
f

(x)

, x, y I
de la denicion de orden de convergencia tenemos:
[
k+1
[ M
2
k
[M
k+1
[ (M
k
)
2
y, por recurrencia, llegamos a
[
k
[
1
M
[M
0
[
2
k
(42)
De donde se ve que el metodo de Newton converge si se escoge el valor inicial
sucientemente cercano a la raz a; es decir, mas precisamente, tal que
[M
0
[ = [M(x
0
a)[ < 1 (43)
Este resultado, de tipo local, asegura la convergencia cuando la aproximaci on
inicial se escoge convenientemente. En cambio, en un resultado de tipo global
se asegura la convergencia para todos los puntos de un intervalo previamente
conocido alrededor de la raz.
Un ejemplo de resultado global es el del siguiente teorema, que se ofrece sin
demostracion:
Teorema 3.4.2.1. Sea f(x) C
2
([xi, xd]), con [xi, xd] intervalo cerrado y
acotado. Si
1. f(xi).f(xd) < 0
2. f

(x) ,= 0, x [xi, xd]


3. f

(x) 0, o si no f

(x) 0, x [xi, xd]


4.

f(xi)
f

(xi)

xd xi;

f(xd)
f

(xd)

xd xi
Entonces la ecuacion f(x) = 0 tiene una unica raz a en [xi, xd] y el meto-
do de Newton converge a a para cualquier seleccion de x
0
[xi, xd].
Otro teorema de convergencia global puede enunciarse para el metodo de
Newton si lo consideramos un caso especial de iteracion lineal y aplicamos a
(x) = x
f(x
i
f

(x
i
)
la condicion suciente de convergencia (19):
x I, [

(x)[ q < 1 x I, [
f(x)f

(x)
(f

(x))
2
[ q < 1
77

Esta fue deducida para convergencia lineal; es decir, no considera el orden


cuadratico del metodo de Newton hacia races simples, pero, si asegura una
convergencia lineal, al cumplirse sus condiciones con mayor razon habra con-
vergencia de 2do. orden.
3.4.3. Casos anomalos.
1 0 1 2 3 4
2
1
0
1
2
C
a
s
o

1
Xo
0 1 2 3
1
0
1
2
3
C
a
s
o

2
Xo
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07
0.1
0.05
0
0.05
0.1
0.15
C
a
s
o

3
Xo
Figura 24: Casos anomalos en el metodo de Newton.
Del graco de las iteraciones de Newton se pueden extraer varias conclu-
siones. Una de ellas es que, para determinadas formas de funciones y valores
iniciales, el metodo no converge.
En la gura 24 se tienen tres casos muy conocidos de este comportamiento
anomalo: funciones con punto de inexion cercano a la raz (caso 1); extremos
vecinos a la raz (caso 2) y races muy proximas entre s (caso 3). Se puede
apreciar que el comportamiento de las iteraciones puede ser cclico, o tambien
comenzar a oscilar alrededor de alg un punto (que no necesariamente debe ser
la raz), para terminar alejandose bruscamente del entorno, como sucede en
el caso 2. En estos ejemplos se diculta el cumplimiento de condiciones de
convergencia de tipo global como la del teorema 3.4.2.1. Pero de cualquier
manera, tomando adecuadas precauciones se puede lograr convergencia con
78
una aproximaci on inicial sucientemente cercana, que cumpla la condicion
(43).
3.4.4. N umero maximo de iteraciones en Newton
Sea q la constante de convergencia cuadratica, tal que
k
q
2
k
1

2
k
0
,
seg un (42). Si suponemos que q[x
0
a[ < 1, podemos estimar de la siguiente
manera el n umero de iteraciones necesario para llegar a satisfacer una tole-
rancia tolx a partir de un intervalo con cambio de signo de longitud PASO:
Si bien
0
< PASO, para hallar una cota segura de k supondremos que

0
= PASO, y asimismo que
k
= tolx. Sea 10
r
=
tolx
PASO
el factor de
reduccion del error, y x = x
k
tal que:
[ x a[ < tolx = 10
r
PASO q
2
k
1
PASO
2
k
10
r
PASO
Tomando logaritmos:
_
2
k
1
_
log(q) + 2
k
log(PASO) r + log(PASO)
_
2
k
1
_
log(q.PASO) r
2
k
1
r
log(q.PASO)
k log
2
_
1
r
log(q.PASO)
_
= log
2
_
1 +
r
log(q.PASO)
. .
Positivo
_
Si hacemos igual a la fraccion contenida en el corchete, dado que > 1
(generalmente es mucho mayor), por Taylor se tiene que
log
2
( + 1) =
ln( + 1)
ln2
<
ln() +
1

ln2
= log
2
() +
1
.ln2
Luego, por el lado de la seguridad, si .ln2 1, (de hecho es generalmente
mucho mayor) como el n umero de iteraciones debe ser entero:
k log
2
r + log
2
_
log(q.PASO)
_
| + 2
Como el segundo logaritmo base 2 es negativo, y, nalmente, consideran-
do que no siempre la convergencia cuadratica se presenta desde la primera
iteracion, la formula para NMAX resulta:
NMAX = log
2
log
_
PASO
tolx
_
+ 0.5| + 3 (44)
La cual es una cota, no el valor exacto como suceda en biseccion, conside-
rablemente mas peque na que el NMAX en ese metodo: por ejemplo, para
reducir un PASO = 1 por un factor de 10
8
(es decir tolx = 1E 8), en
79
biseccion se requiriran 27 iteraciones, mientras que en Newton (si converge)
maximo seran 6.
Hay que anotar que el valor calculado sera insuciente cuando la raz busca-
da sea m ultiple, pues en ese caso Newton es solo lineal. Se podra entonces
aplicar el algoritmo de iteracion lineal, con la funcion (x) = x
f(x)
f

(x)
, que
calcula NMAX para orden de convergencia 1.
3.5. Enfoque del algoritmo de Newton
Se puede desarrollar el algoritmo de Newton simple, aplicando lo basico
de la teora que hemos visto, y dejando en manos del usuario la correcta
seleccion de la aproximacion inicial. De este modo, el metodo funcionara,
probablemente, la mayora de las veces, pero, seg un si se cumpla o no la
condicion de convergencia, alcanzara o no a obtener la raz con la tolerancia
especicada. Este es el enfoque mas sencillo, y el que se puede encontrar
en la mayora de textos. El algoritmo correspondiente ([Com05]) puede ser
implementado en la funcion que sigue, donde ademas se usan tres formas al-
ternativas de vericaci on de la convergencia, con cada uno de los tres criterios
conocidos: tolerancia horizontal absoluta y relativa y tolerancia vertical:
function [x0,err,it,y]=newton(f,df,x0,tolx,epsilon,nmax)
% Funcion para el metodo de Newton.
% Datos: - f funcion de entrada, como f o @f
% - df derivada de f, como df o @df
% - x0 aproximacion inicial del cero de f
% - tolx tolerancia para la raz
% - epsilon tolerancia sobre los valores de la funcion
% - nmax numero maximo de iteraciones
% Salida: - x0 aproximacion del cero
% - err estimacion del error de x0
% - it numero de iteraciones
% - y valor de f(x0)
for it=1:nmax
x1=x0-feval(f,x0)/feval(df,x0);
err=abs(x1-x0);
relerr=2*err/(abs(x1)+tolx);
x0=x1;
y=feval(f,x0);
if(err<tolx)|(relerr<tolx)|(abs(y)<epsilon)
break
end
end
Pero la alternativa que seguiremos es mas ambiciosa: considerando que
es un metodo especialmente eciente, por ser cuadratico hacia races sim-
ples, quisieramos que funcionara siempre, para lo cual se le pueden a nadir
caratersticas orientadas a llevarle en todos los casos al resultado correcto;
es decir, que en una sola corrida del algoritmo encuentre las races busca-
das. Para ello debera escoger de la mejor forma la aproximacion inicial, y
80
converger - o tratar al menos de hacerlo - para cualquier caso. Ademas, man-
tendremos la forma de vericacion de la convergencia propia del analisis de
intervalos, como hemos venido haciendo en todos los metodos. Veamos las
caractersticas de esta versi on, a la que llamaremos Newton con metrica:
Seleccion de aproximaci on inicial. Seg un (43) debemos comenzar por
una aproximaci on sucientemente cercana a la raz para no tener pro-
blemas. Hay varias formas de cumplir con este requisito:
1. Achicar el paso en la b usqueda de cambio de signo: aunque es la
forma mas sencilla, es solo un metodo de fuerza bruta, que puede
convertir, si se usa indiscriminadamente, al metodo mas eciente
en el proceso mas lento de todos, y, obviamente, no lo utilizaremos.
2. Usar el metodo de Newton para nalizar con orden cuadratico
un proceso iterativo iniciado por un algoritmo de convergencia
global, una vez que este haya ya logrado una buena aproximaci on:
se puede, por ejemplo, escribir adecuados programas que combinen
biseccion con Newton, o falsa posicion con Newton.
3. Analizar el caso concreto que se tenga entre manos en busca de
una formula especial para el: Ejemplo, veamos como se podra
obtener una formula para la aproximaci on inicial en el caso de
dos races muy cercanas, que fue uno de los casos anomalos de la
pagina 77 (Figura 25).
Sean a
1
y a
2
dos races muy cercanas de la ecuacion f(x) = 0 y x el punto in-
termedio donde la derivada se anula. Supongamos, ademas, que x se encuentra
en el punto medio entre las dos races (suposicion que no es necesariamente
cierta, pero, dada la peque na distancia entre a
1
y a
2
, no representa mayor
imprecision). Desarrollando f(x) en serie de Taylor alrededor de x resulta:
f(x) = f( x) + f

( x)(x x) + f

( x)
(x x)
2
2
+ O((x x)
3
)
Reemplazando x por a
1
(o a
2
), que estan en la vecindad de x, y considerando
que la distancia entre x y a
1
(o a
2
) es d, tenemos la igualdad de segundo
orden:
0 = f(a
1
) f( x) + f

( x)(x x) + f

( x)
(x x)
2
2
Y, como x anula a f

(x):
0 f( x) + f

( x)
d
2
2
d

2f( x)
f

( x)
(45)
Notese que, dada la forma de la curva entre a
1
y a
2
, el signo negativo en la
raz cuadrada permite que d sea real.
81
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07
0
a1 a2
x
_
d d
Figura 25: Aproximacion inicial para races muy cercanas.
Una vez calculada la distancia d, los valores a
1
0
= xd y a
2
0
= x+d pueden
ser usados como aproximaciones sucientemente cercanas a las races para
comenzar a iterar con exito usando Newton desde all.
Aunque factible, este procedimiento es particular para este caso, y, ademas,
requiere que previamente se haya encontrado el cero de la ecuacion f

(x) = 0
en el entorno identicado.
4. Basarse en un criterio global de convergencia. Mencionemos un
criterio com un:
Teorema 3.5.1. Si f(xi)f(xd) < 0 y si, ademas, f

(x) y f

(x)
son no nulas y conservan el signo para xi x xd, la unica raz a
de la ecuacion f(x) = 0 puede ser calculada mediante el metodo de
Newton con una precision a placer partiendo de la aproximacion
inicial x
0
que verique la desigualdad: f(x
0
)f

(x
0
) > 0.
En especial, este teorema nos permite escoger entre xi y xd como
aproximacion inicial. Aquel que cumpla la condicion expresada re-
cibe el nombre de extremo de Fourier. Muchas veces basta escoger
de esta manera x
0
para conseguir un comportamiento optimo del
metodo de Newton. Sin embargo, como las condiciones requeridas
por el teorema anterior no siempre se dan, en la implementacion
de la seccion 3.6 emplearemos un criterio equivalente, basado en
82
la condicion suciente de convergencia del metodo de Iteracion
Lineal (19), del cual Newton es un caso especial: tomaremos como
x
0
el extremo en el cual sea menor el valor de [

(x)[ =

f(x)f

(x)
(f

(x))
2

.
De manera que, si ambos extremos satisfacen esta condicion, es-
taremos tomando el asociado a un menor q; si solo uno de los dos
la cumple, ese sera x
0
; y, nalmente, si ninguno lo hace, al menos
partimos del que se acerca mas a su cumplimiento.
Metrica para controlar la convergencia. Para comprobar que cada nueva
iteracion se encuentra mas cerca de la raz buscada, dentro del intervalo
[xi, xd] que contiene el cambio de signo, se puede usar como metrica el
modulo de la ordenada: solo si a la nueva abscisa x
i
calculada le corres-
ponde una ordenada f(x
i
) de menor longitud que f(x
i1
), aceptaremos
x
i
como nueva iteracion. En caso contrario, la corregiremos, con alguno
de los criterios que describiremos en seguida.
Adicionalmente se puede controlar que x
i
permanezca en todos los ca-
sos dentro del intervalo [xi, xd].
Correccion de pasos no convergentes. Aunque el metodo de Newton
siempre apunta en la direccion correcta, a veces el tama no del paso
puede fallar. Tpicamente, puede resultar exagerado (overshooting), y
hay que discutir formas de corregirlo
31
. Una forma de correccion es
aplicar a esa iteracion, en vez de la formula de Newton, cuyo paso
es
f(x
i
)
f

(x
i
)
, una de mayor orden, que muy probablemente corregira el
problema. El caso mas conocido es el que se conoce como formula de
Halley, que veremos en seguida:
Desarrollando f(x) en serie de Taylor alrededor de x
i
con mas terminos que los
lineales empleados en la deduccion de la formula de Newton resulta:
f(x) = f(x
i
) + f

(x
i
)(x x
i
) + f

(x
i
)
(x x
i
)
2
2
+ O((x x
i
)
3
)
Reemplazando x por a, que esta en la vecindad de x
i
, y sustituyendo luego x =
x
i+1
x
i
, tenemos la igualdad de segundo orden:
0 = f(a) f(x
i
) + f

(x
i
)(a x
i
) + f

(x
i
)
(a x
i
)
2
2
0 = f(x
i
) + f

(x
i
)(x
i+1
x
i
) + f

(x
i
)
(x
i+1
x
i
)
2
2
0 = f

(x
i
)
(x)
2
2
+ f

(x
i
)x + f(x
i
) (46)
31
Mas que en el problema unidimensional que estamos tratando, estas correcciones son
necesarias cuando se aplica Newton a problemas no lineales en mas dimensiones.
83
Ecuacion de segundo grado en x, que podra resolverse directamente, aunque
luego habra que escoger cual de las dos races interesa. Para evitarlo, el enfoque
de Halley
32
fue algo diferente: conocedor de que el paso de Newton x =
f(x
i
)
f

(x
i
)
tiene siempre la direccion correcta, prerio reemplazar por el una de las instancias
de x de la ecuacion (46) para hallar una aproximacion a la otra:
0 = x
_
f

(x
i
)
_
f(x
i
)
2f

(x
i
)
_
+ f

(x
i
)
_
+ f(x
i
) x =
f(x
i
)
_
f

(x
i
)
_
f(x
i
)
2f

(x
i
)
_
+ f

(x
i
)

De donde, despejando x
i+1
y ordenando, queda:
x
i+1
= x
i

f(x
i
)
f

(x
i
)
f(x
i
)f

(x
i
)
2f

(x
i
)
(47)
Esta formula de Halley es de tercer orden, como puede demostrarse, y su x
i+1
di-
ere claramente de la de Newton precisamente en los casos en que no se cumple
la condicion suciente de convergencia (19), como se puede comprender analizan-
do en esos casos la magnitud de la correccion del 2do termino del denominador.
Aunque puede considerarselo un metodo en s, que requiere la evaluacion de tres
funciones por iteracion (f(x), f

(x) y f

(x)), nosotros la usaremos mas bien como


una correccion a Newton en los casos en que este se aparta de la convergencia.
Adicionalmente, si Halley no logra restablecer la convergencia, introdu-
cimos un segundo criterio, debido a Armijo: acotamos de ser necesario
el ultimo paso (de Halley) con el doble del anterior y luego lo vamos
bisecando, hasta alcanzar una ordenada que ya satisfaga la metrica.
Forma de vericar la convergencia: examinamos en seguida varias al-
ternativas.
1. Distancia entre dos iteraciones menor que la tolerancia:
[x
k+1
x
k
[ < tolx [x
k+1
a[ < tolx
Esta medida no siempre es correcta, como se puede ver en la gura
26, similar a la g.(10), donde la distancia entre dos puntos P y
P1, cuyas abscisas corresponden a dos iteraciones x
k
y x
k+1
, es
mucho mas peque na que la distancia de x
k+1
a la raz a y no se
puede, por consiguiente, usarla como medida de convergencia.
2. [x
k+1
x
k
[ < [x
k
x
k1
[ < tolx [x
k+1
a[ < tolx
Esta forma de vericar la convergencia es correcta, y se puede
demostrarla a partir de la formula (42). Sin embargo, para utili-
zarla se requieren dos iteraciones sucesivas, es decir, una iteracion
32
Sir Edmond Halley, 1656-1742, astronomo ingles, descubridor del cometa que lleva su
nombre, contemporaneo y colaborador de Newton.
84
0
a
P P1
Figura 26: Cercana de dos iteraciones que no indica convergencia.
mas que las estrictamente necesarias. Ademas, no nos entrega un
intervalo que contenga a la raz.
3. Como mantenemos la meta de llegar a un intervalo que encierre
a la raz en una longitud sucientemente peque na, se implemen-
tara en este caso tambien el remate, al igual que en falsa posicion
y en iteracion lineal.
3.6. Algoritmo de Newton con metrica
Todos los puntos anteriores estan implementados en los siguientes guiones:
%Funcion para calcular las races por Newton con metrica
%Usa derivadas explcitas, o, si no se han ingresado, derivacion numerica.
function [ri,rd] = newtonm(f,fp,ind1,fs,ind2,XI,XD,nmax,tolx)
%Argumentos: f: Funcion cuyos ceros se buscan
% fp: Derivada de f
% ind1: = 1 si se leyo la derivada, 0 si no.
% fs: Segunda derivada d f
% ind2: = 1 si se leyo la segunda derivada, 0 si no.
% XI,XD: Extremos izquierdo y derecho del intervalo de cambio de signo
% nmax: Numero maximo de iteraciones
% tolx: Tolerancia horizontal absoluta
%
%En cada iteracion de Newton aplica la metrica y la pertenencia a [XI,XD]
%Si no esta bien, usa Halley, y si aun no esta, la busqueda lineal con Armijo.
X=[XI XD];
%Calcula en forma diferente las derivadas si leyo una funcion o deriva numericamente
if ind1 == 1 & ind2 == 1
rx=[abs(f(XI)*fs(XI)/fp(XI)^2) abs(f(XD)*fs(XD)/fp(XD)^2)];%Para no usar ./, .^2, etc.
else
if ind1==1,fpi=fp(XI);fpd=fp(XD);
85
else, fpi=fp(XI,f);fpd=fp(XD,f);
end
if ind2==1,fsi=fs(XI);fsd=fs(XD);
else,fsi=fs(XI,f);fsd=fs(XD,f);
end
rx=[abs(f(XI)*fsi/fpi^2) abs(f(XD)*fsd/fpd^2)];%Para no usar ./, .^2, etc.
end [r i]=min(rx); x=X(i);x1=X(3-i); dx=XD-XI;
if ind1==1,fpr=fp(x);else,fpr=fp(x,f); end y=f(x);
y1=f(x1); it=0;
fprintf(%2d % 15.9e % 15.9e % 15.9e % 15.9e % 15.9e\n,it,x,y,x1,y1,fpr)
while it<=nmax
if abs(x-x1)<tolx
%Remate
if abs((x-x1)/x)<eps | y*y1==0
ri=x; rd=x;
return
elseif y*y1<0
ri=min(x,x1);rd=max(x,x1);
return
else
p=x+x-x1;fpp=f(p);
fprintf( r\t\t\t\t p= % 15.9e\t f(p)= % 15.9e\n,p,fpp)
if fpp*y==0
ri=p; rd=p;
return
elseif fpp*y<0
ri=min(x,p);rd=max(x,p);
return
else
it=it+1;
end
end
end
%Otra iteracion:
if it<nmax
it=it+1;
dx1=dx;
x1=x;
y1=y;
fpr1=fpr;
dx=y/fpr;
x=x-dx;
y=f(x);
if ind1==1, fpr=fp(x);
else,fpr=fp(x,f);
end
fprintf(%2d % 15.9e % 15.9e % 15.9e % 15.9e % 15.9e\n,it,x,y,x1,y1,fpr)
if x<=XI | x>=XD
%Use Halley
[x,y,fpr]=halley(f,fp,ind1,fs,ind2,x1,y1,fpr1);
fprintf( * % 15.9e % 15.9e % 15.9e % 15.9e % 15.9e\n,x,y,x1,y1,fpr)
elseif y==0
ri=x;rd=x;
return
elseif abs(y)>=abs(y1)
%Use Halley
[x,y,fpr]=halley(f,fp,ind1,fs,ind2,x1,y1,fpr1);
if isnan(fpr)
fprintf(\n + Derivada numerica NaN en x=0. Use otro intervalo
... o ingrese derivadas.\n)
it=nmax+1;
else
fprintf( + % 15.9e % 15.9e % 15.9e % 15.9e % 15.9e\n,x,y,x1,y1,fpr)
end
end
if x<=XI | x>=XD | abs(y)>=abs(y1)
%Use Armijo
%Si no da resultado, hace un paso de biseccion.
[x,y,fpr,XI,XD]=armijo(f,fp,ind1,x,x1,dx1,y1,XI,XD);
if isnan(fpr)
fprintf(\n A Derivada numerica NaN en x=0. Use otro intervalo
... o ingrese derivadas.\n)
it=nmax+1;
else
fprintf( A % 15.9e % 15.9e % 15.9e % 15.9e % 15.9e\n,x,y,x1,y1,fpr)
end
elseif y==0
ri=x;rd=x;
return
end
else
it=it+1;
end
86
end
ri=; rd=;
return
%Funcion para aplicar Halley:
function [x,y,fpr]=halley(f,fp,ind1,fs,ind2,x1,y1,fpr1)
if ind2==1, fs1=fs(x1);
else,fs1=fs(x1,f);
end
x=x1-y1/(fpr1-y1*fs1/(2*fpr1));
y=f(x);
if ind1==1, fpr=fp(x);
else,fpr=fp(x,f);
end
return
%Funcion para calcular el paso a partir de la direccion en Newton
function [x,y,fpr,XI,XD]=armijo(f,fp,ind1,x,x1,dx1,y1,XI,XD);
%No permite que x salga de [XI,XD]
if x<=XI | x>=XD
%Usa un paso de biseccion
x=XI+.5*(XD-XI);
y=f(x);
if y*f(XI)<0
XD=x;
else
XI=x;
end
if ind1==1, fpr=fp(x);
else,fpr=fp(x,f);
end
else
dx=sign(dx1)*min(abs(x1-x),2*abs(dx1));
x=x1-dx;
y=f(x);
while abs(y)>=abs(y1)
dx=dx/2;
x=x1-dx;
y=f(x);
end
if ind1==1, fpr=fp(x);
else,fpr=fp(x,f);
end
end
return
3.6.1. Resultados del metodo de Newton con metrica.
Constan en seguida resultados de Newton sobre la ecuacion de prueba, y
tambien, para poder apreciar el efecto de la correccion en caso necesario, se
han incluido resultados para la ecuacion que [Mol04] llama perversa:
f(x) = sign(x 2)
_
([x 2[) = 0
pues ha sido deducida sobre el modelo del caso anomalo 1. Pese a esta con-
dicion, el metodo converge, aunque las correcciones son muy frecuentes, y el
n umero de iteraciones es mucho mayor que el calculado para el caso usual.
Solucion de una ecuacion en la computadora
------------------------------------------
Extremos del rango: [-3,3]
Paso de recorrido: 1
Tolerancia x: 5e-11
Numero maximo de iteraciones: 6
ECUACI

ON:
x^3-x-1 = 0
Metodo de Newton con metrica
87
Hallo cambio de signo entre 1.000 y 2.000
it x f(x) x1 f(x1) f(x)
---------------------------------------------------------------------------------------
0 2.000000000e+00 5.000000000e+00 1.000000000e+00 -1.000000000e+00 1.100000000e+01
1 1.545454545e+00 1.145755071e+00 2.000000000e+00 5.000000000e+00 6.165289256e+00
2 1.359614916e+00 1.537049345e-00 1.545454545e+00 1.145755071e+00 4.545658159e+00
3 1.325801345e+00 4.624917048e-00 1.359614916e+00 1.537049345e-01 4.273247619e+00
4 1.324719049e+00 4.657719109e-06 1.325801345e+00 4.624917048e-03 4.264641680e+00
5 1.324717957e+00 4.740430271e-12 1.324719049e+00 4.657719109e-06 4.264632999e+00
6 1.324717957e+00 2.220446049e-16 1.324717957e+00 4.740430271e-12 4.264632999e+00
r p= 1.324717957e+00 f(p)= -4.740430271e-12
---------------------------------------------------------------------------------------
Raz en [1.324717957243635e+00 , 1.324717957244746e+00]
ECUACI

ON:
sign(x-2)*sqrt(abs(x-2)) = 0
Derivada de la funcion: 0.5/sqrt(abs(x-2))
Segunda derivada de la funcion: -0.25*sign(x-2)/(abs(x-2))^1.5
Metodo de Newton con metrica
Hallo cambio de signo entre 1.300 y 2.800
it x f(x) x1 f(x1) f(x)
----------------------------------------------------------------------------------------
0 2.800000000e+00 8.944271910e-01 1.300000000e+00 -8.366600265e-01 5.590169944e-01
1 1.200000000e+00 -8.944271910e-01 2.800000000e+00 8.944271910e-01 5.590169944e-01
* 1.733333333e+00 -5.163977795e-01 2.800000000e+00 8.944271910e-01 9.682458366e-01
2 2.266666667e+00 5.163977795e-01 1.733333333e+00 -5.163977795e-01 9.682458366e-01
+ 2.088888889e+00 2.981423970e-01 1.733333333e+00 -5.163977795e-01 1.677050983e+00
3 1.911111111e+00 -2.981423970e-01 2.088888889e+00 2.981423970e-01 1.677050983e+00
+ 1.970370370e+00 -1.721325932e-01 2.088888889e+00 2.981423970e-01 2.904737510e+00
4 2.029629630e+00 1.721325932e-01 1.970370370e+00 -1.721325932e-01 2.904737510e+00
+ 2.009876543e+00 9.938079900e-02 1.970370370e+00 -1.721325932e-01 5.031152949e+00
5 1.990123457e+00 -9.938079900e-02 2.009876543e+00 9.938079900e-02 5.031152949e+00
+ 1.996707819e+00 -5.737753105e-02 2.009876543e+00 9.938079900e-02 8.714212529e+00
6 2.003292181e+00 5.737753105e-02 1.996707819e+00 -5.737753105e-02 8.714212529e+00
7 1.996707819e+00 -5.737753105e-02 2.003292181e+00 5.737753105e-02 8.714212529e+00
+ 1.998902606e+00 -3.312693300e-02 2.003292181e+00 5.737753105e-02 1.509345885e+01
8 2.001097394e+00 3.312693300e-02 1.998902606e+00 -3.312693300e-02 1.509345885e+01
9 1.998902606e+00 -3.312693300e-02 2.001097394e+00 3.312693300e-02 1.509345885e+01
+ 1.999634202e+00 -1.912584368e-02 2.001097394e+00 3.312693300e-02 2.614263759e+01
10 2.000365798e+00 1.912584368e-02 1.999634202e+00 -1.912584368e-02 2.614263759e+01
+ 2.000121933e+00 1.104231100e-02 1.999634202e+00 -1.912584368e-02 4.528037654e+01
11 1.999878067e+00 -1.104231100e-02 2.000121933e+00 1.104231100e-02 4.528037654e+01
+ 1.999959356e+00 -6.375281228e-03 2.000121933e+00 1.104231100e-02 7.842791276e+01
12 2.000040644e+00 6.375281228e-03 1.999959356e+00 -6.375281228e-03 7.842791276e+01
+ 2.000013548e+00 3.680770333e-03 1.999959356e+00 -6.375281228e-03 1.358411296e+02
13 1.999986452e+00 -3.680770333e-03 2.000013548e+00 3.680770333e-03 1.358411296e+02
+ 1.999995484e+00 -2.125093743e-03 2.000013548e+00 3.680770333e-03 2.352837383e+02
----------------------------------------------------------------------------------------
Raz en [1.999995483976584e+00 , 2.000013548070247e+00]
El programa da facilidades para calcular numericamente las derivadas primera y segunda
sin que sea necesario realizar la derivacion analtica y denir esas funciones, lo cual puede
ser ventajoso para un usuario que no desee derivar. Para implementar las dos opciones, el
programa principal puede incluir la denicion de fp y fs de la siguiente manera:
%Si no se ingresan las derivadas 1era. o 2da., deriva numericamente
expr1=input(Derivada de la funcion\n,s);
if isempty(expr1)
ind1=0;
expr1=(f(x*(1+sqrt(eps))+(abs(x)<=eps)*1e-6)-f(x))/(x*sqrt(eps));
fprintf(Usara diferencia hacia adelante\n)
fp=inline(expr1,x,f);
else
ind1=1;
fp=inline(expr1);
end
expr2=input(Segunda derivada de la funcion\n,s);
if isempty(expr2)
ind2=0;
expr2=(f(x+abs(x)*sqrt(eps)+(abs(x)<=eps)*1e-6)-2*f(x)+
...f(x-abs(x)*sqrt(eps)-(abs(x)<=eps)*1e-6))/(abs(x)*sqrt(eps)).^2;
fprintf(Usara diferencias centrales\n)
fs=inline(expr2,x,f);
else
ind2=1;
fs=inline(expr2);
end
88
Cuando desee denir las derivadas, el usuario debera ingresarlas como respuesta a la pre-
gunta respectiva. Si, en cambio, quiere que el programa derive numericamente, bastara que
responda con la tecla < Enter > a esas preguntas.
ECUACI

ON:
sign(x-2)*sqrt(abs(x-2)) = 0
Derivada de la funcion: Usara diferencia hacia adelante
Segunda derivada de la funcion: Usara diferencias centrales
Metodo de Newton con metrica
Hallo cambio de signo entre 1.300 y 2.800
it x f(x) x1 f(x1) f(x)
----------------------------------------------------------------------------------------
0 2.800000000e+00 8.944271910e-01 1.300000000e+00 -8.366600265e-01 5.590169903e-01
1 1.199999988e+00 -8.944271975e-01 2.800000000e+00 8.944271910e-01 5.590169931e-01
* 1.733333139e+00 -5.163979678e-01 2.800000000e+00 8.944271910e-01 9.682455055e-01
2 2.266666849e+00 5.163979561e-01 1.733333139e+00 -5.163979678e-01 9.682454792e-01
3 1.733333137e+00 -5.163979701e-01 2.266666849e+00 5.163979561e-01 9.682455068e-01
+ 1.911111029e+00 -2.981425346e-01 2.266666849e+00 5.163979561e-01 1.677050340e+00
4 2.088888957e+00 2.981425113e-01 1.911111029e+00 -2.981425346e-01 1.677050183e+00
5 1.911111026e+00 -2.981425392e-01 2.088888957e+00 2.981425113e-01 1.677050318e+00
+ 1.970370345e+00 -1.721326678e-01 2.088888957e+00 2.981425113e-01 2.904736959e+00
6 2.029629641e+00 1.721326258e-01 1.970370345e+00 -1.721326678e-01 2.904736227e+00
7 1.970370344e+00 -1.721326692e-01 2.029629641e+00 1.721326258e-01 2.904736937e+00
+ 1.990123450e+00 -9.938083099e-02 2.029629641e+00 1.721326258e-01 5.031155107e+00
8 2.009876535e+00 9.938075637e-02 1.990123450e+00 -9.938083099e-02 5.031151330e+00
9 1.990123450e+00 -9.938083100e-02 2.009876535e+00 9.938075637e-02 5.031155107e+00
+ 1.996707821e+00 -5.737751702e-02 2.009876535e+00 9.938075637e-02 8.714234376e+00
10 2.003292165e+00 5.737738720e-02 1.996707821e+00 -5.737751702e-02 8.714214660e+00
11 1.996707821e+00 -5.737751702e-02 2.003292165e+00 5.737738720e-02 8.714234377e+00
+ 1.998902615e+00 -3.312680621e-02 2.003292165e+00 5.737738720e-02 1.509361907e+01
12 2.001097370e+00 3.312658135e-02 1.998902615e+00 -3.312680621e-02 1.509351662e+01
13 1.998902615e+00 -3.312680621e-02 2.001097370e+00 3.312658135e-02 1.509361907e+01
+ 1.999634225e+00 -1.912524133e-02 2.001097370e+00 3.312658135e-02 2.614399336e+01
14 2.000365760e+00 1.912485186e-02 1.999634225e+00 -1.912524133e-02 2.614346078e+01
15 1.999634225e+00 -1.912524145e-02 2.000365760e+00 1.912485186e-02 2.614399318e+01
+ 1.999878132e+00 -1.103936382e-02 2.000365760e+00 1.912485186e-02 4.529523439e+01
16 2.000121853e+00 1.103868886e-02 1.999878132e+00 -1.103936382e-02 4.529246531e+01
17 1.999878132e+00 -1.103936374e-02 2.000121853e+00 1.103868886e-02 4.529523473e+01
+ 1.999959547e+00 -6.360262902e-03 2.000121853e+00 1.103868886e-02 7.862758636e+01
18 2.000040438e+00 6.359091187e-03 1.999959547e+00 -6.360262902e-03 7.861310600e+01
19 1.999959547e+00 -6.360262518e-03 2.000040438e+00 6.359091187e-03 7.862759111e+01
+ 1.999987041e+00 -3.599815511e-03 2.000040438e+00 6.359091187e-03 1.389759561e+02
20 2.000012944e+00 3.597744035e-03 1.999987041e+00 -3.599815511e-03 1.388960737e+02
----------------------------------------------------------------------------------------
Raz en [1.999987041328289e+00 , 2.000012943762139e+00]
Correcciones a Newton:
* : Halley cuando x salio de ]XI,XD[
+ : Halley cuando no se achico la ordenada
A : Armijo.
Como se puede ver, la peque na imprecision en el calculo numerico de las derivadas primera
y segunda, aunque no destruye la convergencia nal, puede aumentrar considerablemente
el n umero de iteraciones.
La convergencia obtenida en este rebelde ejemplo es una buena prueba para el algoritmo
dise nado.
Ejercicio: 1.- Implementar el metodo de Newton con metrica seg un la discusion pre-
cedente.
Ejercicio 2.- Hallar por Newton, con 6 cifras correctas, el punto x = en que se
cumple el teorema del valor medio para la funcion
f(x) = ln
1 + 0.1x
0.1x

x + 1
x(1 + 0.1x)
en el intervalo [1, 2].
Ejercicio 3.- El desplazamiento de una estructura esta denida por la siguiente ecua-
cion para una oscilacion amortiguada:
y = 8e
kt
cost
donde k = 0.5 y = 3. (a) Use un graco para hallar una estimacion inicial del tiempo
requerido para que el desplazamiento baje hasta 4. (b) Use el metodo de Newton para
determinar la raz con una tolerancia tol
r
x = 0.01 %. (c). Use el metodo de la secante
para determinar esa raz con igual tolerancia.
89
3.7. Sistemas de ecuaciones no lineales
El problema de solucion de la ecuacion no lineal f(x) = 0, f : R R
puede facilmente generalizarse a n dimensiones si denimos adecuadamente
la funcion.
Sea f : R
n
R
m
una funcion vectorial, formada por m funciones escalares
f
i
(X), i = 1, 2 m, donde X = [x
1
, x
2
, x
n
]

. En ese caso,
f (X) = 0
_

_
f
1
(x
1
, x
2
, x
n
) = 0
f
2
(x
1
, x
2
, x
n
) = 0
f
3
(x
1
, x
2
, x
n
) = 0

f
m
(x
1
, x
2
, x
n
) = 0
_

_
(48)
es un sistema de ecuaciones no lineales. Varios de los metodos que hemos
estudiado pueden aplicarse a la resolucion de este problema. Veamos como
lo hace el metodo de Newton. Para mayor sencillez, tratemos el problema
donde n = m, es decir, el n umero de incognitas es igual al de ecuaciones.
Comencemos desarrollando la funcion f (X) en serie de Taylor, en las ve-
cindades de una aproximaci on X
i
al vector solucion, conservando solo los
terminos lineales, como lo hicimos en la deduccion del metodo de Newton
unidimensional. Cada una de sus componentes f
i
admite un desarrollo en el
que intervienen las derivadas parciales con respecto a las n variables indepen-
dientes. Si agrupamos ese desarrollo en una matriz, obtenemos la igualdad
de primer orden:
f (X)
.
= f (X
i
) +DF(X
i
)(XX
i
) (49)
Analoga a la unidimensional, en la cual el papel de f

(x) lo cumple la matriz


Jacobiana DF(X) R
n
2
, ya conocida por nosotros desde el captulo de
analisis de errores, que en cada una de sus las contiene las derivadas parciales
de la correspondiente funcion escalar: DF(X) =
_
f
i
x
j

. Al reemplazar el
argumento X por el vector solucion a nos queda:
f (a) = 0
.
= f (X
i
) +DF(X
i
)(a X
i
) (50)
Y si asumimos una igualdad exacta, el error de la aproximacion de primer
orden se traslada al vector a, que, de haber sido exacto, pasa ahora a ser una
nueva aproximaci on, X
i+1
:
0 = f (X
i
) +DF(X
i
)(X
i+1
X
i
) = f (X
i
) +DF(X
i
)X (51)
La anterior expresion puede entonces escribirse como
DF(X
i
)X = f (X
i
) (52)
90
Dado que conocemos la aproximaci on X
i
, y podemos calcular DF(X
i
) y
f (X
i
) (52) es un sistema de n ecuaciones lineales en las incognitas x
i
, i =
1, 2, n, resoluble con metodos de algebra lineal.
Que hemos logrado? No la transformacion milagrosa de la solucion de un
sistema no lineal de orden n a la de uno lineal del mismo tama no; es decir, no
hemos trocado un problema difcil por uno mucho mas sencillo, sino que ahora
tenemos un procedimiento iterativo que, dadas las condiciones adecuadas, en
cada paso permitira ir obteniendo, mediante la ecuacion
X
i+1
= X
i
+X (53)
una mejor aproximaci on a la solucion. Es decir, hemos convertido la solucion
de un sistema no lineal en la de muchos sistemas lineales de igual tama no, y
la solucion de cada uno representa una iteracion.
Algebricamente, se puede, entonces, describir una iteracion como:
X
i+1
= X
i
DF(X
i
)
1
f (X
i
) (54)
Esta formula permite apreciar mejor el paralelismo con el caso unidimensio-
nal, donde x
i+1
= x
i

f(x
i
)
f

x
i
. Sin embargo, no debe tomarse (54) como la
descripcion de un algoritmo numerico, pues, como ya tendremos ocasion de
discutir, la obtencion de la matriz inversa DF(X
i
)
1
es una pesima alter-
nativa. Mucho mejor es resolver el sistema (52) con metodos directos, como
veremos en el captulo dedicado al

Algebra Lineal Numerica.
La solucion del sistema original (48) puede no ser unica. Si se parte de una
aproximaci on inicial adecuada, el proceso iterativo converge hacia un vector
a, de modo que la seleccion de X
0
es determinante para la solucion a la que
se llegue. Para vericar la convergencia, en este caso mas complicado que el
de una sola ecuacion, optaremos por la medida
|X|

= max
j=1,2,n
x
i+1
j
x
i
j
< tolx. (55)
Finalmente, dado que se trata del metodo de Newton, el orden de convergen-
cia es cuadratico.
3.7.1. Casos particulares: Sistemas no lineales de 2 y 3 ecuaciones
La teora expuesta hasta aqu es general para cualquier tama no de siste-
ma, pero, naturalmente, la complejidad numerica de la solucion crece expo-
nencialmente con el n umero de ecuaciones por resolver. Hay que tomar en
cuenta el alto costo del calculo de la matriz jacobiana, por lo cual en muchas
modicaciones del metodo de Newton se busca de alguna manera remplazar
91
el calculo de DF(X
i
) por alguna aproximaci on mas economica.
Tambien se puede emplear derivaci on numerica para hallar aproximadamen-
te las derivadas parciales que forman la matriz Jacobiana. En estos casos,
los incrementos h se aplican a la variable con respecto a la cual se deriva,
mientras las otras variables permanecen jas. Por ejemplo:
F(x, y)
x

F(x + h
x
, y) F(x h
x
, y)
2h
x
F(x, y)
y

F(x, y + h
y
) F(x, y h
y
)
2h
y
Nos ocuparemos ahora de los dos casos mas sencillos, que sin embargo no son
triviales: la solucion de 2 y 3 ecuaciones no lineales, en los cuales se puede
incluso emplear la regla de Cramer para resolver el sistema lineal (52).
1. Sistema de dos ecuaciones no lineales: Sean estas
f (X) = 0
_
f
1
(x
1
, x
2
) = 0
f
2
(x
1
, x
2
) = 0
_
(56)
Tenemos entonces que f = [f
1
, f
2
]

, X = [x
1
, x
2
]

, x = [x
1
, x
2
]

y
DF(X) =
_
f
1
x
1
f
1
x
2
f
2
x
1
f
2
x
2
_
=
_
f
11
f
12
f
21
f
22
_
De modo que en la iteracion i hay que resolver el sistema lineal:
_
f
11
f
12
f
21
f
22
_ _
x
1
x
2
_
=
_
f
1
f
2
_
(57)
Cuya solucion, calculada por cualquier metodo elemental, como la regla
de Cramer, es:
_
x
1
=
f
2
.f
12
f
1
.f
22
f
11
.f
22
f
12
.f
21
x
2
=
f
1
.f
21
f
2
.f
11
f
11
.f
22
f
12
.f
21
_
(58)
El denominador corresponde al determinante jacobiano J, que debe ser
diferente de cero para que el problema sea resoluble; y no muy peque no
para que no haya problemas de mal condicionamiento.
En la practica, al tratarse de Newton, se requiere una forma adecuada
de encontrar la aproximaci on inicial y, en este caso bidimensional, la
forma mas sencilla de lograrlo es mediante un graco que nos permi-
ta apreciar la interseccion buscada. Es com un, sobre todo si usamos
92
una calculadora sin capacidades de procesamiento simbolico, que no
permita gracar expresiones como las funciones no lineales que aqu se
presentan, puesto que en general son funciones implcitas
33
.
Se requiere, entonces, utilizar un sotfware que permita gracar fun-
ciones implcitas. En el caso del MATLAB, eso se logra con la funcion
contour, como puede observarse en el guion que se incluye en el ejercicio
siguiente, donde tambien se puede apreciar como, para la evaluaci on de
la matriz jacobiana, puede hacerse uso de las formulas de evaluacion
numerica del captulo anterior.
Ejercicio: Resolver con tolx=1E-9 el sistema
_
xy
2
+ x
2
y + x
4
= 3
x
3
y
5
2x
5
y x
2
= 2
_
(Note que las funciones deben escribirse en forma estandar, es decir, iguales a 0).
x
y
2 1.5 1 0.5 0 0.5 1 1.5 2
2
1.5
1
0.5
0
0.5
1
1.5
2
Figura 27: Graco de las funciones.
A continuacion constan el guion MATLAB y los resultados de la corrida respectiva.
% Iteracion de Newton 2D
% Incluye el grafico de las dos curvas y permite buscar varias intersecciones
clear, clf, fprintf(\n) dx = 0.005; dy = 0.005;
RX = input(Intervalo en x: ); XI=RX(1);XD=RX(2);
RY = input(Intervalo en x: ); YI=RY(1);YS=RY(2);
px = (XD-XI)/40; py = (YS-YI)/40;
xm =XI:px:XD; ym = YI:py:YS;
[x,y] = meshgrid(xm,ym);
f1 = f_y1(x,y); f2= f_y2(x,y);
% En el grafico, f1 es roja y f2 azul.
% Si una o ambas funciones no aparecen en el grafico, faltan puntos en los
% operadores de su definicion.
33
Y si no lo fueran, sera mas facil despejar una incognita en una ecuacion y reem-
plazarla en la otra, resultando as una sola ecuacion no lineal resoluble por los metodos
unidimensionales que ya conocemos.
93
contour(x,y,f1,[0,0],r); hold on;
contour(x,y,f2,[0,0],b);
xlabel(x); ylabel(y);
grid on
tol = 1e-9; nmax=50;
is = S;
while is == S | is == s
R = input(\nEstimacion inicial? );x=R(1);y=R(2);
fprintf(\n METODO DE NEWTON PARA SISTEMAS NO LINEALES\n)
fprintf(----------------------------------------------------------------------------------------------------\n)
fprintf( x y f1 f2 f1x f1y f2x f2y dx dy \n)
fprintf(----------------------------------------------------------------------------------------------------\n)
for n=1:nmax
s = [x,y];
xp = x + dx;
yp = y + dy;
f(1) = f_y1(x,y);
f(2) = f_y2(x,y);
J(1,1) = (f_y1(xp, y) - f(1))/dx;
J(1,2) = (f_y1(x, yp) - f(1))/dy;
J(2,1) = (f_y2(xp, y) - f(2))/dx;
J(2,2) = (f_y2(x, yp) - f(2))/dy;
ds = -J\f;
x = x + ds(1);
y = y + ds(2);
fprintf(\n%8f %8f %10f %10f %5f %5f %5f %5f %6f %6f,x,y,f(1),f(2),J(1,1),J(1,2),J(2,1),J(2,2),ds(1),ds(2))
if (abs(f(1))<tol & abs(f(2))<tol), break; end
end
fprintf(\n\n x = %17.10e , y = %17.10e\n\n,x,y);
is = input(Buscara mas races (S/*N)? ,s);
end
RESULTADOS DE EJECUTAR EL GUI

ON ANTERIOR:
(A partir de la gura (27) se han escogido sucesivamente las cuatro aproximaciones iniciales).
Intervalo en x: [-2,2]
Intervalo en y: [-2,2]
Estimacion inicial? -1.3, 1.4
METODO DE NEWTON PARA SISTEMAS NO LINEALES
--------------------------------------------------------------------------------------------------------
x y f1 f2 f1x f1y f2x f2y dx dy
--------------------------------------------------------------------------------------------------------
-1.326783 1.375936 -0.325900 -1.109789 -10.410430 -1.956500 -9.921065 -35.076623 -0.026783 -0.024064
-1.326090 1.376704 0.009107 0.035571 -11.040798 -1.897418 -13.723089 -33.938804 0.000693 0.000768
-1.326093 1.376709 -0.000031 0.000103 -11.024237 -1.899383 -13.614283 -33.988116 -0.000004 0.000004
-1.326093 1.376709 0.000000 0.000002 -11.024322 -1.899395 -13.614309 -33.988895 0.000000 0.000000
-1.326093 1.376709 -0.000000 0.000000 -11.024321 -1.899395 -13.614304 -33.988902 -0.000000 0.000000
-1.326093 1.376709 0.000000 0.000000 -11.024321 -1.899395 -13.614304 -33.988902 0.000000 0.000000
x = -1.3260933834e+000 , y = 1.3767086494e+000
Estimacion inicial? -1.3,-1.3
METODO DE NEWTON PARA SISTEMAS NO LINEALES
---------------------------------------------------------------------------------------------------
x y f1 f2 f1x f1y f2x f2y dx dy
---------------------------------------------------------------------------------------------------
1.301890 -1.377459 -0.143900 1.806311 7.142330 -1.683500 15.913961 23.707984 0.001890 -0.077459
1.303341 -1.367548 0.008262 -0.334008 7.181267 -1.885172 11.955039 31.952490 0.001451 0.009910
1.303355 -1.367486 0.000016 -0.002101 7.205608 -1.859549 12.684905 30.914305 0.000014 0.000062
1.303355 -1.367486 -0.000001 0.000015 7.205846 -1.859388 12.689806 30.908118 0.000000 -0.000000
1.303355 -1.367486 0.000000 -0.000000 7.205847 -1.859390 12.689779 30.908173 0.000000 0.000000
1.303355 -1.367486 -0.000000 0.000000 7.205847 -1.859390 12.689779 30.908172 -0.00000 -0.000000
1.303355 -1.367486 0.000000 -0.000000 7.205847 -1.859390 12.689779 30.908172 0.000000 0.000000
x = 1.3033548850e+000 , y = -1.3674864314e+000
Estimacion inicial? 1,1
METODO DE NEWTON PARA SISTEMAS NO LINEALES
---------------------------------------------------------------------------------------------------
x y f1 f2 f1x f1y f2x f2y dx dy
---------------------------------------------------------------------------------------------------
1.000000 1.000000 0.000000 0.000000 7.035100 3.005000 -9.090476 3.050251 0.000000 0.000000
x = 1.0000000000e+000 , y = 1.0000000000e+000
Estimacion inicial? -1.3,0
METODO DE NEWTON PARA SISTEMAS NO LINEALES
---------------------------------------------------------------------------------------------------
x y f1 f2 f1x f1y f2x f2y dx dy
---------------------------------------------------------------------------------------------------
-1.322966 -0.033720 -0.143900 0.310000 -8.737430 1.683500 2.595000 7.425860 -0.022966 -0.033720
-1.322148 -0.031184 0.002818 -0.023556 -9.119472 1.832847 3.666121 8.105384 0.000819 0.002536
-1.322150 -0.031177 -0.000033 -0.000055 -9.109265 1.823925 3.585035 8.080338 -0.000002 0.000008
-1.322150 -0.031177 0.000000 -0.000000 -9.109329 1.823910 3.584811 8.080402 0.000000 -0.000000
-1.322150 -0.031177 -0.000000 0.000000 -9.109329 1.823910 3.584811 8.080402 -0.000000 0.000000
x = -1.3221498355e+000 , y = -3.1176622854e-002
2. Sistemas de tres ecuaciones no lineales: Con el mismo procedimiento
se puede manejar tambien aqu la solucion, que en el sistema lineal de
94
cada iteracion (59) puede emplear a un la regla de Cramer.
_
_
f
11
f
12
f
13
f
21
f
22
f
23
f
31
f
32
f
33
_
_
_
_
x
1
x
2
x
3
_
_
=
_
_
f
1
f
2
f
3
_
_
(59)
Cuya solucion, calculada por cualquier metodo elemental, como la ci-
tada regla, es:
_
_
_
x
1
=
f
1
f
22
f
33
+f
1
f
23
f
32
+f
2
f
12
f
33
f
2
f
13
f
32
f
3
f
12
f
23
+f
3
f
13
f
22
J
x
2
=
f
11
f
2
f
33
+f
11
f
23
f
3
+f
21
f
1
f
33
f
21
f
13
f
3
f
31
f
1
f
23
+f
31
f
13
f
2
J
x
3
=
f
11
f
22
f
3
+f
11
f
2
f
32
+f
21
f
12
f
3
f
21
f
1
f
32
f
31
f
12
f
2
+f
31
f
1
f
22
J
_
_
_
(60)
Donde J es el determinante jacobiano
J = f
11
f
22
f
33
f
11
f
23
f
32
f
21
f
12
f
33
+f
21
f
13
f
32
+f
31
f
12
f
23
f
31
f
13
f
22
Ejercicio: Comenzando con (1,1,1), halle una solucion del siguiente sistema con
tolerancia de 5E-8.
_
_
_
xy z
2
= 1
xyz x
2
+ y
2
= 2
e
x
e
y
+ z = 3
_
_
_
Haciendo uso de un guion similar al anterior, extendido a tres dimensiones, aunque
sin la posibilidad de gracar las funciones, se obtienen los siguientes resultados:
METODO DE NEWTON PARA SISTEMAS NO LINEALES
----------------------------------------------------------------------------------------------------
x y z f1 f2 f3 J dx dy dz
----------------------------------------------------------------------------------------------------
2.189324 1.598486 1.393895 -1.000000 -1.000000 -2.000000 20.310 1.189324 0.598486 0.393895
1.850594 1.444251 1.278227 0.556660 0.640100 2.377533 236.680 -0.338730 -0.154235 -0.115669
1.780162 1.424435 1.239293 0.038859 0.077508 0.403148 124.234 -0.070432 -0.019816 -0.038933
1.777675 1.423961 1.237474 -0.000122 0.002547 0.014602 108.002 -0.002488 -0.000474 -0.001820
1.777672 1.423961 1.237471 -0.000002 0.000003 0.000018 107.448 -0.000003 -0.000000 -0.000003
1.777672 1.423961 1.237471 -0.000000 -0.000000 0.000000 107.447 -0.000000 0.000000 -0.000000
x = 1.7776719180e+000 , y = 1.4239605979e+000 , z = 1.2374711177e+000
4. Races complejas de ecuaciones
4.1. Planteamiento general
Hasta aqu nos han interesado unicamente las races reales de ecuacio-
nes no lineales. El problema mas amplio de la b usqueda de races complejas
usualmente es menos estudiado (de los libros citados en la bibliografa, solo
[Ham73] lo trata). Sin embargo, al menos en teora, se puede hallarlas numeri-
camente, mediante la solucion de un sistema de dos ecuaciones no lineales,
por el metodo de Newton, por ejemplo.
95
A partir de una funcion compleja, (z), de la cual supondremos que es analti-
ca (es decir, que puede ser desarrollada en serie de Taylor en cualquier inter-
valo que se requiera) planteamos la ecuacion (z) = 0, donde z = x+yi C,
con x, y R. Si reemplazamos z por x + yi y agrupamos luego los terminos
reales por un lado, y por otro los imaginarios, tenemos la expresion general
(z) = u(x, y) +iv(x, y). En ella, u(x, y) se conoce com la parte real y v(x, y)
como la parte imaginaria de (z).
Esta transformacion puede ser difcil, pues requiere en ocasiones mucha ma-
nipulacion algebrica, y familiaridad con identidades de la teora de variable
compleja, sobre todo con la de Euler: e
i
= cos() + isen().
Pero, una vez realizada, es evidente que para anular a (z) se requiere anular
independientemente la parte real y la imaginaria:
(z) = 0
_
u(x, y) = 0
v(x, y) = 0
_
(61)
Es decir, nuestra ecuacion se ha convertido en un sistema de dos ecuaciones
no lineales. Cada solucion (x, y) que encontremos nos dara una raz compleja
de (z) = 0.
Las expresiones u(x, y) y v(x, y) deben cumplir con las conocidas condicio-
nes de Cauchy-Riemann para funciones analticas:
u
x
=
v
y
y
u
y
=
v
x
, que
pueden servir como comprobacion.
Para ciertas funciones , las races complejas vienen en pares conjugados, lo
cual reduce a la mitad el trabajo de la solucion completa del problema:
Si (z) = ( z) = ( z) (se da cuando la funcion no tiene terminos imagi-
narios, es decir (x) R), llegamos a que, al ser z = x + yi una raz de la
ecuacion, entonces:
(z) = 0 (z) =

0 = 0 ( z) = 0 (62)
Entonces, si z es una raz de la ecuacion, z tambien lo es. Un caso com un de
una funcion de este tipo es un polinomio con coecientes reales.
Ejemplo 1: Hallar las races complejas de la ecuacion z
3
z 1 = 0.
Al reemplazar z = x + yi en (z) = z
3
z 1 obtenemos (x + yi)
3
(x + yi) 1 =
x
3
+3x
2
yi 3xy
2
y
3
i xyi 1, y, al agrupar los terminos reales e imaginarios, resulta:
(z) = 0
_
x
3
3xy
2
x 1 = 0
y(3x
2
y
2
1) = 0
_
Como comprobacion, calculamos la derivadas parciales
u
x
= 3x
2
3y
2
1,
v
x
= 6xy,
u
y
= 6xy y
v
y
= 3x
2
3y
2
1. Se puede ver que satisfacen las igualdades de Cauchy-
Riemann.
Si en la segunda ecuacion igualamos a cero el primer factor y (races reales), al reemplazarlo
96
en la primera nos queda, consistentemente, x
3
x1 = 0, es decir, la ecuacion que hemos
usado en muchos ejercicios anteriores, cuya raz real x = 1.32471795 conocemos.
Si en cambio anulamos el segundo factor 3x
2
y
2
1 = 0 y
2
= 3x
2
1, su reemplazo en
la primera ecuacion arroja 8x
3
2x+1 = 0, cuya raz real es x = 0.662358978622, y, por
consiguiente, y =

3x
2
1 = 0.56227951206. Estas dos parejas de valores de (x, y)
son la solucion de nuestro sistema, y, por consiguiente, conguran las dos races complejas
z = 0.662358978622 0.56227951206i de la ecuacion original.
Se hace notar que este ejercicio es sencillo, tanto en la transformacion algebrica cuanto en
la solucion del sistema, que en este caso pudo tambien hacerse por metodos algebricos y no
requirio acudir a Newton. Pero, por esa misma razon, no es representativo de la mayora
de casos que se presentan en la practica.
Ejemplo 2: Hallar las races complejas de la ecuacion e
z
z
2
= 0. Aqu ya se requiere
usar la identidad de Euler para llegar a u(x, y) y v(x, y):
w(z) = e
z
z
2
= e
x+yi
(x
2
+ 2xy y
2
) = e
x
(cosy + iseny) x
2
2xyi + y
2
Y agrupando la parte real y la imaginaria:
(z) = 0
_
e
x
cosy x
2
+ y
2
= 0
e
x
seny 2xy = 0
_
Una vez conocidas las curvas, podemos utilizar nuestro algoritmo para resolver sistemas de
dos ecuaciones no lineales, que en primer lugar hace un graco de las dos curvas u(x, y) = 0
y v(x, y) = 0. En este caso se escogio un intervalo de valores de x entre y 2, y de
y entre 0 y 2, considerando que esta funcion cumple la condicion (62). Luego nos per-
x
y
3 2 1 0 1 2 3 4 5 6
0
1
2
3
4
5
6
Figura 28: Graco de las funciones.
mite iterar por Newton: a partir del punto (1.6, 1.6), con una tolerancia de 5E 9, en 6
iteraciones nos entrega la respuesta x = 1.588047265e+00 , y = 1.54022350e+00; e igual-
mente en 6 iteraciones llega a la otra raz (real) desde (1, 0): x = 7.0346742e001. Por
consiguiente, las tres races complejas encontradas son: z
1,2
= 1.588047265 1.54022350i
y z
3
= 0.70346742.
97
Ejercicio: a) .- Escribir una funcion MATLAB para hallar u(x, y) y v(x, y) a partir de
la ecuacion general (z) = 0, con z = x+yi, y gracar las curvas u(x, y) = 0 y v(x, y) = 0
de modo que sus intersecciones nos den las races de (z) = 0.
Sugerencia (requiere el toolbox simbolico del MATLAB): Aplicar las funciones real e
imag a la variable simbolica para hallar expresiones de u y v, tambien simbolicas, y
luego gracarlas utilizando ezplot.
b) .- Utilizar las funciones y las aproximaciones iniciales estimadas de la parte a) en un
gui on MATLAB que aplique el metodo de Newton para resolver sistemas de dos ecuaciones
no lineales.
4.2. Metodo de los cuadrantes
2 1.5 1 0.5 0
2
1.5
1
0.5
0
0.5
1
1.5
2
Plano z
Eje x
E
j
e

y
4
4
4
3
3
3
3
2
2
2
2
1
1
1
4
4
4
4
3
3
3
2
2
2
1
1
1
1
4
4
4
4
3
3
3
2
2
2
1
1
1
1
4
4
4
4
3
3
3
2
2
2
1
1
1
1
4
4
4
4
4
3
3
2
2
1
1
1
1
1
1
4
4
4
4
3
3
2
2
1
1
1
1
4
1
1
4
4
4
3
3
2
2
1
1
1
4
4
1
1
1
4
4
3
3
2
2
1
1
4
4
4
1
1
1
1
4
3
3
2
2
1
4
4
4
4
1
1
1
1
1
2
3
2
3
4
4
4
4
4
1
1
1
1
1
2
2
3
3
4
4
4
4
4
1
1
1
1
2
2
2
3
3
3
4
4
4
4
1
1
1
2
2
2
2
3
3
3
3
4
4
4
2
2
2
2
2
2
2
3
3
3
3
3
3
3
v=0
u=0
2 0 2
3
2
1
0
1
2
3
Plano w
Eje u
E
j
e

v
v=0
u=0
1 2
3 4
En el plano z se pueden proyectar
los ejes v=0 y u=0 del plano w por
los nmeros de cuadrantes que cada
uno separa: el eje v=0, los cuadrantes
1 de 4 y 2 de 3, mientras el eje u=0
separa el 1 del 2 y el 3 del 4.
La interseccin (origen en el plano w)
se proyecta sobre la raz en el plano z.
Figura 29: Plano del argumento y plano de valores.
El procedimiento que acabamos de ver puede emplearse siempre que sea
posible y no demasiado laborioso establecer analticamente las funciones
u(x, y) y v(x, y). Pero, en caso de que no podamos, o no queramos hacer-
lo, el siguiente metodo - que tiene analogas con la b usqueda del cambio de
signo o el metodo de biseccion, empleados para races reales - puede ser util,
98
sobre todo si lo tenemos adecuadamente implementado en un computador.
En el caso de una funcion real y = f(x), habramos podido representar so-
bre el eje del argumento (eje x) informacion basica que permitiera ubicar
aproximadamente las races: sobre cada valor de x colocaramos el signo de
f(x). De esta forma, resumimos la caracterstica que interesa del graco de
y = f(x), que normalmente requiere dos dimensiones, en solo una.
En el caso de la funcion w(z), tanto el argumento z como la funcion w(z), al
ser complejos, requieren dos dimensiones cada uno, es decir, dos planos, con
todas sus dimensiones perpendiculares. Y para representar la curva reque-
riramos estrictamente de cuatro dimensiones ortogonales, lo cual esta mas
alla de nuestras capacidades de visualizacion. Entonces, haremos uso de un
recurso similar al que acabamos de mencionar en el campo real: se basa en
una forma de representar en el plano de la variable independiente (o argu-
mento) z la proyeccion de los ejes u(x, y) = 0 y v(x, y) = 0 que en el plano
de la funcion w son rectas perpendiculares en cuya interseccion (origen) la
funcion se anula (Vease la gura (29)). Es decir, buscamos representar en el
plano del argumento las curvas
1
(v = 0) y
1
(u = 0), para determinar su
intersecci on. Pero queremos hacerlo sin conocer las expresiones de u(x, y) = 0
y v(x, y) = 0. Para esto, as como en el eje real podamos haber consignado
los signos del valor de la funcion, que nos orientan sobre la ubicacion de las
races, en cada punto z escogido del plano complejo del argumento podemos
registrar el CUADRANTE del plano w en el que cae el respectivo valor w(z)
de la funcion. A partir de esos n umeros de cuadrante podemos reconstruir la
forma de los ejes, y nalmente hallar sus intersecciones, cuyas coordenadas
x y y seran respectivamente la parte real y la parte imaginaria de las races
de w(z) = 0.
Para describir como podramos reconstruir los ejes u y v sobre el plano z,
imaginemos a nuestras ordenes a un geniecillo innitesimal pero muy ecien-
te y trabajador incansable, asociado a la funcion (z), que habita en el plano
del argumento, y esta provisto de un sistema de posicionamiento geograco
(GPS), una calculadora programable, una brocha y cinco tarros de pintura
de diferentes colores. Una vez que hayamos seleccionado una region del plano
z para investigar - que puede ser rectangular, o de otra forma - el geniecillo
se encarga de recorrerla y, a cada paso, lee en su GPS las coordenadas x y y
de su posicion actual, las introduce en su calculadora, programada adecuada-
mente para evaluar (x + yi) y el cuadrante en que este resultado queda en
el plano (el cual depende en la forma obvia de los valores obtenidos para
u(x, y) y v(x, y)). De acuerdo con el cuadrante resultante, escoge el tarro de
pintura adecuado, escribe en ese punto del plano z el n umero de cuadrante,
y contin ua al siguiente punto. Cuando haya nalizado el recorrido, sobre la
region escogida del plano z habran quedado registrados los n umeros de cua-
99
drantes - como en la mitad izquierda de la gura 29 - lo cual nos permite,
observando la separacion entre grupos de n umeros, con un poco de practica
y la aplicacion de algunas reglas que vienen a continuaci on - dibujar en el
plano z las proyecciones de los ejes v = 0 y u = 0.
Estos gracos seran mas faciles de hacer mientras mas densa sea la cuadrcu-
la escogida para el calculo de cuadrantes, y en general pueden mejorarse si
conocemos algunos
Principios fundamentales de la representacion de funciones de variable com-
pleja:
1. Cuando no existen polos (discontinuidades) en la funcion, los n umeros
de cuadrantes se disponen alrededor de una raz en orden antihorario,
al igual que en el plano . A mas de los cuatro n umeros de cuadrantes,
ocasionalmente podemos toparnos con un cero, que puede corrrespon-
der a un punto de paso del eje u = 0, v = 0 o una raz. En realidad,
estos seran los puntos interesantes, pero no podemos conar en encon-
trarlos por pura suerte, as como, al construir una tabla de valores para
hacer la b usqueda de cambios de signo en una funcion real, no podemos
esperar hallar los puntos donde la funcion se anula.
2. Al analizar el desarrollo de la funcion (z) en series de Taylor (vease
[Ham73]), se puede llegar a la conclusion de que la interseccion de los
ejes u y v tiene un angulo de 90

si se trata de una raz simple, pero,


en races dobles, se reduce a 45

, y, en general, para una multiplicidad


m el angulo de intersecci on es de

2m
.
3. Principio del argumento: Al recorrer en sentido antihorario cualquier
permetro cerrado, el n umero de ciclos completos de n umeros de cua-
drantes (1,2,3,4) encontrados debe ser igual (cuando se cuenta apropia-
damente) al n umero de races dentro de ese permetro.
4. Los ejes u = 0 y v = 0, en el plano , son rectas que, como tales, se pro-
longan innitamente en ambos sentidos. Su proyeccion sobre el plano
z, entonces, debe mantener esa caracterstica y no puede dar lugar a
curvas cerradas. Por consiguiente, si una de las curvas u = 0 o v = 0
entran a cualquier entorno cerrado, necesariamente deben salir de el,
por alg un otro sitio.
Con las actuales velocidades de procesamiento, de hecho, se puede aumentar
mucho la densidad del calculo de los cuadrantes, y obtener gracos mas cla-
ros de los ejes y sus intersecciones, practicamente sin intervenci on humana.
100
En esos casos los n umeros de cuadrantes se sustituyen simplemente por pun-
tos con el color adecuado. En las guras siguientes se han incluido algunos
ejemplos:
En la gura 30 puede verse el graco obtenido por el metodo de los cuadran-
3 2 1 0 1 2 3 4 5 6
0
1
2
3
4
5
6
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
Grfico de cuadrantes
x
y
1
2
2
3
4
Figura 30: w(z) = e
z
z
2
.
tes correspondiente a la misma funcion representada en la gura 28 a partir
de las ecuaciones de las curvas. En la gura 31, en cambio, puede apreciarse
la forma de las curvas u = 0 y v = 0 para el caso de races simples y dobles,
y como, en un permetro algo alejado de la posicion de las races, no se puede
precisar si se trata de varias races simples o de una m ultiple.
4.3. Races reales y complejas de una ecuacion: metodo
de M uller
El metodo de M uller para resolver la ecuacion f(x) = 0, que data de
mediados del siglo XX, esta basado en la idea de interpolacion, como el de
la secante, pero, en lugar de emplear la interpolacion lineal - es decir, una
recta que pase por dos puntos de la funcion, cuya interseccion con el eje x
se tome como aproximacion a la raz - usa la de segundo grado: la funcion
interpolante pasa por tres puntos de f(x) y es una parabola.
101
1 0 1 2 3 4
1
0.5
0
0.5
1
1.5
2
2.5
3
3.5
4
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
Grfico de cuadrantes
x
y
1
1
1
1
2
2
2
2
3
3
3
3
4
4
4
4
Figura 31: w(z) = z(z 1)
2
(z 2) (Una raz doble y dos simples).
Una ventaja impensada del metodo se da porque, para encontrar la intersec-
cion de la parabola con el eje x, hay que resolver una ecuacion de segundo
grado, la cual puede tener races imaginarias, y estas resultan aproximaciones
de races imaginarias de la ecuacion original. Es decir, puede aproximar tanto
races reales como imaginarias, en ecuaciones de cualquier tipo, algebraicas
o no.
Para precisar, hallemos en primer lugar la ecuacion de la parabola P(x), con-
venientemente escrita como y = a(x x
2
)
2
+ b(x x
2
) + c que pasa por los
tres puntos
0
(x
0
, f(x
0
));
1
(x
1
, f(x
1
));
2
(x
2
, f(x
2
)). Abreviemos,
ademas, f(x
j
) como f
j
, j = 0, 1, 2:

0
P(x) a(x
0
x
2
)
2
+ b(x
0
x
2
) + c = f
0

1
P(x) a(x
1
x
2
)
2
+ b(x
1
x
2
) + c = f
1

2
P(x) c = f
2
Al reemplazar el valor de c obtenemos un sistema de dos ecuaciones lineales
en a y b:
a(x
0
x
2
)
2
+ b(x
0
x
2
) = f
0
f
2
a(x
1
x
2
)
2
+ b(x
1
x
2
) = f
1
f
2
102
Que puede resolverse facilmente por Cramer:
a =
(f
0
f
2
)(x
1
x
2
) (f
1
f
2
)(x
0
x
2
)
(x
0
x
1
)(x
0
x
2
)(x
1
x
2
)
(63)
b =
(f
1
f
2
)(x
0
x
2
)
2
(f
0
f
2
)(x
1
x
2
)
2
(x
0
x
1
)(x
0
x
2
)(x
1
x
2
)
(64)
Conocidos, entonces, los valores de los tres parametros a, b y c, podemos
determinar la ecuacion de la parabola que pasa por
0
,
1
y
2
, y luego, al
resolver la ecuacion 0 = P(x), determinar el valor de su intersecci on con el
eje x:
x x
2
=
b

b
2
4ac
2a
(65)
Y como interesa la raz mas cercana a x
2
, usando la forma mas estable de
(65) podemos despejar la aproximacion
x = x
2

2c
b + sign(b)

b
2
4ac
(66)
que puede ser real o imaginaria.
Para utilizar el metodo deben proporcionarse los datos, es decir, los valores
de x
0
, x
1
y x
2
. Si lo que se busca es una raz real, bien se puede usar x
0
y x
2
como los extremos encontrados en la b usqueda del cambio de signo, mientras
para x
1
puede emplearse el metodo de las secantes, o, mejor a un, biseccion.
Sin embargo, el metodo es muy robusto y admite practicamente tres valores
iniciales cualesquiera, a partir de los cuales converge, sea a una raz real o a
una imaginaria.
La unica consideracion que debe tomarse en cuenta al escoger las abscisas
dato es que, para poder calcular los parametros de la parabola interpolante
con las formulas (63) y (64) es preciso que las ordenadas f
0
,f
1
y f
2
tengan
distintos valores numericos.
Implementaci on del metodo: El siguiente algoritmo ha sido adaptado
de [BF93]:
function f = fmuller(xi,xd,nmax,fmet)
%Solucion de una ecuacion por el metodo de Muller
%Basado en "Analisis Numerico de Burden- Faires
%function f = fmuller(xi,xd,nmax,fmet)
%Argumentos:
% xi: Aproximacion #1 a la raz
% xd: Aproximacion #2 a la raz
% nmax: Numero maximo de iteraciones
% fmet: Funcion anonima para la ecuacion que se quiere resolver
% Debe usarse un "function handle" como @(z) z.^3-z-1
k = 20; %factor de seguridad para tolx
h = sqrt(k*eps); ma = max(abs(xi),abs(xd)) * eps * k;
%Inicializacion
x0=xi; x1=xd; f0=fmet(xi); f1=fmet(xd);
103
x2=(x0+x1)/2; % Mejor que usar secantes
f2=fmet(x2); it = 0;
fprintf(it x
f(x)\n------------------------------------------------\n);
fprintf(%2d % 25.18e % 18.11e\n,-1,x0,f0);
fprintf(%2d % 25.18e % 18.11e\n,it,x1,f1);
% Comienza el metodo
h1=x1-x0; h2=x2-x1; d1=(f1-f0)/h1; d2=(f2-f1)/h2; d=(d2-d1)/(h1+h2);
while it<nmax
it = it+1;
b=d2+h2*d;
D=sqrt(b*b-4*d*f2);
if abs(b+D)<abs(b-D) % Cuando D es imaginario da igual
E=b-D;
else
E=b+D;
end
h=2*f2/E;
p=x2-h;
fp=fmet(p);
if abs(imag(D))<ma
fprintf(%2d % 25.18e % 18.11e\n,it,p,fp)
else
fprintf(\n%2d % 25.18e % 18.11e\n,it,real(p),real(fp))
fprintf( % 25.18ei % 18.11ei\n,imag(p),imag(fp))
end
if abs(h)<ma
%fprintf(h = % 15.7e\n,h)
% Para asegurar convergencia necesitara remate
if fp == 0, f = p; return, end
if abs(imag(p))< ma
%p,fp,x2,f2
%fprintf(imag(p) = % 15.7e\n,imag(p))
if real(fp) * real(f2) < 0, f = p; return, end
p1 = p-sign(h)*ma;fp1 = fmet(p1);
if fp1 == 0,f = p1;return, end
if real(fp1)*real(fp) < 0
f = p;
return
else
if p==x2, f = ; return, end
end
%No hay cambio de signo entre p y p1: aborta
f = ;
return
else
%Si p no es real, como verificar convergencia:?
f = p;
return
end
else
x0=x1;x1=x2;x2=p;
f0=f1;f1=f2;f2=fp;
h1=h2;h2=x2-x1;
d1=d2;d2=(f2-f1)/h2;
d=(d2-d1)/(h1+h2);
end
end
%Si llega a este punto es porque no convergio:
f = ;
Al evaluar la funcion con diferentes argumentos da los siguientes resultados:
x=fmuller(-1,0,30,z.^2-exp(z))
it x f(x)
------------------------------------------------
-1 -1.000000000000000000e+000 -6.32120558829e-001
0 0.000000000000000000e+000 1.00000000000e+000
1 -7.013052799741590300e-001 4.10844806533e-003
2 -7.034845482004629100e-001 -3.25699024896e-005
3 -7.034674221541443700e-001 6.54689913393e-010
4 -7.034674224983916700e-001 0.00000000000e+000
5 -7.034674224983916700e-001 0.00000000000e+000
x = -0.70346742249839 (Raz real)
104
x=fmuller(1,3,30,z.^2-exp(z))
it x f(x)
------------------------------------------------
-1 1.000000000000000000e+000 1.71828182846e+000
0 3.000000000000000000e+000 1.10855369232e+001
1 1.222725583206170500e+000 1.57551732734e+000
7.216026903706556100e-001i 4.79000838912e-001i
2 1.268392385634518900e+000 1.19298560201e+000
1.121567345218788400e+000i 3.57225282630e-001i
3 1.430120057805677400e+000 3.65515460482e-001
1.628753534035220200e+000i -4.86442371505e-001i
4 1.605002314285229400e+000 -5.98566366797e-002
1.544600207922294700e+000i 1.79894051038e-002i
5 1.587740610612766900e+000 6.30686623990e-004
1.540387779994205800e+000i -1.05241931431e-003i
6 1.588047317931361900e+000 -5.96650173129e-007
1.540223741443772700e+000i -6.31192623501e-007i
7 1.588047264689726600e+000 -1.08554831790e-012
1.540223501020776500e+000i 5.74651437546e-013i
8 1.588047264689378800e+000 -4.71844785466e-016
1.540223501020758300e+000i 0.00000000000e+000i
9 1.588047264689378600e+000 -5.55111512313e-017
1.540223501020758300e+000i -8.88178419700e-016i
x = 1.58804726468938 + 1.54022350102076i (Raz compleja)
El metodo de M uller es muy conable, tanto para resolver ecuaciones
polinomicas, con races reales e imaginarias, como para ecuaciones trascen-
dentes.
Utilizando un procedimiento similar al que se empleo en el metodo de las se-
cantes, se puede determinar que su orden de convergencia es al menos igual
a la raz real de la ecuacion p
3
p
2
p 1 = 0, es decir, 1.83929....
105
5. Apendice
DIAGRAMAS DE FLUJO DE ALGORITMOS ESTUDIADOS:
Se complementan los programas (guiones) en MATLAB con los tradiciona-
les diagramas de ujo, que, al no ser extensos los programas, resultan una
comoda referencia graca.
Notese que, aunque la presentaci on de estos ultimos no es estructurada,
y utiliza conectores, su implementaci on puede serlo perfectamente, como se
puede observar en el codigo fuente incluido.
106
Figura 32: B usqueda del Cambio de signo
107
Figura 33: Metodo de biseccion
108
Figura 34: Metodo de falsa posicion
109
Figura 35: Metodo de falsa posicion modicado
110
Figura 36: Metodo de Iteracion Lineal
111
Figura 37: Diagrama de ujo del metodo de Wegstein
112
Figura 38: Metodo de las secantes 113
6. Bibliografa
Referencias
[Ove02] OVERTON, Michael: Computo Numerico con Aritmetica de punto
otante IEEE754. Sociedad Matematica Mexicana, Mexico, 2002
[CC98] CHAPRA, Steven y CANALE, Raymond: Numerical Methods for En-
gineers. WCB/McGraw-Hill, Estados Unidos, 1998.
[Com05] COMINCIOLI, Valeriano: Analisi Numerica: metodi, modelli, appli-
cazioni. APOGEO srl, Milan, Copyright 2005.
[DM72] DORN S. y Mc.CRACKEN D. Numerical Methods with FORTRAN
IV case studies. Wiley International, Estados Unidos, 1972.
[FM+77] FORSYTHE George, MOLER Cleve and MALCOLM Michael. Com-
puter Methods for mathematical computations. Prentice-Hall, Engle-
wood Clis, N.J., 1977.
[Cas06] CASARES, Alejandro: Material colocado en el FTP
[Mol04] MOLER, Cleve B. Numerical computing with MATLAB. SIAM.
Mathworks, Cambridge, 2004. http://www.mathworks.com/moler/
[BF93] BURDEN, Richard L. y FAIRES, J.Douglas: Analisis Numerico. Gru-
po Editorial Iberoamerica, Mexico, 1996
[KC94] KINCAID, David y CHENEY, Ward: Analisis Numerico: Las ma-
tematicas del calculo cientco. Addison-Wesley Iberoamericana, Wil-
mington, Delaware, EE.UU.,1994.
[Gau97] GAUTSCHI, Walter. Numerical Analysis: an introduction.
Birkhauser, Boston, 1997
[SB80] STOER, Joseph y BULRISCH R. Introduction to Numerical Analysis.
Springer-Verlag, New York, 1980
[Moo79] MOORE, Ramon E. Methods and applications of interval analysis.
SIAM, Filadela, 1979
[Zed91] ZEDE

NO, Jorge. Races y potencias. Quito, 1991 Las matematicas


del calculo cientco. Addison-Wesley Iberoamericana, Wilmington,
Delaware, EE.UU.,1994.
[Ham73] HAMMING, Richard. Numerical Methods for Scientist and Engi-
neers. Mc Graw and Hill, International student edition, Kogakusha,
1973
114