




Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: algebra, Profesor: Juan Manuel Urbano Blanco, Carrera: Ingeniería Informática, Universidad: UGR
Tipo: Ejercicios
1 / 8
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!





Hemos aprendido en la Práctica 1 cómo denir conjuntos, entre ellos el producto cartesiano y el conjunto potencia, y a calcular el cardinal de un conjunto.
Un problema típico que se resuelve aplicando el Principio de Inclusión-Exclusión es el que consiste en calcular cuántos enteros positivos x ≤ 1000 existen tales que x es múltiplo de 5 ó de 7. La solución es
En primer lugar generamos el conjunto A de todos los enteros x tales que 1 ≤ x ≤ 1000. (%ixx) A:setify(makelist(k,k,1,1000))$
A continuación denimos un predicado o función lógica que al aplicarse a un elemento a ∈ A valdrá true si y sólo si a es múltiplo de 5 ó de 7.
(%ixx) f(x):=is(mod(x,5)=0) or is(mod(x,7)=0); Entonces el número de elementos solicitado se obtiene con el comando:
(%ixx) cardinality(subset(A,f)); Como tarea para casa, debería de vericar este resultado aplicando el Principio de Inclusión-Exclusión. Recuerde que dados los números enteros positivos a y b, el número de enteros x tales que 1 ≤ x ≤ a y x es múltiplo de b, es igual al cociente que resulta al dividir a entre b.
Ejercicio. Use algunos comandos de Maxima para calcular cuántos números enteros x tales que 1000 ≤ x ≤ 5000 son múltiplos de al menos uno de los números siguientes: 8, 12, 20.
Como ejercicio para casa, resuelva a mano el ejercicio anterior.
En Maxima tenemos disponible el comando binomial(n,k) que nos permite calcular el coeciente binomial
(n k
. Veamos algunos ejemplos.
(%ixx) binomial(7,2); (%ixx) binomial(7,0);
(%ixx) binomial(7,10);
Ahora vamos a generar una lista cuyos elementos son los coecientes binomiales
k
, para k = 0 , 1 , 2 ,... , 10.
(%ixx) makelist(binomial(10,k),k,0,10);
Observe que el primer elemento generado es igual al último, el segundo es igual al penúltimo, etc. ¾Cómo se denomina esta propiedad de los coecientes binomiales? (Repase la teoría del Tema 2 si no se acuerda.)
Al invocar el comando binomial(n,k), también podemos dejar alguno de los valores n ó k sin deter- minar.
(%ixx) binomial(n,3); Como vemos, Maxima devuelve su forma simplicada. Ejercicio. Calcule un entero positivo n sabiendo que el conjunto { 1 , 2 ,... , n} tiene exactamente 11486765 subconjuntos de cardinal 3. (Se recomienda plantear una ecuación y resolverla con el comando solve. Consulte la ayuda de Maxima para más información.)
A continuación comprobamos la identidad siguiente, que aparece en los apuntes del Tema 2. ( n 0
n 1
n n
= 2n.
(%ixx) sum(binomial(n,k),k,0,n); Con ésto estamos indicando a Maxima que realice la suma de los números
(n k
para k = 0, 1 , 2 ,... , n. Como podemos observar, Maxima no simplica la sumatoria. Para obligar a que lo haga, escribimos la opción simpsum.
(%ixx) sum(binomial(n,k),k,0,n), simpsum;
Ejercicio. Escriba algunos comandos de Maxima para comprobar la igualdad siguiente: ( m + 0 0
m + 1 1
m +
m + + 1
Para generar las k-combinaciones de un conjunto X, es decir, los subconjuntos de X con cardinal k, Maxima incorpora el comando powerset(X,k). Pruebe las instrucciones siguientes:
(%ixx) powerset({a,b,c,d,e},1); (%ixx) powerset({a,b,c,d,e},2); (%ixx) powerset({a,b,c,d,e},3); (%ixx) powerset({a,b,c,d,e},0); (%ixx) powerset({a,b,c,d,e},8); Explique los resultados obtenidos en los dos últimos comandos. Trabajamos ahora con la fórmula del binomio de Newton. Comenzamos expandiendo la expresión algebraica (x + y)^8. Ello se hace con el comando expand.
(%ixx) expand((x+y)^8); Según el Teorema del binomio de Newton, obtenemos este mismo resultado escribiendo lo siguiente: (%ixx) sum(binomial(8,k)x^ky^(8-k),k,0,8); Ejercicio. Utilice instrucciones en Maxima para calcular el coeciente con el que aparece el término x^15 y^21 en el polinomio (x + y)^36 , sin desarrollar para ello el polinomio dado. A continuación repita el mismo ejercicio para el polinomio (2x − y)^36.
Seguidamente denimos una función CR(n,k) que nos permite calcular el número de combinaciones con repetición de n elementos tomados de k en k.
(%ixx) CR(n,k):=binomial(n+k-1,n-1); Recuerde que CR(n,k) representa el número de soluciones de la ecuación
x 1 + x 2 + · · · + xn = k
En Maxima cada permutación de un conjunto se representa como una lista de longitud igual al cardinal de dicho conjunto. Tenemos el comando permutations(X) que nos permite obtener el conjunto de las permutaciones de un conjunto dado X. Veamos algunos ejemplos.
(%ixx) permutations({a,b}); (%ixx) permutations({a,b,c}); (%ixx) permutations({a,b,c,d}); Nótese que las 24 permutaciones del conjunto {a,b,c,d} se presentan en pantalla ordenadas lexico- grácamente. Si numeramos la primera de ellas [a,b,c,d] con el número 0, la segunda [a,b,d,c] con el número 1, y así hasta la última con el número 23, nos podemos plantear cuestiones del tipo siguiente. ¾Qué permutación se numera con el 16? ¾Con qué valor se numera la permutación [b,c,d,a]? Una vez que conozca las respuestas a ambas preguntas, es interesante que trate de responder a ellas sin tener que generar todas las permutaciones.
Ejercicio. Consideramos las permutaciones del conjunto {1,2,3,4,5,6,7} ordenadas lexicográca- mente y las numeramos comenzando en cero. ¾Qué permutación se numera con el 2016? ¾Con qué valor se numera la permutación [5,2,4,6,3,7,1]?
El comando permutations también nos permite calcular las permutaciones de los elementos de una lista, donde, como sabemos pueden haber elementos repetidos.
(%ixx) permutations([a,b,c,d]); En este ejemplo el resultado es idéntico al del comando permutations({a,b,c,d}). Como consecuencia de lo anterior, podemos generar permutaciones con repetición. Obtenemos todas las formas de permutar las letras de la palabra RELEER. (%ixx) permutations([R,E,L,E,E,R]); Calculamos el número de tales permutaciones. Para ello nos basamos en la salida del comando anterior. Para referirnos a la salida del comando inmediatamente anterior, usamos el símbolo %.
(%ixx) cardinality(%); De forma alternativa, el número de permutaciones de dicha palabra viene dado por el denominado coeciente multinomial: ( 6 3 , 2 , 1
Repase el Tema 2 donde se resuelve este problema. En Maxima existe el comando multinomial_coeff(r 1 , ..., rt) que permite calcular el coeciente mul- tinomial (^) ( n r 1 ,... , rt
n! r 1! · · · · · rt!
con n = r 1 + · · · + rt.
Nótese que en dicho comando sólo escribimos la lista de números que van en la segunda la del coeciente multinomial.
Obtenemos la respuesta del ejemplo anterior (es decir, el número de permutaciones de la palabra RELEER) usando este comando.
(%ixx) multinomial_coeff(3, 2, 1); Los coecientes multinomiales son una generalización de los coecientes binomiales. Si hacemos t = 2 y r 1 + r 2 = n, resulta que
n r 1 , r 2
n! r 1 !r 2!
n! r 1 !(n − r 1 )!
n r 1
n r 2
Ejercicio. ¾De cuántas formas podemos permutar todas las letras de la palabra CONCURRENCIA? ¾En cuántas de dichas permutaciones aparecen las dos letras R consecutivas?
El Teorema del binomio de Newton se generaliza de la forma siguiente.
Teorema multinomial. Sean x 1 ,... , xt elementos de un anillo tales que xi · xj = xj · xi para cualesquiera i, j ∈ { 1 , 2 ,... , t} y sea n ∈ N. Entonces
(x 1 + · · · + xt)n^ =
0 ≤ r 1 , r 2 ,... , rt ≤ n r 1 + r 2 + · · · + rt = n
n r 1 , r 2 ,... , rt
· xr 11 · xr 22 · · · xr t t.
Recuerde que el grado de un término xs 11 · xs 22 · · · xs t tes s 1 + s 2 + · · · + st. Por tanto todos los términos xr 11 · xr 22 · · · xr tt que aparecen en el desarrollo del polinomio (x 1 + · · · + xt)n^ tienen grado n, pues r 1 + r 2 + · · · + rt = n. Además hay tantos términos distintos como t-uplas de números naturales (r 1 , r 2 ,... , rt) tales que r 1 + r 2 + · · · + rt = n.
Dicho número, como ya sabemos, viene dado precisamente por CR(t,n).
Este teorema nos permite calcular el coeciente de un término en un polinomio sin tener que desa- rrollarlo. Por ejemplo, si desarrollamos el polinomio (x + y + z)^4 ,
(%ixx) expand((x+y+z)^4); podemos constatar que el coeciente del término xy^2 z es 12, y el coeciente del término x^3 z es 4. Obtenemos esto mismo usando el Teorema multinomial.
(%ixx) multinomial_coeff(1, 2, 1); (%oxx) 12 (%ixx) multinomial_coeff(3, 0, 1); (%oxx) 4 Además observe que el número de términos obtenidos en el desarrollo de (x + y + z)^4 es igual a 15. Según lo anterior, podemos obtener ésto mismo, sin tener que desarrollar el polinomio, escribiendo
(%ixx) CR(3, 4); (%oxx) 15 Hemos escrito 3 porque hay tres variables y 4 por el exponente. Ejercicio. Calcule el coeciente del término x^7 y^5 z^4 en el polinomio (x − 2 y − 3 z)^16. Ejercicio. ¾Cuántos términos aparecen al desarrollar el polinomio (11x + y − 9 z + 15t)^20?
Maxima también permite generar permutaciones aleatorias de una lista o conjunto mediante el co- mando random_permutation.
(%ixx) random_permutation({1,2,3,4}); (%ixx) random_permutation({1,2,3,4}); Incluso podemos crear una lista de permutaciones generadas aleatoriamente. (%ixx) makelist(random_permutation({1,2,3,4}),i,1,10); Si lo ejecuta nuevamente, seguro que piensa que se va a repetir la lista, pero no es así.
(%ixx) desordenes(n):=block([ini:makelist(i,i,1,n)], subset(permutations(ini),lambda([d],not equal(apply("*",d-ini),0)))); Lo aplicamos a algunos ejemplos. (%ixx) desordenes(1); (%ixx) desordenes(2); (%ixx) desordenes(3); (%ixx) desordenes(4); (%ixx) desordenes(5); ¾Entiende cómo actúa la función desordenes que acabamos de denir? Si denotamos el número de desordenes del conjunto { 1 , 2 ,... , n} por d(n) y aplicamos el Principio de Inclusión-Exclusión, se obtiene que
d(n) = n! ·
n!
para todo n ≥ 1.
Ejercicio. Implemente la función anterior d(n) en Maxima y utilícela para calcular el número de desordenes para n = 10. (Puede serle útil el comando sum.)
En la fórmula anterior, cuando n se hace cada vez más grande, el sumando entre paréntesis se va aproximando al número (^1) e ≈ 0 , 36787944117144.
Por tanto, para n sucientemente grande, podemos armar que aproximadamente un tercio de las permutaciones del conjunto { 1 , 2 ,... , n} son desordenes. Ésto explica que el número de desordenes vaya aumentando muy rápidamente conforme aumenta n.
Una partición de un entero positivo n es una descomposición de n como suma de enteros positivos, sin tener en cuenta el orden de los sumandos. Por ejemplo 3 , 2 + 1 y 1 + 1 + 1 son todas las particiones de 3. Las particiones de 4 son
4 , 3 + 1, 2 + 2, 2 + 1 + 1, 1 + 1 + 1 + 1.
Maxima incluye el comando integer_partitions(n) que nos devuelve todas las particiones de n. (%ixx) integer_partitions(1); (%ixx) integer_partitions(2); (%ixx) integer_partitions(3); (%ixx) integer_partitions(4); (%ixx) integer_partitions(5); Consulte en la ayuda de Maxima el comando integer_partitions(n,long). El número de Stirling de segunda especie, S(n, k), es el número de formas de repartir n objetos diferentes en k cajas iguales, de forma que ninguna caja se quede vacía. En Maxima estos números están disponibles escribiendo stirling2(n, k).
(%ixx) stirling2(5,1); (%ixx) stirling2(5,2); (%ixx) stirling2(5,6); (%ixx) stirling2(5,7); (%ixx) makelist(stirling2(n+1,n),n,1,8); En vista del resultado del último comando, ¾cuál sería una fórmula para S(n + 1, n)? Si ejecuta el comando stirling2(n+1, n) verá que Maxima no es tan listo como parece.
Ejercicio. En todos los apartados de este ejercicio se supone que todos los objetos mencionados caben en cualquiera de las cajas mencionadas.