Algunos tips para SAGE

Como es con la práctica con la que se aprende, a lo largo del tiempo usando SAGE+Maxima (para evitar el uso de Maple) he ido aprendiendo algunos truquillos que (os?) pueden resultar interesantes (bien, me lo parecen a mi, y eso es suficiente :) ).

  • Visualización de resultados: SAGE puede funcionar de dos formas distintas, dentro de la línea de comandos y como aplicación web (invocando el comando notebook() dentro de la línea de comandos se inicia un servidor al que se puede acceder desde cualquier navegador convencional). No es difícil imaginar que dentro del modo línea de comandos sería prácticamente imposible visualizar ciertos resultados de forma cómoda, precisamente por eso implementaron el modo web... pero aun así nos podemos encontrar con sorpresas desagradables. Por defecto los resultados se mostrarán solo con carácteres ascii y consecuentemente pueden ser de difícil legibilidad. Hay un comando llamado latex() que transforma la entrada en una salida escrita en formato LaTeX, el problema es que para visualizar eso necesitamos pasarlo a un compilador de LaTeX y transformarlo, el proceso en sí es demasiado pesado y lento.La solución viene de la mano de jsMath, que son unas librerías que sirven para visualizar textos matemáticos en páginas web. En Debian y Ubuntu se pueden instalar desde aptitude o apt, yo recomiendo instalar dos paquetes: jsmath y ttf-jsmath. Una vez instaladas sólo habrá que marcar el checkbox Typeset que podemos encontrar en la parte superior de la página web que genera SAGE para trabajar, con ésto obtendremos salidas bien formateadas y con un aspecto agradable :)   .
  • Trabajar con polinomios sobre diferentes cuerpos: Dependiendo del cuerpo sobre el que trabajemos los polinomios se pueden descomponer de diferentes maneras y cuando se evaluan sobre un elemento del cuerpo pueden dar resultados diferentes. Por lo general la gente trabaja sobre el cuerpo de los números reales, otros trabajan sobre los complejos, y otros sobre los racionales, esos casos son los más usuales para los no matemáticos, pero muchos otros nos encontramos con la necesidad de trabajar con otros cuerpos que nos pueden resultar mucho menos intuitivos a la hora de realizar los cálculos. ¿Y como indicamos a SAGE que estamos trabajando con un cuerpo u otro? Ejecutando el siguiente comando, a partir de ese momento estaremos trabajando con el cuerpo indicado:
    R.<x>=cuerpo[]
    donde cuerpo es el cuerpo que queramos (y sea construible dentro de SAGE), para los racionales usamos QQ, para los reales RR, y para los complejos CC, y x es la variable que usaremos para el polinomio. Nosotros podemos construir otros cuerpos, de momento yo sólo he aprendido a construir cuerpos finitos (hay teoremas de isomorfismo que me aseguran que los que construyo son los únicos finitos). Para construir cuerpos finitos utilizaremos el comando:
    NombreQueLeQueramosDarAlCuerpo=FG(número)
    donde número és la cantidad de elementos que tendrá el cuerpo. Podemos probar las diferencias usando, por ejemplo, el comando factor sobre una expresión polinómica, de esta forma:
    factor(x^8-1)
  • Información extra que os pueda interesar:Dado que SAGE es muy extenso y yo he explicado muy pocas cosas, para los que no tengan mucha experiencia o por el contrario, quieran profundizar aun más, os enlazo algunos documentos:

Espero que a alguien le pueda servir ésto :) . Saludos!

Como dejar las drogas (Maple) con SAGE

A muchos nos duele a veces tener que resolver según que cálculos a mano por lo tediosa que se vuelve al tarea. Es por eso que acudimos a herramientas como Maple, Matlab o el realmente admirable Mathematica (todas ellas privativas) para que nos simplifiquen los cálculos y poder dedicar ese tiempo a ver alguna serie friki por internet. El problema es que tenemos que pagar por ellas, hacer el piratilla o racanear licencias a nuestra universidad, lo que no siempre resulta algo grato.

Otro problema añadido (si queremos hacer demostraciones matemáticas con ellos y realmente nos importa que tengan cierta validez científica) es que dado que el código de dichos programas es cerrado, una parte de la demostración no es accesible a nadie, es decir, nadie puede verificar realmente que todas las operaciones que ha hecho internamente el programa en cuestión sean realmente correctas (porque no se puede ver su código), en todo caso se tiene que volver a hacer a mano y comparar, con lo que no se gana absolutamente nada. A esto tenemos que añadir que las demostraciones tampoco son accesibles a casi nadie que no tenga una capacidad adquisitiva concreta pues para comprobar que el programa da esos resultados concretos necesita tenerlo, y para ello debe pagar una licencia. Es decir, no es una buena idea usar software privativo para crear conocimiento científico.

¿Y qué soluciones hay? Pues de todo un poco, tenemos Octave, Maxima y... nuestra gran estrella: SAGE. SAGE és una pieza de software genial que nos permite hacer casi de todo, funciona en la línea de comandos, pero también tiene una interfaz web que va a las mil maravillas. Podemos encontrarlo en su página oficial http://www.sagemath.org en su versión más reciente (En los repos de Ubuntu y Debian está algo anticuado). Yo particularmente utilizo una mezcla entre Maxima y SAGE, dentro de poco podremos usar un nuevo programa llamado Cantor (de KDE) que viene a ser una interfaz que aglutinará el uso de Maxima, R, SAGE y KAlgebra, la estoy esperando con ilusión.