Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
801 views

La calificación será llenado por el evaluador. Cada uno de los ejercicios valen dos puntos.

Calificación:

Práctica 0: Aprendiendo a usar Sage

Autor: Julián Fresán Figueroa

Sage es un programa que nos permite trabajar muchas cosas en matemáticas. Lo usaremos para realizar prácticas a lo largo del curso. La mayor parte de la interacción con Sage se realiza mediante las celdas de cómputo. Abajo aparece una celda de cómputo, intenta sumar 1+1. Para evaluar la celda presiona Shift+Enter.

1+1
2

¿Apareció 2? Si asi fue has ejecutado tu primer comando en Sage. Notemos que el resultado aparece al lado de un marco de color verde, y las entradas aparecen separadas por líneas horizontales de color gris. Además la celda activa aparece sombreada.

Intenta ahora evaluar 100!, para ello ocupa la función factorial( ).

factorial(100)
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
factorial(100)
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

Como puedes notar lo ejecuta bastante rápido a pesar de ser un número tan grande y realizar los cálculos en la nube. Para crear una nueva celda solo da clic en una de las líneas horizontales. Puedes imprimir un mensaje con la función print('texto')

print('Intenta hacer una celda nueva')
Intenta hacer una celda nueva

Intenta ahora borrar una celda. Para ello usa Backspace o Supr. Si algo falla presiona Crl +z.

Para agregar texto solo debes usar al principio de la celda %md. Intenta escribir tu frase favorita en la siguiente celda

%md F*** it dog, lifes a risk

F*** it dog, lifes a risk

Tambien puedes usar código html escribiendo al principio de la celda %html. Si no sabes html puedes usar un editor como el que aparece en el siguiente link Editor de html. Usalo para poner tu color favorito con negritas y con las letras de ese color.

%html <header> <p> Hello everyone </p> </header>

Hello everyone

Tambien puedes usar comandos de Latex, intenta poner la siguiente expresión c2=a2+b2c^2=a^2+b^2 para ello usa el signo de pesos. Recuerda que ésto lo debes hacer en alguno de los modos de texto.
%latex $(c^2=a^2+b^2)$

Sage mostrará la salida solo de la última orden que aparezca, intenta predecir cual será la salida al evaluar la siguiente celda.

m=100 n=7 m=m-30 n=n+5 m
70

La siguiente celda no mostrara nada pues lo que hace no genera una salida, es una asignación, sin embargo si tendrá efecto mas tarde. Evalúa la siguiente celda una sola vez, aunque parezca que no hace nada.

n=n+10

Ahora evalúa la siguiente celda que si produce una salida.

n+8
30

Como puedes observar, n tenía el valor 7 al principio, inmediatamente después le sumamos 5. Luego en otra celda le sumamos 10. En la celda anterior le sumamos 8, pero no lo guardamos, por lo que n aún es 22. Compruébalo en la siguiente celda.

n
22

Puedes combinar varios comandos usando un punto y coma ;. Esta es una excelente manera de producir varias salidas en una sola celda de cómputo. Por ejemplo, creemos una matriz y mostrémosla:

A=matrix([[1,2],[3,4]] );A
[1 2] [3 4]

Tambien podemos usar el comando print para mostrarla o para dejar un espacio de línea:

print A; print ; print A.inverse()
[1 2] [3 4] [ -2 1] [ 3/2 -1/2]

Algunos comandos en Sage son "Funciones", por ejemplo factorial( ), mientras que otros son métodos de un objeto, como fue .inverse() un método de las matrices para calcular la matriz inversa.

Para ver los métodos de un objeto, escribe el nombre del objeto, pon un punto . y presiona Tab. Intentalo para la matriz que definimos arriba (¡no evalúes!).

A.

Para obtener ayuda sobre como se usa un método en un objeto, escribe su nombre despues de un punto y entonces pon un signo de interrogación y presiona Tab

A.inverse?
Error in lines 1-1 Traceback (most recent call last): File "/cocalc/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 1013, in execute exec compile(block+'\n', '', 'single') in namespace, locals File "", line 1, in <module> NameError: name 'act_on_polynomial' is not defined

Con un doble signo de interrogación puedes ver las instrucciones que fueron programadas para hacer que el método funcionara.

A.inverse??

Veamos que pasa cuando hay un error en Sage:

B=matrix([[1,2],[10,20]]) B.inverse()

Como puedes notar la matriz es singular, por lo que no tiene inversa. Esto mismo aparece al final del mensaje de error. Podemos generar funciones como en la siguiente celda

f(x) = x^8 - 7*x^4; f
x |--> x^8 - 7*x^4

Tambien podemos usar el comando print para mostrarla o para dejar un espacio de línea:

f; print ; f.derivative()
x |--> x^8 - 7*x^4 x |--> 8*x^7 - 28*x^3

Listas

Las listas son el objeto que usaremos en Sage para trabajar con conjuntos. Las listas no son del todo conjuntos, pues permiten repeticiones y el orden importa, pero son suficientemente parecidas y son fáciles de manejar. Aqui hay un ejemplo de una lista.

Frutero=['mango', 'fresa', 'naranja', 'uva', 'manzana'] Frutero
['mango', 'fresa', 'naranja', 'uva', 'manzana']

Las listas se manejan de manera parecida a los arreglos, usamos corchetes para definirlas y listamos sus elementos usando comas. Para referirnos a un elemento de la lista usaremos los corchetes y el índice de la posición del elemento. Los índices empiezan en cero.

Frutero[2]
'naranja'
Podemos agregar una fruta al frutero y esta se agrega al final:
Frutero.append('pera'); Frutero
['mango', 'fresa', 'naranja', 'uva', 'manzana', 'pera']
Tambien podemos quitarle una fruta:
Frutero.remove('uva'); Frutero
['mango', 'fresa', 'naranja', 'manzana', 'pera']
Podemos extraer una sublista:
Favoritas= Frutero[1:3]; Favoritas
['fresa', 'naranja']
Tambien podemos crear listas por comprensión, lo cual es muy útil pues es la manera en la que definimos conjuntos usualmente.
Frutero_grande= [fruta+'s' for fruta in Frutero]; Frutero_grande
['mangos', 'fresas', 'naranjas', 'manzanas', 'peras']
Como puedes ver, literalmente sumamos una "s" a cada fruta, para cada fruta en el frutero y lo pusimos en una nueva lista.

Listas de enteros

La función srange() creará una lista de enteros. A continuación hay algunos ejemplos fáciles de entender de como se puede usar esta función.

decena = srange(10);decena
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
chavorruco= srange(24,32); chavorruco
[24, 25, 26, 27, 28, 29, 30, 31]
sexenios =srange(1940,2016,6); sexenios
[1940, 1946, 1952, 1958, 1964, 1970, 1976, 1982, 1988, 1994, 2000, 2006, 2012]

Tablas

Para ver como se hace una tabla dale doble clic en el renglón anterior a la celda de la tabla.

%md | Primera columna | Segunda columna | Tercera columna | | -- | -- | -- | | Contenido 1-1 | Contenido 1-2 | Contenido 1-3 | | Contenido 2-1 | Contenido 2-2 | Contenido 2-3 | | Contenido 3-1 | Contenido 3-2 | Contenido 3-3 | Teclea _Shift Enter_ para visualizar la tabla.
Primera columnaSegunda columnaTercera columna
Contenido 1-1Contenido 1-2Contenido 1-3
Contenido 2-1Contenido 2-2Contenido 2-3
Contenido 3-1Contenido 3-2Contenido 3-3

Teclea Shift Enter para visualizar la tabla.

%html <h2> Guardando tu trabajo </h2> <p> Hay un botón de color verde en la parte superior derecha de la página que dice <mark style="background-color:green;">Save</mark>. En el ícono con una <mark style="background-color:cyan;">i</mark> puedes encontrar una manera de descargar tu archivo. Prueba descargar tu archivo y guardarlo. </p> <hr/> <p> Hemos cubierto una buena parte de las funciones que usaremos durante el curso. ¡Repásalo!. Lo demás lo iremos aprendiendo sobre la marcha. Para hacer los ejercicios, algunas veces será necesario que busques en internet otras funciones de Sage. </p> <hr /> <h2>Ejercicios</h2> <OL> <LI> Escriba los primeros 200 múltiplos de 13. <LI> Usando una lista de comprensión muestre el primer entero en el cual $n^2 -n +41$ no es un número primo. <LI> Escriba un pequeño texto con al menos 5 detalles de edición de texto (cambio de tamaño, color, tipo de letra, etc) y viñetas. <LI> ¿Cuál es la negación de "Todos los perros son mamiferos o aves". <LI> Escriban las tablas de verdad de los ejercicios hecho en la clase del miércoles. </OL>

Guardando tu trabajo

Hay un botón de color verde en la parte superior derecha de la página que dice Save. En el ícono con una i puedes encontrar una manera de descargar tu archivo. Prueba descargar tu archivo y guardarlo.


Hemos cubierto una buena parte de las funciones que usaremos durante el curso. ¡Repásalo!. Lo demás lo iremos aprendiendo sobre la marcha. Para hacer los ejercicios, algunas veces será necesario que busques en internet otras funciones de Sage.


Ejercicios

  1. Escriba los primeros 200 múltiplos de 13.
  2. Usando una lista de comprensión muestre el primer entero en el cual n2n+41n^2 -n +41 no es un número primo.
  3. ¿Cuál es la negación de "Todos los perros son mamiferos o aves".
  4. Escriba un pequeño texto con al menos 5 detalles de edición de texto (cambio de tamaño, color, tipo de letra, etc) y viñetas.
  5. Escriban las tablas de verdad de los ejercicios hecho en la clase del miércoles.
%md Lista de los primeron 200 multiplos de 13

Lista de los primeron 200 multiplos de 13

[13, 26, 39, 52, 65, 78, 91, 104, 117, 130, 143, 156, 169, 182, 195, 208, 221, 234, 247, 260, 273, 286, 299, 312, 325, 338, 351, 364, 377, 390, 403, 416, 429, 442, 455, 468, 481, 494, 507, 520, 533, 546, 559, 572, 585, 598, 611, 624, 637, 650, 663, 676, 689, 702, 715, 728, 741, 754, 767, 780, 793, 806, 819, 832, 845, 858, 871, 884, 897, 910, 923, 936, 949, 962, 975, 988, 1001, 1014, 1027, 1040, 1053, 1066, 1079, 1092, 1105, 1118, 1131, 1144, 1157, 1170, 1183, 1196, 1209, 1222, 1235, 1248, 1261, 1274, 1287, 1300, 1313, 1326, 1339, 1352, 1365, 1378, 1391, 1404, 1417, 1430, 1443, 1456, 1469, 1482, 1495, 1508, 1521, 1534, 1547, 1560, 1573, 1586, 1599, 1612, 1625, 1638, 1651, 1664, 1677, 1690, 1703, 1716, 1729, 1742, 1755, 1768, 1781, 1794, 1807, 1820, 1833, 1846, 1859, 1872, 1885, 1898, 1911, 1924, 1937, 1950, 1963, 1976, 1989, 2002, 2015, 2028, 2041, 2054, 2067, 2080, 2093, 2106, 2119, 2132, 2145, 2158, 2171, 2184, 2197, 2210, 2223, 2236, 2249, 2262, 2275, 2288, 2301, 2314, 2327, 2340, 2353, 2366, 2379, 2392, 2405, 2418, 2431, 2444, 2457, 2470, 2483, 2496, 2509, 2522, 2535, 2548, 2561, 2574, 2587]
%md algunos perros no son mamiferos ni aves

algunos perros no son mamiferos ni aves

%html <style> p3 { color: rgb(0,0,255) } p4 { color: rgb(0,65,0) } </style> <h1> Texto corto </h1> <p1> Este texto se estara haciendo mas y mas chico conforme avanza </p1> <font size="-2"> primero haremos un lista de numeros desordenados </font> <font size="+2"><ul> <li>56</li> <li>834</li> <li>753</li> <li>7456</li> </ul> </font> <font size="-3"> ahora este texto sera un color </font> <p4>y este otro color </p4>

Texto corto

Este texto se estara haciendo mas y mas chico conforme avanza primero haremos un lista de numeros desordenados
  • 56
  • 834
  • 753
  • 7456
ahora este texto sera un color y este otro color
%md | p | q | p->q | ~(p->q)| | -- | -- | -- | -- | |0 | 0 | 1 |0| | 0 | 1 | 1 |0| | 1 | 0 | 0 |1| |1 | 1 | 1 |0|
pqp->q~(p->q)
0010
0110
1001
1110
%md | p | q | ~(p->q) | ~p->~q| | -- | -- | -- | -- | |0 | 0 | 1 |0| | 0 | 1 | 0 |0| | 1 | 0 | 1 |1| |1 | 1 | 0 |0|
pq~(p->q)~p->~q
0010
0100
1011
1100
%md | p | q | ~p| ~q|~(p->q)| | -- | -- | -- | -- | -- | |0 | 0 | 1 | 1 |1| | 0 | 1 | 1 | 0 |0| | 1 | 0 | 0 | 1 |0| |1 | 1 | 0 | 1 |0|
pq~p~q~(p->q)
00111
01100
10010
11010
%md | p | q | ~q| ~p|~q->~p| | -- | -- | -- | -- | -- | |0 | 0 | 1 | 1 |1| | 0 | 1 | 0 | 1 |1| | 1 | 0 | 1 | 0 |0| |1 | 1 | 0 | 0 |1|
pq~q~p~q->~p
00111
01011
10100
11001
%md | p | q | p xor q | | -- | -- | -- | |0 | 0 | 0| | 0 | 1 | 1 | | 1 | 0 | 1 | |1 | 1 | 0|
pqp xor q
000
011
101
110
%md | p | q | q->q| q->p|p<->q| | -- | -- | -- | -- | -- | |0 | 0 | 1 | 1 |1| | 0 | 1 | 1 | 0 |0| | 1 | 0 | 0 | 1 |0| |1 | 1 | 1 | 1 |1|
pqq->qq->pp<->q
00111
01100
10010
11111