CAv_1617_Tutorial

hace 355 días por sevillad1617

Práctica 0 (Tutorial de Sage) de Cálculo Avanzado

 

Límite de entrega de esta práctica: ver tarea en Moodle o calendario de la asignatura. Hasta una semana de retraso: vale hasta el 50%. Más de una semana de retraso: no cuenta para la nota.

Instrucciones:

  1. Haz una copia de la hoja pública y renómbrala: si tu correo es usuario@alumnos.unex.es añade al final del título _usuario, por ejemplo CA_1516_Practica2_sevillad.
    • Para cambiar el nombre pulsa en el título de la hoja (arriba del todo, entre el logo de Sage y el menú "Archivo...")
  2. Comparte la hoja de trabajo con el usuario sevillad1617 mediante el botón Compartir de arriba a la derecha.
  3. Trabaja la práctica.
  4. Cuando hayas terminado, haz una copia en un único fichero PDF y ponlo en el campus virtual. Esa será la versión que se evaluará. La hoja no se considera entregada si no se ha compartido (punto 2).
    • Para generar el PDF lo más sencillo es usar el botón Imprimir de arriba e imprimir la nueva página a fichero.
    • Una alternativa es hacer capturas de pantalla (JPG, PNG...) de la hoja a imprimir, y convertirlas a PDF uniendo después los distintos ficheros generados.

 

A continuación tienes unas explicaciones y ejercicios. No dudes en preguntar cualquier duda que te surja, esta hoja contiene las acciones más habituales en el trabajo con Sage.

 

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 "evaluar" 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 "evaluar". Cuando haya aparecido el resultado, cambia el número dentro de la función "factor" y pulsa 〈shift〉+〈intro〉 (o la combinación equivalente en tu teclado) para reevaluar la celda.

 

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. También puedes pulsar en el icono "+" que aparece en un círculo a la izquierda.

 

Ejercicio 2. Crea dos celdas más entre esta frase y la celda siguiente, de manera que haya tres celdas consecutivas al final.

 
       

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 una  explicación de 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, o bien en el icono del "bocadillo". La ventana que aparece es un editor de texto avanzado, donde puedes poner formato al texto, añadir imágenes, etc. Para editar un bloque de texto existente, haz doble clic.

Por cierto, si escribes texto explicativo en una celda y la ejecutas, Sage intentará entenderlo como un cálculo a realizar, y como no lo es no lo entenderá y dará un mensaje de error.

 

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 otra vez, haciendo algún cambio.

factorial(4) 
       
24
24
30/50 
       
3/5
3/5

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

 

Guardar Guardar y salir Descartar y Salir

 

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 guardado), mandar por correo, colgar en una web, etc.

Ojo, las entregas en esta asignatura no consisten en un fichero .sws sino un PDF.

 

Ejercicio 6. Guarda una copia de esta hoja en el disco duro. Después búscala en tu ordenador para asegurarte de dónde se ha guardado. Escribe a continuación el nombre del fichero guardado.

Nombre:

 

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

help(parametric_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.

is_prime? 
       

 

1. Sage como una calculadora

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

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

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 tema en este tutorial.

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

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
sin(pi/4) 
       
1/2*sqrt(2)
1/2*sqrt(2)
(3/4)^23 
       
94143178827/70368744177664
94143178827/70368744177664

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)

Por cierto, las funciones trigonométricas reciben los ángulos en radianes. Por ejemplo, el seno de un ángulo recto es 1 ¿verdad?

sin(90).n() 
       
0.893996663600558
0.893996663600558
sin(pi/2) 
       

Para forzar a Sage a usar una aproximación, aplicamos .n() tras el número deseado (fíjate en que hay un punto). Si quieres aplicar este método a un cálculo complejo deberás ponerlo todo entre paréntesis. 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+1).n() 
       
3.71828182845905
3.71828182845905

Ejercicio 7. Calcula el resultado de las siguientes operaciones de manera exacta y también aproximadamente.

$2+5*6-21$,     $\dfrac{1+3^2}{1-2^2+2^3}$,     $e^{4-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, no ejecutes la celda que define la variable "valor" sino la siguiente: podríamos esperar que se mostrara el resultado en pantalla, pero nos da un error porque todavía no hemos ejecutado la celda que define ese valor.

valor = 3 
       
valor 
       

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

Moraleja 2: si ejecutas el código Sage en orden te evitarás problemas.

Moraleja 3: muchos problemas se resuelven preguntándose ¿la variable que estoy usando ya tenía algún valor de un ejercicio anterior?

 

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.1 d 
       
0.100000000000000
0.100000000000000
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

Ahora practicaremos la ejecución desordenada de celdas.


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 segunda celda varias veces para "ir contando". Muestra el resultado final en una tercera celda (si lo haces bien no se deberían ver los resultados intermedios).

 
       
 
       

Sage también puede guardar otros objetos dentro de variables. A continuación 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 valor del 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 ejecutar

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))

 

Se puede trabajar con funciones sin tener que poner la variable en la definición; resulta útil en algunas situaciones, lo veremos cuando lo necesitemos.

 

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=1 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/2$ y $\pi/2$.

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 cierto argumento en show(); también se puede poner dentro de la misma función plot.

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(figsize=3) 
       

Se pueden hacer muchas otras cosas gráficamente en Sage (hay 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" los objetos.

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(figsize=3) 
       

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

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

 
       

Has terminado el tutorial. Ahora ya sabes lo que necesitas para resolver problemas en Sage y escribir un documento con lo que quieras comunicar.

Nombre: 

Tiempo dedicado a este tutorial: