Capı́tulo 12 Funciones generatrices y Combinatoria En los usos que de las funciones generatrices hemos hecho hasta ahora partı́amos de una sucesión de números (an ), que codificábamos con una función generatriz f (x). De la sucesión (an ) conocı́amos habitualmente una fórmula (quizás escrita como una complicada suma) o una regla de recurrencia. Manipulando la función generatriz, con las reglas que aprendimos en su momento, conseguı́amos extraer conclusiones sobre la sucesión (an ) como, por ejemplo, fórmulas a partir de la recurrencia. El objetivo fundamental de este capı́tulo, no lo ocultamos, pese a que el tı́tulo pudiera hacer sospechar que nuestros intereses son más amplios, es el de estudiar la cuestión del número de particiones que podemos hacer de un entero positivo n, las que cuenta la función p(n) (véase la subsección 3.3.3), o quizás también particiones con determinadas caracterı́sticas. Pero, por el camino, y como parte de un lenguaje general, analizaremos otras cuestiones combinatorias como, por ejemplo, los multiconjuntos con ciertas peculiaridades o, de forma equivalente, el número de soluciones de una ecuación diofántica con ciertas restricciones. En la sección 10.6 ya adelantamos, en cierta manera, el espı́ritu del análisis que nos disponemos a iniciar. La cuestión combinatoria que nos interesaba entonces, el número de permutaciones con ciertas restricciones se codificaba, primero, como un tablero en el distribuı́amos torres y, tras esta representación simbólica, las respuestas pertinentes se integraban en una función generatriz (un polinomio, en realidad). Al procedimiento de representación simbólica de diversas cuestiones combinatorias está dedicada la primera sección de este capı́tulo. La sección 12.2 estará dedicada a aplicar esta técnica al problema de las particiones. Nuestro objetivo es descubrir las funciones generatrices asociadas a los distintos tipos de particiones de interés, para luego extraer de ellas conclusiones relevantes (como, por ejemplo, reglas de recurrencia). En la sección 12.3 trataremos una cuestión fascinante, pero que requiere ciertas herramientas de Análisis Complejo, como es la de estudiar comportamientos asintóticos, fundamentalmente las de las sucesiones relacionadas con las particiones de enteros. 849 850 12.1. Capı́tulo 12. Funciones generatrices y Combinatoria El método simbólico El método simbólico es un procedimiento de representación o, si se quiere, de codificación, que aplicaremos al análisis de las soluciones de familias de problemas combinatorios como, por ejemplo, cuántos multiconjuntos con determinadas caracterı́sticas podemos formar con n elementos. Aquı́ n es el ı́ndice de la familia en cuestión; cada valor de n nos sitúa ante un problema distinto, pero estos problemas están, claro, muy relacionados. El objetivo es entenderlos todos a la vez, codificándolos en un único objeto, que será una serie de potencias. Particiones de enteros, composiciones, subconjuntos, etc., son ejemplos de estas familias. En todas ellas veremos la utilidad del método simbólico; pero ahora, para descubrir el método, vamos a centrarnos en los multiconjuntos. Partimos de un conjunto de sı́mbolos {1, . . . , n} y con ellos formamos multiconjuntos de tamaño k. Ya sabemos que, para cada n ≥ 1 y k ≥ 0, k+n−1 multiconjuntos con k elementos R(n, k) = # = . extraı́dos de {1, . . . , n} n−1 El argumento combinatorio que vimos en la subsección 3.1.7 partı́a de la representación de cada multiconjunto como {1x1 , 2x2 , . . . , nxn } , donde cada xj es un entero no negativo, de manera que la suma de todos ellos vale k. Ası́ determinábamos que R(n, k) coincide con el número de soluciones de x1 + · · · + xn = k , xj ≥ 0 una ecuación diofántica con unas sencillas restricciones sobre las variables. Nos interesa ahora imponer condiciones más complicadas a los multiconjuntos. Por ejemplo, que el elemento 1 aparezca un número determinado de veces, o que los elementos se repitan a lo sumo un número de veces, o que. . . Ya vimos en la subsección 3.1.2, al menos en términos del problema diofántico asociado, que la resolución requerı́a una aplicación algo engorrosa del principio de inclusión/exclusión. Este último comentario es propaganda para el lector, porque, por supuesto, el método simbólico nos permitirá, por lo menos, representar estos multiconjuntos de manera ágil y flexible. Empecemos modestamente, sólo con tres sı́mbolos: {1, 2, 3}. Nos interesan todos los multiconjuntos distintos, de los que no fijamos todavı́a el tamaño, que se pueden formar con los elementos {1, 2, 3} en los que el 1 aparece a lo sumo dos veces, el 2 a lo sumo una vez y el 3 a lo sumo dos veces. Listemos todos los multiconjuntos que cumplen esta condición atendiendo a su tamaño: ⎧ tamaño 0 → Ø ⎪ ⎪ ⎪ ⎪ tamaño 1 → {1} {2} {3} ⎪ ⎪ ⎨ {3, 3} tamaño 2 → {1, 1} {1, 2} {1, 3} {2, 3} Multiconjuntos: tamaño 3 → {1, 1, 2} {1, 1, 3} {1, 2, 3} {1, 3, 3} {2, 3, 3} ⎪ ⎪ ⎪ ⎪ ⎪ tamaño 4 → {1, 1, 2, 3} {1, 1, 3, 3} {1, 2, 3, 3} ⎪ ⎩ tamaño 5 → {1, 1, 2, 3, 3} (versión preliminar 10 de noviembre de 2008) 12.1. El método simbólico 851 Cada uno de ellos se puede describir, de forma compacta e informativa, de la manera siguiente: {1α , 2β , 3γ } con 0 ≤ α ≤ 2, 0 ≤ β ≤ 1 y 0 ≤ γ ≤ 2. donde α indica el número de veces que aparece el elemento 1 en el multiconjunto, β el número de veces que lo hace el 2 y γ, el 3. Por otro lado, la propia notación anterior nos invita a considerar el siguiente producto de polinomios (1 + x1 + x1 2 ) (1 + x2 ) (1 + x3 + x3 2 ) . Si desarrollamos este producto y agrupamos los términos que nos aparecen según su grado total (la suma de los grados con que aparezcan las variables x1 , x2 y x3 ), obtenemos: ⎧ grado 0 → 1 ⎪ ⎪ ⎪ ⎪ x2 x3 grado 1 → x1 ⎪ ⎪ ⎨ grado 2 → x1 2 x1 x2 x1 x3 x2 x3 x3 2 Sumandos: 2 2 grado 3 → x1 x2 x1 x3 x1 x2 x3 x1 x3 2 x2 x23 ⎪ ⎪ ⎪ ⎪ ⎪ grado 4 → x1 2 x2 x3 x21 x23 x1 x2 x23 ⎪ ⎩ grado 5 → x1 2 x2 x3 2 Todos los sumandos son de la forma xα1 xβ2 xγ3 con 0 ≤ α ≤ 2, 0 ≤ β ≤ 1 y 0 ≤ γ ≤ 2. De manera que los multiconjuntos y los monomios son la misma cosa: en ambos casos, basta con dar una lista de tres números, (α, β, γ), que cumplan las restricciones señaladas arriba, para tener, en un caso, un multiconjunto de los que queremos contar, y en el otro un sumando en el desarrollo del polinomio. La regla (biyección) que nos permite pasar de unos objetos a otros será x1 α x2 β x3 γ ←→ {1α , 2β , 3γ } α veces β veces γ veces = 1, · · · , 1, 2, · · · , 2, 3, · · · , 3 . Además, el grado total de cada monomio coincide con el tamaño del multiconjunto que tiene asociado. Hemos transformado el problema de contar el número de multiconjuntos de tamaño digamos k que podemos formar con los elementos {1, 2, 3}, respetando las restricciones señaladas, en el de contar cuántos términos de grado total k aparecen en el desarrollo del producto de polinomios escrito anteriormente. Resta un último paso en el esquema de representación del método simbólico. Suele ser el caso que sólo nos interesa el número de multiconjuntos con las propiedades requeridas, y no una lista con todos ellos. Si en el producto (1 + x1 + x21 )(1 + x2 )(1 + x3 + x23 ) ponemos x1 = x2 = x3 = x, entonces todos los monomios de grado k se transforman en xk , y el coeficiente de xk de (1 + x + x2 )(1 + x)(1 + x + x2 ) nos dice, finalmente, cuántos k-multiconjuntos hay con las restricciones impuestas. (versión preliminar 10 de noviembre de 2008) 852 Capı́tulo 12. Funciones generatrices y Combinatoria La idea es general: digamos que, partiendo de los sı́mbolos {1, . . . , n}, nos interesa formar los multiconjuntos en los que el sı́mbolo 1 aparece, a lo sumo, r1 veces, el sı́mbolo 2 a lo sumo r2 veces, etc. Con argumentos análogos a los de antes, podemos establecer una biyección entre los dos siguientes colecciones de objetos: ⎧ ⎫ ⎫ ⎧ Sumandos que aparecen en el desarrollo ⎪ ⎪ Multiconjuntos extraı́dos ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎬ ⎨ del producto de polinomios en n variables ⎪ ⎬ ⎨ de {1, . . . , n} en los que n ←→ r cada elemento j aparece, ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ 1 + xj + · · · + xj j ⎭ ⎪ ⎪ ⎩ ⎩ ⎭ a lo sumo, rj veces. j=1 Fijémonos en que el número de elementos {1, . . . , n} que conforman los multiconjuntos coincide con el de variables que consideramos, x1 , . . . , xn . Y que el número de apariciones permitidas de cada elemento j (entre 0 y rj ) se traduce en el tipo de polinomio en la variable xj que consideramos (en este caso, un polinomio con todos los términos entre grado cero y grado rj ). Si lo que queremos es contar el número de multiconjuntos de tamaño k con estas caracterı́sticas, es decir, conocer el número de soluciones de x1 + · · · + xn = k , xj ≤ rj el truco de cambiar, en el producto de polinomios, a una única variable x, nos permite afirmar que la respuesta está en el coeficiente que acompaña a xk en el desarrollo en serie de n 1 + x + x2 + · · · + xrj . j=1 Ésta es la esencia del método simbólico. Veámoslo ahora en acción en unos cuantos ejemplos. Ejemplo 12.1.1 Multiconjuntos formados con los sı́mbolos {1, . . . , n}. Si no queremos imponer restricciones sobre cuántas repeticiones se permiten a los elementos, entonces debemos considerar el producto siguiente: (1 + x1 + x1 2 + · · · )(1 + x2 + x2 2 + · · · ) · · · (1 + xn + xn 2 + · · · ) , que contiene infinitos términos, cada uno de los cuales se corresponde con un multiconjunto extraı́do de {1, . . . , n} sin restricciones sobre el número de veces que aparece cada elemento. Si lo que nos interesa es el número de multiconjuntos de tamaño k, entonces sustituimos cada una de las variables x1 , x2 , . . . , xn por una única variable x para obtener n n 1 2 . 1 + x + x + ... = 1−x La respuesta que buscamos, el número R(n, k), es el coeficiente de xk de la serie de potencias anterior, una de nuestras favoritas: ∞ n+k−1 k 1 = x . (1 − x)n k k=0 Recuperamos ası́ la conocida fórmula para los R(n, k). (versión preliminar 10 de noviembre de 2008) ♣ 12.1. El método simbólico 853 Ejemplo 12.1.2 Subconjuntos (sin repetición) del conjunto {1, . . . , n}. Ahora nos interesan los subconjuntos de {1, . . . , n}, esto es, en interpretación algo forzada, los multiconjuntos formados con los sı́mbolos {1, . . . , n} en los cada elemento aparece, a lo sumo, una vez. Cada uno de estos estos subconjuntos se corresponde con uno de los 2n términos del producto de polinomios (1 + x1 )(1 + x2 )(1 + x3 ) · · · (1 + xn ) . Como antes, si lo que queremos es el número de subconjuntos de {1, . . . , n} que tienen tamaño k, sustituimos x1 , . . . , xn por una única x y obtenemos el polinomio n n k n x . (1 + x) = k k=0 La respuesta es, por supuesto, que podemos extraer junto {1, . . . , n}. n k subconjuntos de tamaño k del con♣ Ejemplo 12.1.3 Composiciones del entero n con k sumandos. Ya vimos, en la subsección 3.1.2, que el número de estas composiciones, es decir, el número de soluciones de x1 + · · · + xk = n , xj ≥ 1 era n−1 k−1 . Obsérvese también que, para esta cuestión, hemos cambiado los papeles de k y n con respecto a las ecuaciones diofánticas que hemos escrito antes. Si seguimos con el espı́ritu abstracto y simbólico que empapa esta sección, podemos entender cada composición como un multiconjunto de tamaño n extraı́do de un conjunto de k sı́mbolos, donde cada uno de ellos aparece al menos una vez. Olvidémonos por ahora del tamaño n, y asociemos a este tipo especial de multiconjuntos formados con k sı́mbolos el producto de polinomios correspondiente, que será k (xj + x2j + x3j + · · · ) = j=1 k j=1 xj 1 − xj Nótese que el que cada sı́mbolo aparezca al menos una vez en el multiconjunto se traduce en que los polinomios considerados no tienen término independiente. Ahora, de todos estos multiconjuntos, nos interesa contar cuántos hay con tamaño n. El ya habitual paso a una única variable nos dice que la respuesta está en el coeficiente n-ésimo de la función ∞ x 1 m+k−1 m k = xk = x x 1−x (1 − x)k k−1 m=0 j=1 ∞ ∞ m + k − 1 m+k n − 1 n = = x x . k−1 k−1 m=0 k n=k Ahı́ aparece la respuesta. (versión preliminar 10 de noviembre de 2008) ♣ Capı́tulo 12. Funciones generatrices y Combinatoria 854 Consideremos, finalmente, el siguiente problema, que tiene unas caracterı́sticas especiales, muy cercanas a las que más adelante nos aparecerán en el estudio de las particiones de enteros. Ejemplo 12.1.4 El cambio de monedas. Disponemos de monedas de uno, dos, cinco y veinte céntimos de euro. Queremos contar de cuántas maneras distintas podemos dar el cambio de, digamos, diez euros. Si llamamos, respectivamente, x1 , x2 , x5 y x20 al número de monedas de 1, 2, 5 y 20 céntimos que entran en un cambio de éstos, estamos buscando las soluciones de x1 + 2x2 + 5x5 + 20x20 = 1000 , x1 , x2 , x5 , x20 ≥ 0 porque 10 euros son 1000 céntimos de euro y debemos tener en cuenta el valor de cada moneda. Obsérvese que no es una ecuación diofántica como las escritas hasta aquı́. Pero pongamos en marcha la maquinaria simbólica: Llamemos, por ejemplo, P2 al conjunto de todas las posibles combinaciones de dos céntimos y representémoslas simbólicamente como P2 −→ 2 2 2 2 2 2 2 2 2 2 2 ... donde el primer sı́mbolo significa que no se utiliza ninguna moneda de dos céntimos. Hagamos lo mismo con las monedas de cinco céntimos: P5 −→ 5 5 5 5 5 5 5 5 5 5 5 ... Supongamos, por el momento, que se nos permite dar cambio utilizando monedas de dos y cinco céntimos. Las posibles combinaciones (que llamaremos P2,5 ) serán P2,5 −→ 2 5 2 5 2 5 5 2 5 5 5 2 5 5 5 5 ··· 2 5 2 5 2 5 5 2 5 5 5 2 5 5 5 5 ··· 2 2 5 2 2 5 .. . 2 2 5 5 2 2 5 5 5 .. . .. . ··· (Obsérvese que el orden de presentación de las monedas no importa). Intentemos ahora expresar estos sı́mbolos en términos de objetos más conocidos: por ejemplo, podemos asociar a P2 un polinomio en una variable x2 , P2 (x2 ) = 1 + x2 + x22 + x32 + · · · La relación es transparente: el elemento de P2 que no tiene moneda alguna se corresponde con el término 1 del polinomio, el que tiene una moneda, con el término x2 , etc. Lo mismo podemos hacer para las monedas de cinco: P5 (x5 ) = 1 + x5 + x25 + x35 + · · · (versión preliminar 10 de noviembre de 2008) 12.1. El método simbólico 855 Esta representación será útil si podemos reproducir el álgebra de las monedas, es decir, si alguna combinación de los polinomios P2 (x2 ) y P5 (x5 ) nos produce todas las configuraciones de monedas que se pueden obtener al mezclar los dos tipos. Si multiplicamos los dos polinomios, P2 (x2 ) P5 (x5 ) = 1 + x2 + x22 + x32 + · · · 1 + x5 + x25 + x35 + · · · = 1 1 + x5 + x25 + · · · + x2 1 + x5 + x25 + · · · + x22 1 + x5 + x25 + · · · + · · · Perfecto, ¡funciona!. Porque a cada configuración de monedas que puede aparecer le corresponde un término (y sólo uno) en este producto de polinomios: por ejemplo, dos monedas de dos y tres de cinco se corresponde con el término x22 x35 . Vamos a definir, de forma análoga, otros polinomios para cubrir el resto de los casos: para las monedas de uno, el polinomio P1 (x1 ), y para las de veinte, P20 (x20 ). De esta manera, toda la información sobre las configuraciones de monedas que pueden aparecer usando los cuatro tipos está codificada en el producto de polinomios 1 + xj + x2j + x3j + · · · . P1 (x1 ) P2 (x2 ) P5 (x5 ) P20 (x20 ) = j=1,2,5,20 Pero lo querı́amos contar, recordemos, era de cuántas maneras se puede dar cambio de diez euros con estos cuatro tipos de monedas. Consideremos una configuración de monedas cualquiera, por ejemplo, la que contiene a monedas de 1, b de 2, c de 5 y d de 20. El “valor” de esta combinación es a + 2b + 5c + 20d. Pero el término que en la representación simbólica anterior lleva asociada esta configuración es xa1 xb2 xc5 xd20 . De manera que, si hacemos el cambio habitual de pasar a una única variable x, este término se transforma en xa+b+c+d . El grado de este monomio no es el que querrı́amos, a + 2b + 5c + 20d. Luego el cambio habitual no es el apropiado aquı́. Aunque más adelante formalizaremos la técnica general, ya podemos intuir, por la estructura del problema (los diferentes valores de cada moneda), que el cambio adecuado es x1 = x , x2 = x2 , x5 = x5 y x20 = x20 , de manera que, por ejemplo, xa1 xb2 xc5 xd20 pasa a ser xa x2b x5c x20d = xa+2b+5c+20d , y todo cuadra. Con este peculiar cambio, el producto de polinomios se convierte en 1 + x2 + x4 + · · · 1 + x2 + x4 + · · · 1 + x5 + x10 + · · · 1 + x20 + x40 + · · · = 1 1 1 1 = 2 5 1 − x 1 − x 1 − x 1 − x20 El coeficiente del término de grado 1000 en el desarrollo de este producto de funciones es la respuesta a la pregunta que planteábamos en este ejemplo. Pero nótese que en esta expresión están codificadas todas las respuestas a los posibles problemas de cambio con monedas con uno, dos, cinco y veinte, y no sólo la de dar cambio de 1000 céntimos de euro. ♣ (versión preliminar 10 de noviembre de 2008) Capı́tulo 12. Funciones generatrices y Combinatoria 856 EJERCICIOS DE LA SECCIÓN 12.1 12.1.1 Compruébese que, si L(k) son los números de Leibniz (véase el ejemplo 6.1.14), es decir, el resultado de escribir k en binario y sumar luego las cifras de este desarrollo, se cumple que N +1 N 2 −1 j 1 + y x2 = y L(k) xk j=0 para cada N ≥ 0. k=0 Compruébese que (a) 3 N +1 = +1 2N −1 2L(k) ; k=0 (b) N +1 (1 + y) = +1 2N −1 y L(k) ; k=0 (c) (d) #{0 ≤ k ≤ 2N +1 / L(k) = j} = ∞ 2j (1 + x ) = j=0 ∞ k=0 xk = 1 1−x N +1 j para cada 0 ≤ j ≤ N + 1 ; si |x| < 1. (versión preliminar 10 de noviembre de 2008) 12.2. Funciones generatrices y particiones de enteros 12.2. 857 Funciones generatrices y particiones de enteros El objetivo en esta sección es escribir la función generatriz de la sucesión (pn ), que cuenta el número de particiones del entero positivo n, y también las funciones generatrices asociadas a particiones de n con diversas restricciones. Es ésta una cuestión clásica, que se remonta a Euler, y que, como verá el lector, tiene unos resultados y conexiones fascinantes. Sobre particiones de enteros ya sabemos mucho: el lector puede consultar la sección 3.3.3. Pero allı́ no tenı́amos todavı́a la ayuda de las funciones generatrices. Vamos a empezar con las particiones de n que tienen partes (sumandos) de tamaño a lo sumo k. Llamemos yj al número de veces que aparece el sı́mbolo j en la partición; cada aparición de j contribuye, claro, con j unidades a la suma (y el total ha de ser n). Ası́ que hay tantas particiones de n con partes de tamaño a lo sumo k como soluciones tiene y1 + 2 y2 + 3 y3 + · · · + k yk = n yj ≥ 0 Esta cuestión nos recuerda a la del cambio de monedas que vimos en el ejemplo 12.1.4. Vamos a transformarla en una con un aspecto más familiar de la siguiente manera: para cada j = 1, . . . , k, consideramos el cambio de variables xj = j yj . Con esto, nos enfrentamos con la cuestión de contar el número de soluciones de la ecuación diofántica x1 + x2 + · · · + xk = n , donde ahora las restricciones son algo distintas, pues cada xj ha de ser un múltiplo (no negativo) de j. Esto es, x1 puede ser un entero no negativo cualquiera, pero x2 ha de ser par, x3 múltiplo de 3, etc. Este planteamiento, junto con los ejemplos que vimos en la sección 12.1, nos convencen de la necesidad de desarrollar una metodologı́a general para abordar las siguientes cuestiones: contar el número de multiconjuntos de tamaño n formados con los sı́mbolos {1, . . . , k} con restricciones del siguiente tipo: para cada j = 1, . . . , k, el sı́mbolo j puede aparecer un número de veces que pertenece a un cierto conjunto Lj ⊆ N ∪ {0}. x1 + x2 + · · · + xk = n , O, equivalentemente, contar el número de soluciones de x1 ∈ L1 , x2 ∈ L2 , . . . , xk ∈ Lk . Los datos del problema son n, k y cada uno de los Lj . Como podrá comprobar el lector, todos los ejemplos que hemos visto hasta aquı́ se ajustan a esta estructura, sin más que establecer adecuadamente los papeles de k y n y tomar los Lj apropiados. Ahora recurrimos al método simbólico. Buscamos primero un producto de k series de potencias en cuyo desarrollo cada término se corresponda con uno de los multiconjuntos que estamos manejando. Para que se cumplan las restricciones del problema, ese producto habrá de ser de la siguiente forma: j j x1 x2 · · · xjk . P (x1 , . . . , xk ) = j∈L1 j∈L2 j∈Lk (versión preliminar 10 de noviembre de 2008) Capı́tulo 12. Funciones generatrices y Combinatoria 858 Como lo que nos interesa es el número de términos que tienen grado total n, empleamos el truco habitual de cambiar a una única variable x. Ası́ obtenemos k k j j j m x x ··· x = x QLj (x) , = P (x) = j∈L1 j∈L2 j=1 j∈Lk j=1 m∈Lj donde, por comodidad, hemos llamado QLj (x) a xm para cada j = 1, . . . , k. QLj (x) = m∈Lj Tras esto, el número de multiconjuntos de tamaño n de {1, . . . , k} en los que el número de veces que aparece el sı́mbolo j pertenece al conjunto Lj (o el número de soluciones de la ecuación diofántica asociada) es lo mismo que el coeficiente de xn en el desarrollo de P (x). Por ejemplo, si nos interesan los multiconjuntos de tamaño n con sı́mbolos del conjunto {1, . . . , k} (sin restricciones), tendremos que considerar Lj = N ∪ {0}, para cada j = 1, . . . , k: QLj (x) = ∞ 1 = 1−x m x m=0 =⇒ P (x) = k j=1 ∞ 1 k+n−1 n QLj (x) = = x . (1 − x)k k−1 n=0 Observe el lector que el coeficiente de xn de P (x) es R(k, n) pues, como ya habrá notado, hemos cambiado los papeles habituales de n y k. Si ahora estuviéramos interesados en los multiconjuntos de tamaño n con sı́mbolos del conjunto {1, . . . , k} en los que cada sı́mbolo aparece al menos una vez, esto es, en las composiciones de n con k sumandos, tendrı́amos que Lj = N para cada j = 1, . . . , k. Ası́ que ∞ QLj (x) = m x m=1 x = 1−x =⇒ P (x) = ∞ xk n−1 n QLj (x) = = x (1 − x)k k−1 n=0 k j=1 La respuesta es, como bien sabemos, n−1 k−1 . Veamos otro ejemplo: Ejemplo 12.2.1 Queremos contar el número de multiconjuntos de tamaño n que se pueden formar con los sı́mbolos {1, 2, 3} de manera que haya un número par (o cero) de unos, un número impar de doses y, a lo sumo, 2 treses. Esto es, las soluciones de x1 + x2 + x3 = n, con x1 par, x2 impar y 0 ≤ x3 ≤ 2. La respuesta está en el coeficiente n-esimo del desarrollo de P (x) = m x m par m x m impar 2 m x = (1+x+x2 ) m=0 1 x + x2 + x3 x = , 1 − x2 1 − x2 (1 − x)2 (1 + x)2 porque m par m x = ∞ m=0 2m x 1 = 1 − x2 y m impar m x = ∞ 2m+1 x =x m=0 (versión preliminar 10 de noviembre de 2008) ∞ m=0 x2n = x . 1 − x2 12.2. Funciones generatrices y particiones de enteros 859 Utilizando fracciones simples, desarrollamos en serie de potencias P (x) para obtener que su sucesión de coeficientes, las respuestas buscadas para cada n, viene dada por n ∞ 3 − (−1)n = (0, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17 . . . ) . 4 n=0 El lector puede entretenerse listando los multiconjuntos con estas caracterı́sticas que hay para los primeros valores de n. ♣ Volvamos sobre el ejemplo 12.1.4 sobre el cambio de monedas, ahora con este enfoque general. Hay cuatro sı́mbolos, {1, 2, 5, 20}, y los conjuntos asociados son los siguientes: L1 = N ∪ {0}, L2 son los números pares, L5 son los múltiplos de 5, mientras que L20 los de 20. El número de maneras de dar cambio de n céntimos de euro con estas monedas es el coeficiente que acompaña a xn en P (x) = ∞ xm ∞ m=0 x2m m=0 ∞ x5m m=0 ∞ x20m = m=0 1 1 1 1 . 2 5 1 − x 1 − x 1 − x 1 − x20 Ahora no es tarea sencilla obtener una expresión para el coeficiente n-esimo de P (x), aunque el ordenador los calcula muy eficientemente. Volveremos sobre este ejemplo en la sección 12.3 (véase en particular el ejemplo 12.3.4). Consideremos las particiones de n cuyos sumandos son, a lo sumo, de tamaño k. Como vimos al principio de esta sección, el problema es equivalente a extraer multiconjuntos de tamaño n de {1, . . . , k} de manera que cada sı́mbolo j pertenezca a Lj = {0, j, 2 j, 3 j, . . . }. O bien, si queremos, a contar el número de soluciones de x1 + · · · + xk = n, donde xj ∈ Lj , para cada j = 1, . . . , k. Las sumas de interés son QLj (x) = xm = m múltiplo de j ∞ m=0 xj m = 1 1 − xj para cada j = 1, . . . , k. De manera que la función generatriz de los números p(n | partes de tamaño a lo sumo k) es P (x) = k j=1 QLj (x) = k j=1 1 1 1 1 = ... . j 2 1−x 1−x 1−x 1 − xk Finalicemos esta introducción analizando, por fin, las particiones de n. Ejemplo 12.2.2 La función generatriz de los números p(n), el número de particiones de n. Llamamos de nuevo yj al número de veces que aparece el número j en la partición. Hay tantas particiones de n como soluciones tenga la ecuación y1 + 2y2 + 3y3 + 4y4 + · · · = n , donde todos los yj son no negativos. Observe el lector que, para un n dado, la suma es finita pues, por ejemplo, no podemos elegir números mayores que el propio n para la partición. Pero no nos preocupemos por eso, que esa información ya está contenida en la función generatriz. (versión preliminar 10 de noviembre de 2008) Capı́tulo 12. Funciones generatrices y Combinatoria 860 El cambio j yj = xj , para cada j, nos lleva a considerar las soluciones de x1 + x2 + x3 + x4 + · · · = n , donde cada xj debe pertenece ahora al conjunto {0, j, 2 j, 3 j, . . . }. Con argumentos análogos a los empleados en el caso de las particiones con partes de tamaño limitado, llegamos a que la sucesión p(n) son los coeficientes de la función P (x) = ∞ j=1 O, escrito de otra manera, ∞ p(n)xn = n=0 1 . 1 − xj ∞ j=1 1 . 1 − xj En las subsecciones 12.2.3 y 12.3.3 nos dedicaremos a extraer información sobre p(n) a partir de esta identidad. ♣ 12.2.1. Estructuras combinadas Pero antes de seguir con las particiones de los enteros, veamos el proceso seguido desde otro punto de vista. Supongamos que queremos contar el número de multiconjuntos de tamaño n que se pueden formar con los sı́mbolos {1, 2, 3} de manera que 1 y 2 aparezcan un número par de veces, mientras que 3 ha de aparecer en un número impar de ocasiones. Sabemos que la respuesta está contenida en el coeficiente n−ésimo de la función x . = f (x) = (1 − x2 )3 m par m par m impar Desarrollando en serie de potencias, obtendrı́amos el coeficiente buscado. Pero no nos interesa eso ahora. Sobre lo que queremos reflexionar es: ¿cuál es la diferencia entre los sı́mbolos 1 y 2? En realidad ninguna, pues ambos cumplen la misma condición: han de aparecer un número par de veces. Podrı́amos entonces haber partido de un conjunto de tres sı́mbolos, dos de una clase (el 1 y el 2), y un tercero de otra clase. Con esta idea en mente, hagamos un planteamiento más general e introduzcamos un lenguaje que confiamos sea ilustrativo: tenemos los sı́mbolos {1, 2, . . . }, pero cada sı́mbolo tiene una cierta cantidad, dj , de isótopos. Y formamos multiconjuntos donde, para cada j, el número de apariciones de (cualquiera de) los isótopos de j pertenezca a un conjunto Lj . Visto de otra manera, partimos de un conjunto de sı́mbolos {11 , 12 , . . . , 1d1 , 21 , 22 , . . . , 2d2 , . . . } y queremos formar multiconjuntos con ellos. Pero todos los isótopos del 1 (11 , 12 , etc.) han de aparecer un número de veces perteneciente a L1 , los del 2 a L2 , etc. (versión preliminar 10 de noviembre de 2008) 12.2. Funciones generatrices y particiones de enteros 861 Entonces, si llamamos h(n) al número de multiconjuntos de tamaño n con estas caracterı́sticas y xm , QLj (x) = m∈Lj es fácil comprobar que h(n) = Coefn ∞ QLj (x)dj . j=1 En otras palabras, que ∞ n=0 h(n)xn = ∞ QLj (x)dj . j=1 Nada de esto es una novedad, simplemente estamos agrupando los sı́mbolos que dan contribuciones iguales a la función generatriz global. Pero es una notación conveniente para estudiar ciertos problemas. En particular, uno sobre el número de árboles no isomorfos. Veamos antes un par de ejemplos más sencillos. Ejemplo 12.2.3 Tenemos el conjunto de sı́mbolos {1, . . . , 7} y queremos formar multiconjuntos de tamaño n en los que los sı́mbolos 1, 2 y 3 aparezcan un número par de veces y los restantes, un número impar de veces. Llamemos h(n) al número de multiconjuntos que se pueden formar en estas condiciones. Los sı́mbolos 1, 2 y 3 los interpretamos como isótopos de un sı́mbolo 1; cualquiera de ellos puede aparecer un número de veces perteneciente a L1 = {pares}. El resto de los sı́mbolos son isótopos de un sı́mbolo 2, y sus apariciones pertenecen a L2 = {impares}. Si queremos, consideramos otros sı́mbolos 3, 4, . . . que no tienen isótopo alguno. En estos términos, basta aplicar la fórmula general con d1 = 3, d2 = 4 y dj = 0 para j ≥ 2 y obtener que 3 4 ∞ 1 x h(n) xn = Q3pares (x) Q4impares (x) = . 2 2 1 − x 1 − x n=0 Llegamos ası́, directamente, al resultado que habrı́amos obtenido con el método habitual. ♣ Ejemplo 12.2.4 Llamemos d(n) al número de árboles no isomorfos con n vértices, y h(n) al número de bosques no isomorfos con n vértices. En la sección 8.2.1 estudiamos los primeros valores de d(n): 1 2 3 4 5 6 7 8 ··· n d(n) 1 1 1 2 3 6 11 23 · · · Para formar un bosque con n vértices basta escoger unos cuantos árboles, de manera que en total tengamos n vértices. Etiquetemos con 1 a los árboles con un único vértice, con 2 a los que tienen dos vértices, etc. En general, el sı́mbolo j representa a los árboles con j vértices (este sı́mbolo tiene d(j) isótopos). (versión preliminar 10 de noviembre de 2008) Capı́tulo 12. Funciones generatrices y Combinatoria 862 Todo lo que tenemos que hacer es formar multiconjuntos de tamaño total n formados con los sı́mbolos {1, 2, . . . } de manera que cualquiera de los d(j) isótopos de cada sı́mbolo j aparezca un número de veces perteneciente al conjunto Lj = {0, j, 2 j, 3 j, . . . } (porque cada vez que escogemos un isótopo de éstos para el bosque, aportamos j vértices). El número de maneras de hacer esto, que llamábamos h(n), será entonces ∞ QLj (x)d(j) . h(n) = Coefn j=1 Pero como QLj (x) = ∞ xm j = m=0 obtenemos finalmente que ∞ h(n) xn = n=0 1 , 1 − xj ∞ 1 . j )d(j) (1 − x j=1 Esta expresión liga los valores de h(n) con los d(j): si conociéramos alguna de las sucesiones, podrı́amos calcular los términos de la otra. Pero ninguna de esas dos cantidades son sencillas de obtener, como bien sabemos. La dificultad, por supuesto, estriba en que aquı́ no hay ♣ etiquetas1 . Si añadimos estructura al problema, podemos obtener un resultado mejor. Ejemplo 12.2.5 Llamemos ahora d(n) al número de árboles no isomorfos con n vértices, pero donde señalamos un vértice especial, la raı́z. De la misma forma, h(n) describe el número de bosques no isomorfos con n vértices tales que todos sus árboles tienen raı́z. Los mismos argumentos que en el ejemplo anterior nos permiten deducir que ∞ h(n) xn = n=0 ∞ 1 j=1 (1 − xj )d(j) . + 1), para cada n ≥ 0. La Pero ahora tenemos una ventaja, y es que ocurre que h(n) = d(n biyección que permite relacionar ambas cantidades está representada en el siguiente esquema (en oscuro, los vértices que son raı́z): - 1 Si las hubiera, sabemos, por el teorema de Cayley (teorema 8.8), que árboles distintos con n vértices hay nn−2 . Pero ¡atención!: si consideráramos etiquetas, los argumentos sobre la forma en que se combinan los árboles para formar bosques se complican: las funciones generatrices exponenciales que veremos en el capı́tulo 13 nos ayudarán en ese caso. (versión preliminar 10 de noviembre de 2008) 12.2. Funciones generatrices y particiones de enteros 863 En palabras, dado un bosque con n vértices (de manera que todos sus árboles tengan raı́z), añadimos un nuevo vértice que unimos con todas las raı́ces para obtener un árbol con raı́z y un vértice más. Y al revés: dado un árbol con raı́z y n + 1 vértices, eliminamos la raı́z y todas las aristas que parten de él: obtenemos ası́ un bosque con n vértices cuyos árboles tienen todos raı́z (son los “hijos” de lo que era la raı́z original). Con este ingrediente extra, podemos escribir que ∞ + 1) xn = d(n n=0 ∞ 1 j=1 (1 − xj )d(j) . En esta identidad, que ya obtuvo Cayley en 1857, sólo aparecen los d(n); a partir de ella podrı́amos implementar un procedimiento recursivo para obtener los valores de la sucesión (d(n)), cuyos primeros términos son 1 2 3 4 5 6 7 8 ··· n d(n) 1 1 2 4 9 20 48 115 · · · ♣ 12.2.2. Particiones restringidas Tras este interludio, volvamos a nuestras particiones de enteros. Ya sabemos que la función generatriz de las particiones de n cuyas partes son, a lo sumo, de tamaño k, es ∞ p(n | partes de tamaño ≤ k) x = n n=0 k j=1 1 . 1 − xj De esta expresión podemos obtener, de manera casi inmediata, la función generatriz de los números pk (n), las particiones de n con exactamente k partes. Observemos primero que pk (n) = 0 si n < k (porque cada parte, al menos, es de tamaño 1). Si además recordamos el teorema 3.7, que nos decı́a que p(n | partes de tamaño a lo sumo k) = p(n + k | k partes) = pk (n + k) , obtenemos que k j=1 1 1 − xj = = ∞ m=0 ∞ p(m | partes de tamaño a lo sumo k) xm pk (m + k) xm = m=0 De donde ∞ pk (n)xn−k = n=0 n=k ∞ n=0 n k pk (n)x = x k j=1 ∞ 1 . 1 − xj (versión preliminar 10 de noviembre de 2008) pk (n)xn−k . Capı́tulo 12. Funciones generatrices y Combinatoria 864 En los siguientes ejemplos analizamos otros tipos de particiones: Ejemplo 12.2.6 La función generatriz de las particiones de n en las que cada parte aparece, a lo sumo, k veces. Si llamamos, como siempre, yj al número de veces que aparece el sı́mbolo j en la partición, contar esas particiones es lo mismo que contar el número de soluciones de x1 + x2 + x3 + · · · = n y1 + 2y2 + 3y3 + · · · = n o bien el de 0 ≤ yj ≤ k xj ∈ {0, j, 2 j, . . . , k j} (nótese que ahora cada conjunto Lj es finito, ası́ que aparecerán polinomios). Con las herramientas habituales, llegamos a que ∞ ∞ ∞ n 1 − x(k+1)j j kj p n cada parte, a lo sumo k veces x = 1 + x + ··· + x = 1 − xj ♣ n=0 j=1 j=1 Ejemplo 12.2.7 Obtengamos la función generatriz de las particiones de n que tienen todas sus partes distintas. No hay más que considerar el ejemplo anterior en el caso en que k = 1: ∞ p(n | partes distintas) xn = n=0 ∞ ∞ 1 − x2j = 1 + xj . j 1−x j=1 j=1 ♣ Ejemplo 12.2.8 Supongamos que sólo queremos contar las particiones con partes impares. En general, si las partes han de estar en un cierto conjunto L, entonces ∞ p(n | partes en L)xn = n=0 j∈L 1 . 1 − xj En el caso que nos ocupa, el conjunto L será el de los impares y ∞ n=0 p(n | partes impares)xn = ∞ j=0 1 . 1 − x2j+1 ♣ Con esto podemos probar, casi de forma inmediata, un resultado que anunciábamos al final de la sección 3.3.3: Teorema 12.1 (Euler) p(n | partes impares) = p(n | partes distintas) . Demostración. Sólo hay que comprobar que ambas sucesiones de números tienen la misma función generatriz. Manipulando la correspondiente a las particiones con todas sus partes distintas (ejemplo 12.2.7), ∞ j 1 − x2j 1 j par (1 − x ) = = , ∞ j) 1 − xj (1 − x 1 − xj j=1 j=1 j impar llegamos a la de las particiones con partes impares (ejemplo 12.2.8). (versión preliminar 10 de noviembre de 2008) 12.2. Funciones generatrices y particiones de enteros 865 Cálculo de p(n) 12.2.3. En la subsección 3.3.3, con la ayuda de los diagramas de Ferrers, obtuvimos unas relaciones de recurrencia para los pk (n): si k > 1, pk (n) = pk−1 (n − 1) + pk (n − k) (véase el teorema 3.6). Con ellas podı́amos calcular los pk (n) y, sumando en todos los valores de k, también los p(n). También vimos entonces unos resultados de Euler que involucraban a los números pentagonales. Ahora veremos su utilidad. Empecemos recordando la función generatriz, que llamaremos P (x), de las particiones de n cuyas partes son todas distintas: ∞ ∞ p(n | partes distintas)xn = (1 + xj ) ≡ P (x) . n=0 j=1 Cada partición de n cuyas partes sean todas distintas contribuye con un 1 al coeficiente de xn del desarrollo de la función P (x). ¿Y si consideráramos la función P(x) = ∞ (1 − xj ) ? j=1 Es como la función P (x), pero cambiamos un signo (aunque, ¡ojo!, no es P (−x)). Cada partición de n con partes distintas sigue contribuyendo al coeficiente de xn de P(x); pero ahora con un (−1)s , donde s es el número de partes que tenga la partición: si tiene un número impar de partes, contribuirá con un −1 y si un número par, con un 1. Es decir, ∞ j (1 − x ) = ppar (n) − pimpar (n) , Coefn j=1 donde llamamos (como ya hacı́amos en la sección 3.3), ppar (n) = p(n | número par de partes, todas distintas) pimpar (n) = p(n | número impar de partes, todas distintas) Ya vimos (teorema 3.8) que esta diferencia es cero excepto cuando n coincide con m (3m ± 1) para cierto entero m ≥ 1 , 2 en cuyo caso vale (−1)m . Esto es, ∞ ∞ m m (1 − xj ) = 1 + (−1)m x 2 (3m−1) + x 2 (3m+1) . P(x) = j=1 m=1 Lo que explica el curioso comportamiento del desarrollo de P (x): ∞ (1 − xj ) = 1 − x − x2 + x5 + x7 − x12 − x15 + x22 + x26 − x35 − x40 + · · · , j=1 un desarrollo con muchos coeficientes nulos y un patrón de signos aparentemente reconocible: dos signos más, dos signos menos, etc. (versión preliminar 10 de noviembre de 2008) Capı́tulo 12. Funciones generatrices y Combinatoria 866 Esta sorprendente identidad tiene su aplicación, como ya viera Euler, al cálculo de p(n). Porque la función generatriz de los p(n) ∞ n=0 p(n)xn = ∞ j=1 1 1 − xj es precisamente la recı́proca de la función P(x). Es decir, que ∞ ∞ ∞ ∞ m m 1 j n m (3m−1) (3m+1) x2 1+ (1 − x ) = p(n)x (−1) +x2 1= 1 − xk j=1 n=0 k=1 m=1 Ası́ que el coeficiente n-ésimo de este producto de series es cero para cada n ≥ 1. Utilizando la regla habitual de multiplicación de series de potencias, se obtiene que, para cada n ≥ 1, ∞ m m 0 = p(n) + (−1)m p n − (3m − 1) + p n − (3m + 1) . 2 2 m=1 O, escrito de otra manera, p(n) = ∞ m=1 m m (−1)m+1 p n − (3m − 1) + p n − (3m + 1) 2 2 = p(n − 1) + p(n − 2) − p(n − 5) − p(n − 7) + p(n − 12) + p(n − 15) − · · · La suma es en realidad finita, pues sólo aparecen términos p(n − k) en los que n − k ≥ 0. Es decir, es una auténtica recurrencia que nos permitirá calcular el valor de p(n), para cada n. Para ello, será siempre útil tener la tabla de los números pentagonales: 1 2 3 4 5 6 7 8 ··· m m(3m − 1)/2 1 5 12 22 35 51 70 92 · · · m(3m + 1/2) 2 7 15 26 40 57 77 100 · · · (en realidad, los pentagonales son los números de la primera fila). Los primeros casos son (recordemos que p(0) = 1): p(1) = [p(1 − 1)] = p(0) = 1 p(2) = [p(2 − 1) + p(2 − 2)] = p(1) + p(0) = 2 p(3) = [p(3 − 1) + p(3 − 2)] = p(2) + p(1) = 3 p(4) = [p(4 − 1) + p(4 − 2)] = p(3) + p(2) = 5 p(5) = [p(5 − 1) + p(5 − 2)] − [p(5 − 5)] = p(4) + p(3) − p(0) = 7 p(6) = [p(6 − 1) + p(6 − 2)] − [p(6 − 5)] = p(5) + p(4) − p(1) = 11 p(7) = [p(7 − 1) + p(7 − 2)] − [p(7 − 5) + p(7 − 7)] = p(6) + p(5) − p(2) − p(1) = 15 .. . Obtenemos ası́ una tabla de los primeros valores de p(n): 1 2 3 4 5 6 7 8 9 10 11 · · · n p(n) 1 2 3 5 7 11 15 22 30 42 56 · · · (versión preliminar 10 de noviembre de 2008) 12.3. Estimaciones asintóticas 12.3. 867 Estimaciones asintóticas A lo largo de estas páginas hemos comentado ya en varias ocasiones los dos puntos de vista que podemos adoptar al tratar con funciones generatrices, el formal y el analı́tico. Para la mayorı́a de las manipulaciones y usos que hemos exhibido hasta aquı́, el primero de ellos es suficiente. Pero, en las cuestiones que trataremos en esta sección, el segundo punto de vista será el relevante pues pretendemos, a partir de las propiedades de f (z) como función, obtener información sobre, por ejemplo, el comportamiento asintótico de los coeficientes (an ) asociados a f (z). Obsérvese que ya hemos reservado el sı́mbolo z para la variable, porque en estas cuestiones es necesario considerar funciones de variable compleja. Avisamos, por tanto, al lector de que las ideas y técnicas que vamos a desarrollar en esta sección requieren cierta familiaridad con la Teorı́a de funciones de variable compleja. Partimos de la función generatriz f (z) de la sucesión de números (an ), f (z) = ∞ an z n . n=0 Esta serie de potencias converge para los valores de z tales que |z| < R, donde R es el radio de convergencia de la serie que, como vimos ya en la sección 10.3, se calcula mediante 1 = lı́m sup |an |1/n . R n→∞ En otras palabras, la serie converge para todos los z que estén dentro del disco centrado en el origen y de radio R, que nombraremos2 como D(0, R). En términos cualitativos, si el radio de convergencia es muy grande, los coeficientes an deberán tender a 0 muy rápidamente n tendrá sentido para valores de z muy a z con n. Piénsese que, si R es grande, la serie ∞ n=0 n grandes (en módulo); y sólo un decrecimiento rápido de los coeficientes puede compensar el crecimiento del módulo de z n . La definición del radio de convergencia nos dice dos cosas: por un lado, que n 1 +ε para cualquier ε > 0 que tomemos, |an | < R si n es suficientemente grande (es decir, a partir de un N = N (ε) en adelante). Y, por otro, que hay infinitos valores de n para los cuales n 1 − ε < |an | . R Esta información es, en ocasiones, poco útil y precisa. Por ejemplo, si consideramos ∞ f (z) = 1 = zn 1−z n=0 entonces los an son todos 1 y el radio de convergencia es R = 1, pero las acotaciones anteriores sólo nos informan de que 1 < (1 + ε)n para n grande, y de que hay infinitos valores de n para los que 1 > (1 + ε)n . 2 Los discos, ubicuos en la Teorı́a de funciones de variable compleja, reciben una notación de alta categorı́a, D, que los sitúa a la par de los conjuntos de números como C. (versión preliminar 10 de noviembre de 2008) Capı́tulo 12. Funciones generatrices y Combinatoria 868 En el caso en que f (z) sea una función entera, esto es, holomorfa en todo el plano, la estimación anterior sı́ da una información muy buena. El radio de convergencia es R = +∞ y entonces obtenemos que, dado ε > 0, |an | < εn para n ≥ N (ε). Es decir, los an tienden a cero muy rápidamente. Una información, en esta situación, bastante precisa. La mayorı́a de las funciones generatrices que nos encontramos en las aplicaciones son cocientes de funciones enteras por polinomios, es decir, funciones meromorfas en todo C con un número finito de polos (los ceros de los polinomios). Como veremos, en la ubicación de estos polos reside una importante información para determinar cómo crecen los coeficientes3 . 12.3.1. Polos y comportamiento asintótico Para comenzar, supongamos que f (z) es una función meromorfa en el plano complejo y que sólo tiene un número finito de polos, ninguno de los cuales es el origen. En otros términos, f (z) es el cociente de una función entera por un polinomio que no se anula en el origen. Sea R el módulo de la singularidad de f (z) (cero del polinomio del denominador) más cercana al origen (quizás haya varios ceros a esa misma distancia mı́nima). La función f (z) es entonces holomorfa en el disco |z| < R; de hecho, R es el radio de convergencia de la serie de Taylor de f (z) alrededor del origen. El siguiente ejemplo es bastante revelador del papel de los polos y nos dará la idea de un procedimiento general de estimación. Ejemplo 12.3.1 Consideremos la función f (z) = Sabemos que z e = ∞ zn n=0 n! ez . 1−z ∞ y 1 = zn . 1 − z n=0 La regla de multiplicar por la serie geométrica nos dice que los coeficientes de f (z) son z n 1 e = . Coefn 1−z k! k=0 Sabemos que estos números son, aproximadamente, como e cuando n es grande, pero aquı́ nos interesa obtener este comportamiento estudiando f (z) como función. Obsérvese primero que del radio de convergencia de la serie, que es 1, obtenemos una información muy pobre: (1 − ε)n < |an | < (1 + ε)n para cualquier ε > 0, donde la primera desigualdad es válida para infinitos valores de n, mientras que la de la derecha lo es si n es suficientemente grande. Poca cosa, desde luego. 3 Se pueden obtener otras estimaciones para el tamaño de los coeficientes, vı́a, por ejemplo, la fórmula de Cauchy (véase el ejercicio 12.3.1). (versión preliminar 10 de noviembre de 2008) 12.3. Estimaciones asintóticas 869 Empleamos la astucia, escribiendo f (z) de la siguiente manera: e e ez − e e ez − + = + . 1−z 1−z 1−z 1−z 1−z Observemos que (ez − e)/(1 − z) es una función holomorfa en todo el plano (ya no está la singularidad en z = 1), ası́ que sus coeficientes son menores que εn , para cualquier ε > 0, si n es suficientemente grande. Por su parte, la función e/(1 − z) tiene todos sus coeficientes iguales a e. Ası́ que deducimos que z e = e + O(εn ) Coefn 1−z f (z) = cuando n → ∞, para cualquier ε > 0 que tomemos. Magnı́fico: los coeficientes son, efectivamente, como e, y además hemos determinado el error cometido con precisión (recuérdese que podemos tomar un ε tan pequeño como queramos). ♣ A continuación vamos a destilar del argumento anterior una técnica general. Supongamos que f (z) es una función holomorfa en el disco de radio T salvo por un número finito de polos, ninguno de los z1 z2 cuales es el origen; y pongamos que z1 , . . . , zk son los más cercanos R S T al origen, por ejemplo a distancia R, R < T . Puede haber otros polos zk con distancia al origen comprendidas entre R y T , pero si tomamos un S adecuado entre R y T , tendremos que f (z) es holomorfa en el disco D(0, S), salvo por los polos z1 , . . . , zk . Denotemos por Pj (z) la parte principal de f (z) en zj , para cada j = 1, . . . , k, y llamemos por g(z) a la suma de esas partes principales: g(z) = P1 (z) + P2 (z) + · · · + Pk (z) . Si escribimos ahora f (z) = (f (z) − g(z)) + g(z) , la función f (z) − g(z) será holomorfa en el disco de radio S > R, ası́ que sus coeficientes serán, como veremos, mucho menores que los de la propia función f (z) y bastará, por tanto, estudiar los coeficientes g(z). Ejemplo 12.3.2 Consideremos la función f (z) = −2 (1 − z 2 ) (z − 2) = 2 . (z − 1) (z + 1) (z − 2) La función f (z) puede ser desarrollada, utilizando, por ejemplo, fracciones simples (o quizás usando que es un producto de series geométricas); con cierto trabajo, se obtiene que el coeficiente n-ésimo de f (z) es 2 2 2 − 2−n−1 1 − 2−n−1 si n es par; si n es impar. 3 3 Lo que esta fórmula nos dice es que el coeficiente n−ésimo de la función es, cuando n es grande, aproximadamente 4/3 si n es par, y aproximadamente 2/3 si n es impar. (versión preliminar 10 de noviembre de 2008) Capı́tulo 12. Funciones generatrices y Combinatoria 870 Intentemos un análisis asintótico directo. Los polos (todos simples, de multiplicidad 1) de la función son 1, −1 y 2; los dos primeros son los más cercanos al origen (ası́ que R = 1) y son los que más van a influir en el comportamiento asintótico de los coeficientes. La suma, g(z), de las partes principales de f (z) en 1 y −1 es g(z) = P1 (z) + P−1 (z) = 1 1 1 1 1 −1 + = + . z−1 3 z+1 1−z 3 1+z La función f (z) − g(z) resulta ser holomorfa en el disco D(0, 2) (su singularidad más cercana al origen es z = 2), ası́ que su coeficiente n-ésimo será, en módulo, menor que ((1/2) + ε)n . El coeficiente n-ésimo de g(z) es muy fácil de obtener: g(z) = ∞ n=0 zn + ∞ ∞ 1 (−1)n n z . (−1)n z n = 1+ 3 3 n=0 n=0 Ası́ que 1 n (−1)n +O +ε , Coefn [f (z)] = 1 + 3 2 el comportamiento asintótico que anunciábamos antes. ♣ Ejemplo 12.3.3 El comportamiento asintótico de los números de Bell ordenados B(n). Recordemos, del ejercicio 10.4.8, que estos números se pueden calcular, para cada n ≥ 1, mediante n ∞ kn S(n, k) k! , o bien con B(n) = B(n) = 2k+1 k=1 k=0 (además, B(0) = 1). Ninguna de estas dos fórmulas nos da una idea clara de cómo crecen los números B(n). En el citado ejercicio también vimos que la función genelog(2) + 4πi ratriz de los B(n) era f (z) = 1/(2 − ez ). Hagamos el análisis asintótico correspondiente a esta función. Observemos primelog(2) + 2πi ro que la función 2 − ez se anula en los puntos de la forma z = log(2) + 2 k π i, para cada entero k, ası́ que éstos son los R log(2) polos (simples) de f (z). El más cercano al origen, como se apreR cia en el dibujo, es z = log(2). La parte principal de la función f (z) es log(2) − 2πi −1/2 , g(z) = z − log(2) log(2) − 4πi que, desarrollada en serie de potencias, es ∞ g(z) = zn 1 1 1 = . 2 log(2) 1 − z/ log(2) 2 log(2) log(2)n n=0 Por otro lado, se tiene que f (z) − g(z) encuentra sus primeras singularidades en los puntos z = log(2) ± 2 π i, cuya distancia al origen es R = log(2)2 + 4 π 2 . (versión preliminar 10 de noviembre de 2008) 12.3. Estimaciones asintóticas 871 Ası́ que podemos concluir que 1 n 1 B(n) = + O + ε . n! 2 (log 2)n+1 R Para hacernos una idea de la precisión que hemos conseguido con esta aproximación, hagamos el cálculo de los primeros valores: 1 2 3 4 5 6 ··· n 1 3 13 75 541 4683 ··· B(n) n!/(2 (log 2)n+1 ) 1,041 3,002 12,996 74,999 541,002 4683,001 · · · ♣ Una precisión impresionante, desde luego. Como el lector podrá sospechar, aquı́ sólo estamos contando parte de la historia: hay funciones generatrices (con interés desde el punto de vista de la Combinatoria) que no se ajustan al esquema que aquı́ hemos planteado y aplicado. Por ejemplo, funciones con singularidades algebraicas o funciones enteras, como ez , asociada a los números 1/n!, o como exp(ez − 1), asociada (recordemos el ejercicio 10.4.7) a los números B(n)/n!, donde los B(n) son los números de Bell. Existen técnicas para tratar también estos casos, pero aquı́ no entraremos en ellas. 12.3.2. Estimaciones asintóticas para particiones restringidas En la subsección 12.2.2 obtuvimos la función generatriz de un tipo especial de particiones: p(n | partes ≤ k) = Coefn k j=1 La función k j=1 1 1 − zj 1 1 1 1 = ··· . 1 − zj 1 − z 1 − z2 1 − zk tiene muchos polos, un total de k(k + 1)/2 de ellos, pero todos son números complejos de módulo 1. En realidad son raı́ces de la unidad: los polos de cada factor 1/(1 − z j ) son las soluciones de z j = 1, es decir, las raı́ces j−ésimas de la unidad, los números de la forma e2π i α/j , para α = 0, 1, . . . , j − 1. Y esto, para cada valor de j entre 1 y k. Hay una de estas raı́ces que es especial: z = 1 es un polo de todos los factores que aparecen, ası́ será un polo de multiplicidad k para la función generatriz completa. Como veremos, el resto de los polos tiene multiplicidad menor. Ası́ que vamos a necesitar una estimación asintótica de los coeficientes de una función generatriz que tenga todos sus polos a distancia 1 del origen, de los cuales uno tiene multiplicidad máxima. Uno dirı́a que es este polo de “más peso” el que va a determinar el comportamiento asintótico. Lo confirma el siguiente resultado. (versión preliminar 10 de noviembre de 2008) Capı́tulo 12. Funciones generatrices y Combinatoria 872 Lema 12.2 Consideremos una función racional f (z), que tiene una serie de polos no nulos p1 , . . . , pN , de multiplicidades m1 , . . . , mN , respectivamente. Todos los polos son de módulo 1 y uno de ellos, digamos p1 , tiene multiplicidad mayor que la de los demás: m1 > mj para cada j = 2, . . . , N . La función f (z) es holomorfa en D(0, 1) y, si escribimos su serie de potencias, f (z) = ∞ an z n , n=0 que es válida para |z| < 1, entonces an ∼ C nm1 −1 , p1m1 +n (m1 − 1)! donde C = lı́mz→p1 f (z)(p1 − z)m1 . Demostración. Para cada polo pj , llamemos (j) ck = lı́m f (z) (pj − z)k , z→pj k = 1, . . . , mj a los coeficientes de la parte principal del desarrollo de Laurent de f (z) en torno al polo pj . Con lo visto hasta aquı́, ya sabemos que los coeficientes de f (z) son, asintóticamente, como los de la función mj N (j) ck , g(z) = (pj − z)k j=1 k=1 la suma de las partes principales de f (z) en cada polo. Estimemos la contribución de cada uno de estos términos. Para ello vamos a necesitar recordar (véase el ejercicio 3.1.3) que n+k−1 nk−1 cuando n → ∞. ∼ (k − 1)! k−1 Esto lo obtenı́amos sin más que aplicar la habitual fórmula de Stirling. Tomemos entonces uno de los términos y desarrollémoslo en serie de potencias: n (j) (j) (j) ∞ ck ck n + k − 1 ck 1 z = = k . k k k (pj − z) pj k−1 pj (1 − z/pj ) pj n=0 Ası́ que Coefn (j) (j) (j) ck ck ck nk−1 n+k−1 . = ∼ (pj − z)k (k − 1)! k−1 pk+n pk+n j j Hay muchas contribuciones de este tipo, pero como todos los pj tienen módulo 1, la que más va a influir cuando n es muy grande es aquélla en la que n lleve la mayor potencia. Esto es, el término correspondiente al polo p1 cuando consideramos su multiplicidad m1 , (1) cm1 1 +n pm 1 nm1 −1 , (m1 − 1)! que es lo que querı́amos demostrar. (versión preliminar 10 de noviembre de 2008) 12.3. Estimaciones asintóticas 873 Vamos a aplicar este lema a la estimación del tamaño de p(n | partes ≤ k). Pero, por el mismo precio, podemos obtener un resultado más general (por ejemplo, nos propocionará, también, una respuesta aproximada al problema del cambio de monedas); es un resultado debido a Schur4 . Teorema 12.3 (Schur) Sean a1 , . . . , ak unos ciertos números positivos, con mcd(a1 , . . . , ak ) = 1, y llamemos h(n) al número de soluciones de la ecuación diofántica a1 x1 + · · · + ak xk = n . Figura 12.1: Schur Entonces, h(n) ∼ 1 nk−1 (k − 1)! a1 · · · ak cuando n → ∞. Antes de ir con la demostración, observemos que, si n es suficientemente grande, h(n) es mayor que 1; ası́ que habrá alguna solución de la ecuación diofántica. En otras palabras, este este teorema nos dice que, dados los números a1 , . . . , ak , si n es suficientemente grande, se puede representar (al menos de una forma) como a1 x1 + · · · + ak xk . Demostración. Construimos primero la función generatriz H(z) = ∞ h(n)z n . n=0 Los números h(n) cuentan también cuántos multiconjuntos hay con tamaño n, formados con los sı́mbolos {1, . . . , k}, y en los que cada sı́mbolo j aparece un número de veces que es un múltiplo del aj correspondiente. El argumento simbólico habitual nos sugiere considerar los conjuntos Lj = {0, aj , 2aj , . . . }, para cada j, y sus funciones asociadas QLj (z) = ∞ n=0 z n aj = 1 , 1 − z aj de manera que H(z) = k j=1 1 1 1 1 = ··· . a a a j 1 2 1−z 1−z 1−z 1 − z ak Ya disponemos de una expresión para H(z), y ahora sólo resta buscar sus polos, que son las raı́ces aj -ésimas de la unidad, para cada aj ; en todo caso, números de módulo 1. 4 Issai Schur (1875-1941), nacido en la actual Bielorusia, destacó en sus estudios sobre representaciones de grupos, ecuaciones algebraicas y Teorı́a de Números (veremos otro resultado suyo en el capı́tulo 20, dedicado a la Teorı́a de Ramsey). Trabajó la mayor parte de su vida en Berlı́n (entre sus alumnos destacan nombres como Brauer y Radó). Por su condición de judı́o tuvo que renunciar a sus puestos académicos. Finalmente, emigró a Palestina, donde murió. (versión preliminar 10 de noviembre de 2008) Capı́tulo 12. Funciones generatrices y Combinatoria 874 Puede haber números de módulo 1 que sean polos de “alta” multiplicidad para H(z). Por ejemplo, si fuera a1 = 2 y a2 = 4, entonces el número z = −1 serı́a solución, tanto de 1 − z a1 = 0, como de 1 − z a2 = 0. Y, por tanto, un polo (al menos) doble de H(z). Obsérvese también que la máxima multiplicidad que puede tener un polo de la función es k. Desde luego, z = 1 tiene esa multiplicidad máxima, y, si consiguiéramos probar que los demás polos tienen multiplicidad menor, entonces estarı́amos en las condiciones del lema 12.2, que nos darı́a una estimación asintótica de los coeficientes de H(z). Consideremos entonces un polo z0 de H(z), que ha de ser una raı́z aj −ésima de la unidad, a para algún aj . Es decir, 1 − z0 j = 0. La multiplicidad de z0 como polo de H(z) será el número de ı́ndices j (o de números aj ) para los que esta ecuación se verifique. Como z0 tiene módulo 1, lo podremos escribir como z0 = e2 π i θ , para cierto θ ∈ [0, 1), y la condición sobre θ se escribe de la siguiente manera: 1 − e2 π i θ aj = 0 =⇒ e2 π i θ aj = 1 . Esto supone que θ debe ser un número racional, digamos θ = p/q, con mcd(p, q) = 1, de manera que, además, q divida a aj . Pero si además queremos que z0 sea un polo de H(z) de multiplicidad k, entonces q ha de dividir a todos los a1 , . . . , ak . Como mcd(a1 , . . . , ak ) = 1, sólo cabe la posibilidad de que q = 1 y, por tanto, θ ha de ser un entero. Ası́ que necesariamente θ = 0, y z = 1 es el único polo de H(z) que tiene multiplicidad máxima, k. Ahora sólo tenemos que aplicar el lema 12.2 para obtener que h(n) ∼ C nk−1 (k − 1)! cuando n → ∞. El cálculo explı́cito de la constante C, k k k 1−z 1 1 = lı́m = , z→1 z→1 1 − z aj 1 + z + z 2 + · · · + z aj −1 aj C = lı́m H(z)(1 − z)k = lı́m z→1 j=1 j=1 j=1 concluye la demostración. Apliquemos este resultado asintótico a un par de ejemplos. Ejemplo 12.3.4 Seguimos preguntándonos de cuántas maneras podemos dar cambio de 10 euros con monedas de uno, dos, cinco y veinte céntimos de euro. La respuesta, como vimos en el ejemplo 12.1.4, está en el coeficiente de z 1000 de la función f (z) = 1 1 1 1 . 1 − z 1 − z 2 1 − z 5 1 − z 20 Con ayuda de algún paquete matemático de cálculo, obtenemos que hay 868751 maneras de hacerlo. Observemos además que los coeficientes de la ecuación diofántica asociada al problema, los números 1, 2, 5 y 20, cumplen que mcd(1, 2, 5, 20) = 1. (versión preliminar 10 de noviembre de 2008) 12.3. Estimaciones asintóticas 875 Ası́ que podemos aplicar el resultado de Schur, que nos da la respuesta aproximada 1 10003 = 833333, 3333 . . . 3! 1 × 2 × 5 × 20 una diferencia de apenas el 4 %. La estimación es mejor cuanto mayor sea n. Si, por ejemplo, consideramos el caso del cambio de 100 euros, entonces la respuesta exacta es 836837501, mientras que la aproximada es 833333333,33, y la discrepancia es de apenas un 0,4 %. ♣ Ejemplo 12.3.5 Las particiones de n cuyas partes tienen, a lo sumo, tamaño k. Estas particiones son, como vimos en su momento, las soluciones de la ecuación x1 + 2 x2 + · · · + k xk = n . Ası́ que basta aplicar el teorema de Schur tomando aj = j para cada j = 1, . . . , k (por supuesto, se cumple que mcd(1, . . . , k) = 1), para deducir que p(n | partes de tamaño a lo sumo k) ∼ nk−1 , (k − 1)! k! puesto que C= k k 1 1 1 = . = aj j k! j=1 j=1 En la subsección 3.3.3 ya obtuvimos, con argumentos combinatorios, una estimación seme♣ jante para pk (n), las particiones de n con exactamente k partes5 . El método que hemos expuesto en la subsección anterior, y que hemos aplicado con tanto éxito en ésta, está pensado para funciones que sólo tienen un número finito de polos en un cierto disco alrededor del origen. Las funciones generatrices asociadas a las particiones restringidas cumplen ese requerimiento de finitud. Entender las particiones restringidas parece una tarea más complicada que entender las particiones generales. Pero, en realidad, para la cuestión que aquı́ hemos estado investigando, las restringidas suponen una ventaja: las restricciones significan que sólo tenemos que vérnoslas con un número finito de polos. Las particiones generales tiene como función generatriz a ∞ ∞ 1 = p(n)z n P (z) = 1 − xj j=1 n=0 donde p(n) es el número de particiones del número n. Las singularidades no son aisladas. Todos los puntos del cı́rculo unidad son singularidad de P (z). En la subsección siguiente, para los últimos cálculos del capı́tulo, vamos a abandonar la variable compleja para volver a la habitual variable real. Veremos cómo, con sencillos argumentos de monotonı́a (y convexidad) de series de potencias con coeficientes positivos (y crecientes), podemos obtener una buena estimación asintótica de cómo crecen los p(n), aunque la estimación exacta requiere técnicas muy refinadas, a las que sólo aludiremos. 5 Alguien podrı́a preguntarse cómo es posible que p(n | partes ≤ k), que sabemos, véase el teorema 3.7, que coincide con pk (n + k), tenga el mismo comportamiento asintótico que pk (n) (cuando, desde luego, pk (n) y pk (n + k) no son iguales, el segundo número es claramente mayor). Pero es que esto es una estimación asintótica y, efectivamente, para k fijo, las dos cantidades son asintóticamente iguales. (versión preliminar 10 de noviembre de 2008) Capı́tulo 12. Funciones generatrices y Combinatoria 876 12.3.3. Estimación asintótica de particiones generales: ¿cómo crece p(n)? Recordemos, de la subsección 12.2.3, la regla de recurrencia para p(n): p(n) = ∞ m=1 m m (−1)m+1 p n − (3m − 1) + p n − (3m + 1) . 2 2 Cada p(n) es la suma de los dos anteriores, p(n − 1) y p(n − 2), y luego hay unas correcciones (más pequeñas), a veces con signo positivo, otras con negativo. Por ejemplo, p(7) = p(6) + p(5) − p(2) + p(1) .. . p(15) = p(14) + p(13) − p(10) + p(8) + p(3) p(16) = p(15) + p(12) − p(11) + p(9) + p(4) + p(1) Ası́ que uno podrı́a suponer que en realidad esas correcciones (más pequeñas y alternadas en signo) no alteran mucho el comportamiento asintótico de p(n), y que, por tanto, p(n) deberı́a crecer como los números de Fibonacci, como C n = en log(C) , para cierta constante C. Sin embargo, no es ası́: p(n) crece mucho más lentamente. Se sabe que 2n 1 exp π cuando n → ∞ p(n) ∼ √ 3 4 3n Éste es un resultado muy profundo, debido a Hardy y Ramanujan6 , y luego completado por Rademacher. Lo que esto nos dice es que el crecimiento de p(n) no es exponencial,√ como el de los números de Figura 12.2: Ramanujan Fibonacci, sino, esencialmente, como e n . Aquı́ nos limitaremos a obtener una estimación como la siguiente: 1 2n π exp π si n > 2, p(n) < √ √ 3 6 n−1 que, en fin, tampoco está nada mal; al menos nos dice que el crecimiento no es exponencial. 6 Srinivasa Ramanujan (1887-1920), nacido en la ciudad india de Madrás, es quizás el personaje más fascinante de la Historia de las Matemáticas: un genio en estado puro, prácticamente autodidacto, pues apenas recibió educación matemática formal. En 1913 escribió a Hardy pidiéndole que examinara una serie de teoremas que adjuntaba. El impacto que causaron en Hardy aquellos resultados, sin demostraciones rigurosas, a veces no convenientemente escritos, pero sin duda profundos, fue tal que éste consiguió que en 1914 Ramanujan se trasladara al Trinity College, en Cambridge. Allı́ comenzarı́a una fructı́fera relación entre Hardy y Ramanujan, de la que la estimación asintótica de p(n) es, quizás, el resultado más sobresaliente. Ramanujan murió en 1920, tras regresar a su paı́s, ya gravemente enfermo. No podemos dejar de mencionar una famosa anécdota que quizás ilustra el talento del personaje: Hardy visita en el hospital a Ramanujan y comenta despreocupadamente que ha llegado en un taxi cuyo número es 1729. Un número bastante insı́pido, añade Hardy. Ramanujan le responde: No, Hardy. Es un número muy interesante: es el menor número que se puede escribir como suma de dos cubos de dos maneras diferentes. Y es que 13 + 123 = 93 + 103 = 1729. (versión preliminar 10 de noviembre de 2008) 12.3. Estimaciones asintóticas 877 Recordemos la función generatriz de los p(n): P (x) = ∞ p(n) xn = n=0 ∞ j=1 1 . 1 − xj Como ya comentamos antes, las técnicas basadas en el análisis de los polos no se pueden aplicar. Pero vamos a continuar con este enfoque analı́tico de estudiar la función generatriz en sı́, como función, aunque en este caso nos restringiremos a los valores que toma en el intervalo (0, 1) de la recta real y no en un disco alrededor del origen en el plano complejo; en otras palabras, no necesitamos considerar a la función generatriz como de variable compleja sino, sólo, como función de variable real. Vale la pena describir un argumento asintótico más general, como hacemos a continuación. Consideremos una serie de potencias, Q(x) = ∞ q(n)xn n=0 donde los q(n) son una sucesión creciente de número reales positivos y con q(0) = 1 (esto último es sólo una normalización). Obsérvese que usamos x como variable, y no z, para indicar que sólo nos interesan ahora los valores que Q toma en número reales. De hecho, consideraremos a Q(x) como función en el intervalo (0, 1). Nos interesa obtener una buena estimación superior del tamaño de q(n), cuando n es grande, utilizando el comportamiento de Q(x) cuando x se aproxima a 1. Fijemos un n > 2 (y recordemos que x ∈ (0, 1)). El primer paso consiste en partir la serie de potencias infinita que define a Q(x) en el ı́ndice n: Q(x) = n−1 q(k) xk + k=0 ∞ q(k) xk . k=n En la primera suma, vamos, simplemente, a olvidarnos de los q(k); los sustituiremos por 1. Y en la segunda, como los q(k) son una sucesión creciente, los sustituiremos por el primer valor, q(n). Ası́ obtenemos una cota inferior para el valor de Q(x). En ella aparecen series de potencias que sabemos sumar, ası́ que operamos un poco: Q(x) > n−1 k x + q(n) k=0 = (1 − q(n)) ∞ k x = k=n n−1 k k x + q(n) k=0 ∞ x + q(n) k=0 = n−1 k=0 ∞ x − k k=0 xk = (1 − q(n)) n−1 xk k=0 q(n) 1 − xn + 1−x 1−x xn 1 1 − xn + q(n) xn > q(n) 1−x 1−x (en el último paso hemos desechado la cantidad 1 − xn , que es positiva). Es decir, q(n) < 1−x Q(x) xn para cualquier n > 2. (versión preliminar 10 de noviembre de 2008) Capı́tulo 12. Funciones generatrices y Combinatoria 878 Esto se cumple para cada x ∈ (0, 1), ası́ que q(n) ≤ ı́nf x∈(0,1) 1−x Q(x) . xn Queremos aplicar esta estimación a P (x), la función generatriz de las particiones. Para ello, nos vendrá bien disponer de una estimación (por arriba) del tamaño de P (x), y es lo que vamos a obtener en un momento. Vamos a utilizar la versión de P (x) que utiliza el producto infinito; y, escrito de esta manera, es casi obvio que conviene usar logaritmos (vamos a utilizar el desarrollo en serie de potencias de log(1 − x), que escribimos en el ejercicio 10.3.8): ∞ ∞ ∞ ∞ ∞ 1 (xj )k 1 k j j = =− log(1 − x ) = x log P (x) = log 1 − xj k k j=1 j=1 j=1 k=1 j=1 k=1 ∞ ∞ 1 1 1 xk = − 1 = k 1 − xk k 1 − xk ∞ k=1 k=1 Todavı́a no hemos conseguido una expresión que sepamos sumar. Vamos a eliminar los exponentes k con el siguiente truco: (1 − xk ) = (1 − x) (1 + x + x2 + · · · + xk−1 ) ≥ (1 − x) k xk−1 , que utiliza, primero, la expresión de la serie geométrica finita, y luego el hecho de que, como x ∈ (0, 1), podemos sustituir todos los términos 1, x, x2 , . . . , xk−1 por el menor de todos ellos, xk−1 . Con esto, tenemos que ∞ ∞ ∞ xk x 1 1 xk 1 ≤ = . log P (x) = k 1 − xk k (1 − x) k xk−1 1−x k2 k=1 k=1 k=1 π 2 /6 (recuérdese la subsección 10.3.5). De la última suma conocemos bien su valor, es Reunamos toda la información (escrito todo en términos logarı́tmicos): 1−x P (x) = log(1 − x) − n log x + log P (x) log p(n) < log n x π2 x . ≤ log(1 − x) − n log x + 6 1−x Ya tenemos unas funciones razonables, ahora sólo queda elegir convenientemente el valor de x. En realidad conviene cambiar de variable, pasar de x a t, donde 1−x 1 o bien t = x= 1+t x (nótese que la nueva variable está en el rango 0 < t < ∞). Con esa nueva variable, t 1 π2 1 π2 x = log − n log + log p(n) < log(1 − x) − n log x + 6 1−x 1+t 1+t 6 t 2 2 π π < log t + (n − 1) t + = log t + (n − 1) log(1 + t) + 6t 6t (en el último paso hemos utilizado que log(1 + t) < t). (versión preliminar 10 de noviembre de 2008) 12.3. Estimaciones asintóticas De manera que 879 π2 1 1 . p(n) < exp (n − 1) t + t 6 t Una elección adecuada de t, concretamente 1 π , t= √ √ 6 n−1 lleva al resultado buscado. Ası́ que p(n) es mucho menor que exp(π 2n/3) (hay un factor √ n en el denominador). Mejorar la estimación y situar un n en el denominador, y de hecho probar que es una fórmula asintótica, son, como ya hemos comentado, otra historia. EJERCICIOS DE LA SECCIÓN 12.3 12.3.1 Sea f (z) una función cuyo desarrollo en serie de potencias en torno al cero tiene radio de convergencia R. Sus coeficientes pueden ser calculados mediante la fórmula de Cauchy: ! f (z) dz , para cada n = 0, 1, 2, . . . , an = n+1 z γ donde γ es una curva simple cerrada en torno al origen que está incluida en D(0, R). Dedúzcase de ella, tomando como γ a la circunferencia de radio r, que |an | ≤ M (r) , rn para cualquier 0 < r < R, donde M (r) es el máximo de |f (z)| en la circunferencia |z| = r. (versión preliminar 10 de noviembre de 2008)