JSM_Tutorial1

1620 days ago by sevillad

Tutorial de Sage

A continuación tienes unas explicaciones y ejercicios. No dudes en consultarnos cualquier cosa que necesites.

0. Usando la interfaz

Las órdenes se dan a Sage a través de celdas (como el recuadro que hay debajo de este párrafo) donde se escribe el texto a ejecutar. Se ejecuta el contenido de una celda metiéndose en ella y pulsando el enlace "evaluate" de debajo, o bien 〈shift〉+〈intro〉. (Para evaluar una celda tienes que estar dentro de ella, si no no verás el botón de evaluar).

factor(123456) 
       
2^6 * 3 * 643
2^6 * 3 * 643

Ejercicio 1. Pulsa dentro de la celda anterior y después pulsa en "evaluate". Cuando haya aparecido el resultado, cambia el número dentro de la función "factor" y pulsa 〈shift〉+〈intro〉 para reevaluar.

 

Puedes crear más celdas cuando quieras. Entre dos celdas existentes, o entre un bloque de texto y una celda, al pasar el ratón aparecerá una barra azul, y pulsando en ella crearás una nueva celda.

 

Ejercicio 2. Crea dos celdas más a continuación (de manera que haya tres consecutivas al terminar).

 
       

Para borrar una celda, vacíala de contenido y después pulsa 〈retroceso〉.

 

Ejercicio 3. Escribe tres cálculos sencillos en las tres celdas de arriba y ejecútalos. Después borra la celda intermedia.

 
       

Si lo que queremos es un bloque de texto, por ejemplo para dar explicación o poner un ejercicio, debemos pulsar de nuevo sobre una barra azul, pero esta vez manteniendo pulsado 〈shift〉 a la vez que el botón izquierdo del ratón. La ventana que aparece es un editor de texto avanzado, donde puedes formatear texto, añadir imágenes, etc. Veremos más en el segundo tutorial. Para editar un bloque existente haz doble clic.

(Avanzado: puedes escribir en LaTeX)

 

Ejercicio 4. Crea un bloque de texto entre las dos celdas siguientes. Escribe tres frases y cambia el formato de la segunda frase (negrita, subrayado, color del texto o del fondo...). Guarda lo que has escrito. Ahora edítalo y haz al menos un cambio.

 
       
 
       

Ahora que ya hemos hecho varias cosas, vamos a guardar la hoja de trabajo. Arriba a la derecha tienes tres botones (la apariencia depende del navegador):

 

Save Save & quit Discard & quit

 

El primer botón guarda y podemos seguir trabajando. El segundo botón guarda y sale de la hoja (vamos a la lista de hojas de trabajo que tenemos). El tercer botón descarta los cambios.

 

Ejercicio 5. Guarda este documento con el botón central, y vuelve aquí.

 

También podemos guardar una copia de la hoja en el disco duro, usando el menú de arriba a la izquierda:

File...  →  Save workshet to a file

Esto nos creará un archivo .sws en nuestro ordenador, que podemos recuperar más tarde (por ejemplo si hemos borrado algo por equivocación y hemos hecho "Save" sin fijarnos), mandar por correo o colgar en una web, etc.

 

Ejercicio 6. Salva una copia en el disco duro.

 
       

Para buscar ayuda sobre como se utiliza una función, podemos usar la función "help":

help(plot) 
       

Otra manera de hacerlo es escribir la función que nos interesa seguida de un signo de interrogación, esto nos mostrará la ayuda dentro del mismo documento. Prueba a ejecutar la celda siguiente.

plot? 
       

1. Sage como una calculadora

Podemos utilizar Sage como cualquier (potente) calculadora científica

42*34 
       
1428
1428
5-5*3 
       
-10
-10
32.23/234.1 
       
0.137676206749252
0.137676206749252
2^1000 
       
107150860718626732094842504906000181056140481170553360744375038837035105\
112493612249319837881569585812759467291755314682518714528569231404359845\
775746985748039345677748242309854210746050623711418779541821530464749835\
819412673987675591655439460770629145711964776865421676604298316526243868\
37205668069376
10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376
exp(4.5) 
       
90.0171313005218
90.0171313005218
sqrt(2.4) 
       
1.54919333848297
1.54919333848297

Un detalle importante: si escribes varios cálculos en la misma celda Sage los ejecuta pero sólo muestra el último resultado. Puedes poner dos cálculos en la misma línea si los separas con un punto y coma. Aparte de esto hay otras maneras de mostrar resultados, pero no entraremos en este tutorial.

1+2 3+4; 5+6 
       
7
11
7
11

Las funciones trigonométricas reciben los ángulos en radianes.

sin(90.0) 
       
0.893996663600558
0.893996663600558
cos(90.0) 
       
-0.448073616129170
-0.448073616129170
sin(3.1416) 
       
-7.34641020664359e-6
-7.34641020664359e-6

Una diferencia importante con las calculadores científicas habituales es que Sage trata de trabajar siempre sin redondeos. Así, por ejemplo, si usamos fracciones, no las escribirá como número real.

1/2+1/3 
       
5/6
5/6
(2/4)^23 
       
1/8388608
1/8388608

Algo similar ocurre con el número pi y el número e.

2+pi 
       
pi + 2
pi + 2
e^3 
       
e^3
e^3
sin(pi/3) 
       
1/2*sqrt(3)
1/2*sqrt(3)

Para trabajar numéricamente, debemos aplicar .n() tras el número deseado (fíjate en que hay un punto). Las funciones que se apliquen después del redondeo también trabajarán numéricamente.

pi.n() 
       
3.14159265358979
3.14159265358979
sin(pi.n()) 
       
1.22464679914735e-16
1.22464679914735e-16
e.n() 
       
2.71828182845905
2.71828182845905

Ejercicio 7. Calcula el resultado de las siguientes operaciones.

$2+5*6$,     $\dfrac{1+3^2}{1-2^3}$,     $e^{4-\dfrac{1}{2}}$,     $\cos(\pi/3)$

 
       

2. Tipos de datos y variables

Para utilizar posteriormente el resultado de un cálculo, podemos guardarlo en una variable. Al hacerlo Sage no nos mostrará el resultado.

b = 2.0^4+1.0/5+exp(3.0) 
       

Para ver el contenido de la variable, basta escribir su nombre y ejecutar la celda. Importante: sólo porque tengamos la definición de una variable escrita en una celda no significa que Sage conozca su valor, para eso hay que ejecutar la definición. Por ejemplo, la celda siguiente dará error si la ejecutas sin haber ejecutado la anterior (pruébalo).

       

Moraleja: solo porque esté escrito en una celda no significa que Sage lo haya "digerido".

 

Si el resultado no es un número en coma flotante, Sage lo guarda de manera exacta, por lo que tendremos que utilizar n() para ver su valor.

c = 2^4+1/5+exp(3) 
       
       
e^3 + 81/5
e^3 + 81/5
c.n() 
       
36.2855369231877
36.2855369231877

Utilizar una variable es equivalente a escribir lo que tiene almacenado.

d = 0.1 d 
       
0.100000000000000
0.100000000000000
h = d/10 h 
       
0.0100000000000000
0.0100000000000000

Si asignamos un nuevo contenido a una variable, perdemos su valor anterior.

d = 0.2 d 
       
0.200000000000000
0.200000000000000

Podemos hacer las dos cosas a la vez: utilizar su valor y guardarlo de nuevo con el mismo nombre. Asegúrate de entender lo que hace la celda siguiente.

d = d+d^2 d 
       
0.240000000000000
0.240000000000000

Ejercicio 8. Crea una variable llamada n con el valor 1. En otra celda, calcula n+1 y asígnalo de nuevo a n. Ejecuta esa última celda varias veces para ver cómo "va contando". Muestra el resultado final.

 
       

Sage también puede guardar otros objetos dentro de variables. A continuación lo hacemos con vectores y matrices.

v = vector([1,-1,1,1]); v 
       
(1, -1, 1, 1)
(1, -1, 1, 1)
A = matrix([[1, 12, 123, 1234],[2, 23, 234, 2341],[3, 34, 341, 3412], [4, 41, 412, 4123]]); A 
       
[   1   12  123 1234]
[   2   23  234 2341]
[   3   34  341 3412]
[   4   41  412 4123]
[   1   12  123 1234]
[   2   23  234 2341]
[   3   34  341 3412]
[   4   41  412 4123]

Además, podemos operar con las variables anteriores (ejecuta las celdas siguientes tú mismo).

v*A 
       
A*v 
       
det(A) 
       

3. Trabajando con funciones (matemáticas)

Podemos definir una función como lo haríamos en clase:

f(x) = x^3+x^2+3 
       

Sage nos indicará que f guarda una función que asigna a cada x el polinomio anterior:

       
x |--> x^3 + x^2 + 3
x |--> x^3 + x^2 + 3

Para evaluar la función en un punto, basta sustituir el valor.

f(0); f(3); f(3.2); f(pi) 
       
3
39
46.0080000000000
pi^3 + pi^2 + 3
3
39
46.0080000000000
pi^3 + pi^2 + 3

También podemos calcular derivadas y primitivas de la función, que a su vez son funciones (son evaluables):

f.diff(x) 
       
x |--> 3*x^2 + 2*x
x |--> 3*x^2 + 2*x
f.diff(x)(1) 
       
5
5
f.integrate(x) 
       
x |--> 1/4*x^4 + 1/3*x^3 + 3*x
x |--> 1/4*x^4 + 1/3*x^3 + 3*x

Para ver todas las operaciones que podemos hacer con una función, podemos escribir f. (fíjate en el punto) y pulsar el tabulador. Pruébalo a continuación, deberías ver una (larga) lista de comandos a elegir. Asegúrate antes de haber ejecutado la celda de arriba donde se define f.

f. 
       

Si queremos que una función dependa de un parámetro, debemos declarar el parámetro con el comando "var". Lo mismo pasa si queremos una función que dependa de varias variables. Por cierto, por defecto Sage entiende "x" como una variable, por eso no nos ha hecho falta hacer

var('x')

en los ejemplos anteriores.

var('a') g(x) = a*x^3+4*a g(3) 
       
31*a
31*a
g.diff(x) 
       
x |--> 3*a*x^2
x |--> 3*a*x^2
var('s,t') h(s,t) = s*cos(t)-s*sin(t) h.diff() 
       
(s, t) |--> (-sin(t) + cos(t), -s*sin(t) - s*cos(t))
(s, t) |--> (-sin(t) + cos(t), -s*sin(t) - s*cos(t))

Ejercicio 9. Dada la función f(x)=sin(x)^3, calcula su valor en x=pi, su derivada, el valor de su derivada en x=pi y la integral entre x=0 y x=pi/2.

 
       

4. Representación gráfica

Sage nos permite representar gráficamente todo tipo de objetos: gráficas de funciones, nubes de puntos, superficies... Dibujemos la función f(x)=sen(x) para x entre -pi y pi.

f(x)=sin(x) plot(f(x), (x, -pi/2, pi/2)) 
       

Es posible almacenar una representación gráfica y mostrarla luego, usando .show() :

p = plot(sin(x), (x, -pi/2, pi/2)) a = 34 p.show() 
       

Podemos cambiar el color y nombrar los ejes. Fíjate también en cómo cambiar el tamaño de la imagen poniendo un argumento especial en show().

p = plot(sin(x), (x,-pi/2, pi/2), axes_labels=['x','sin(x)'], color='purple') p.show(figsize=3) 
       

O cambiar el grosor y el tipo de línea:

p = plot(sin(x), (x,-pi/2,pi/2), linestyle='--', thickness=5) p.show() 
       

Se pueden hacer muchas otras cosas gráficamente en Sage (veremos unas cuantas en la charla "Gráficos en Sage"). Un ejemplo dibujando puntos:

point([(0,1), (1,1), (2,3)], figsize=3) 
       

Es posible representar varias funciones (u otros objetos) en la misma gráfica, simplemente se "suman":

f(x) = sin(x) g(x) = cos(x) p = plot(f(x),(x,-pi/2,pi/2), color='black') q = plot(g(x), (x,-pi/2, pi/2), color='red') r = point([(0,1), (pi/4,sqrt(2)/2), (pi/2,0)], size=50, color='green', legend_label='puntos importantes') s = p + q + r s.show() 
       

Ejercicio 10. Representa las siguientes funciones en la misma gráfica y en el intervalo [0,1], cada una con un estilo diferente:

sin(pi*x), exp(x), 1/(1+x)

 
       

Ejercicio final. Rellena el siguiente cuadro con tus datos, guarda la hoja, y haz una copia en el ordenador.

Nombre: 

Correo-e: