Cuando se trata de resolver ecuaciones matemáticas en Linux, hemos hablado anteriormente de GeoGebra, un software para geometría y gráficos 2D. Sin embargo, si está buscando herramientas más potentes, debería probar Sage. Todos hemos oído hablar de Matlab o Magma, pero Sage ofrece una alternativa de código abierto a esos dos, y es, en mi opinión, más simple de usar.

Instalación

Sage está siempre en fuerte desarrollo, lo que significa que se añaden nuevas mejoras con mucha frecuencia. Para instalarlo desde el código fuente:

En primer lugar, usted tendrá que satisfacer algunas dependencias.

sudoapt-get install build-essential m4 gfortran libssl-dev dpkg-dev

A continuación, puedes descargar las fuentes desde la página oficial. Extráelos y desde un terminal, lanza el script

./make

Nota: Necesitarás unos 3GB de espacio libre para que Sage funcione correctamente. Asegúrate de tenerlos antes de lanzar la compilación (que llevará algún tiempo).

Si prefieres la versión binaria, también hay un PPA disponible para Ubuntu:

sudo apt-add-repository -y ppa:aims/sagemathsudoapt-get updatesudoapt-get install sagemath-upstream-binary

También puede instalar todos los paquetes opcionales:

sudoapt-get install texlive evince xpdf xdvi tk8.5-dev

Uso

Para lanzar Sage, puedes hacerlo con el comando

./sage

desde el directorio descargado.

Si quieres lanzar sage desde cualquier lugar, puedes crear un enlace simbólico con

ln-s[ruta al lanzador de sage]/usr/local/bin/sage

o incluso hacer un alias en tu archivo ~/.bashrc como hice yo

aliassage=/home/adrien/sage-5.2/sage

Sage es una herramienta no gráfica por defecto. Al iniciar, debería obtener algo como esto

sage-launch

Entonces tienes la opción: continuar con la consola, o ir a la GUI basada en el navegador escribiendo

notebook()

Ambas son bastante equivalentes en términos de funcionalidad. La GUI es más intuitiva, especialmente para los diagramas y gráficos, pero la terminal también funciona bastante bien. Con la GUI, prueba el comando

circle((0,0), 1, rgbcolor=(1,1,0))

Verás que aparece un círculo amarillo debajo.

sage-gui

Si hace lo mismo en la consola, su visor de imágenes por defecto se abrirá y mostrará el mismo círculo.

Nota: Tanto la GUI como la consola tienen una función de autocompletado.

Ahora que has elegido la interfaz de Sage, podemos empezar a hablar de las funciones en sí. Sage es absolutamente enorme, y lo digo en serio. No hay manera de que podamos discutir todos los aspectos de ella en un artículo. En su lugar, te mostraré algunas aplicaciones comunes que puedes querer probar.

1. Calculadora

Sí, Sage puede hacer algunas matemáticas básicas. Suma, multiplicación, etc. Dado que está escrito principalmente en Python, también puede utilizar la sintaxis de Python para hacer cosas como la división de enteros.

sage-basic_math

2. Raíces de polinomios

Es bastante común que nos den un polinomio y nos pidan sus raíces. Con Sage, primero se crea un anillo de polinomios con

P.<x> = AnilloPolinómico(RR)

donde x será el generador, y RR representa los números reales. Si quieres que tu anillo sea sobre los números racionales, por ejemplo, sustituye RR por QQ. A continuación, copie su polinomio:

t = x^2 – 25

Y luego pides las raíces

t.roots()

Nota: esto devolverá las raíces en el anillo base del polinomio y sus multiplicidades. Si quieres que las raíces sean de otro anillo base, ponlo como argumento para la función roots().

raíces de salvia

3. Matriz inversa

Si estás un poco metido en el mundo del comercio o de la economía, es posible que hayas visto matrices en algún momento de tu vida. Generalmente, hay todo un proceso para encontrar las inversas de estas matrices. Pues bien, Sage lo hace por ti de forma muy sencilla. Crea tu matriz sobre el anillo base que quieras.

m = matrix(QQ, [[1, 2], [3, 4]])

Y buscar su inversa

m.
inversa()

sage-matrix_inverse

4. Gráficos

Sage también tiene algunas capacidades de graficación. Antes dibujamos un círculo con

círculo((0,0), 1, rgbcolor=(1,1,0))

Estoy bastante seguro de que has entendido que el primer parámetro era el centro del círculo, el segundo el radio y el último el color del círculo en el estándar RGB. Bueno, también puedes trazar funciones básicas declarando primero una variable:

x = var(‘x’)

Y luego usar la función plot():

plot(x^3, (-10,10))

El primer argumento es la ecuación de la función, el segundo es el intervalo. Así que aquí estaba pidiendo la función cúbica que se muestra de -10 a 10 en la parcela x.

sage-plot

Nota

: Si tienes instalado Jmol, puedes incluso hacer gráficos en 3D declarando dos variables
x, y = var(‘x,y’)

Y luego usar la función plot3d()

plot3d(x^2 + y^2, (x,-2,2), (y,-2,2))

sage-plot3d

5. Resolver ecuaciones

A veces queremos una solución para una ecuación, pero la calculadora sólo nos da una aproximación. Es aún peor si hay algunas otras variables en esa ecuación y que queremos que la solución se exprese en función de ellas. Durante años, en el instituto, me tocó hacer eso manualmente. Qué tontería! Sage lo hace perfectamente. Declara todas tus variables

x, a, b, c = var(‘x a b c’)

Y luego sólo tienes que usar la función solve(), con la(s) ecuación(es) como primer argumento, y la(s) variable(s) que quieres que se exprese(n) después:

solve([x – 3*a == 6, x + b*c == 10], x, b)

Ojalá hubiera sabido eso en el instituto…

sage-solve

6. Diferenciación e integración

Aquí está la última aplicación cuando eres realmente perezoso. Puedes utilizar este programa para diferenciar e integrar funciones. Como siempre, declara tus variables

x = var(‘x’)

Y luego utiliza la función diff() o la función integrate().

diff(x^3 + 4*x + 16, x)

para diferenciar y

integral(x^3 + 4*x + 16, x)

para integrar.

sage-diff_integrate

Conclusión

Sage es realmente una herramienta increíble. La sintaxis es rápida de aprender y se mantiene bastante estándar. La desventaja es que la documentación es realmente algo que debe leer con el fin de obtener una comprensión de lo que realmente puede hacer. Las aplicaciones son tan numerosas que es fácil perderse. Puedes hacer ecuaciones diferenciales junto con criptografía. Y es tan específico que ahora mismo se está desarrollando una función para encontrar el campo de división de polinomios sobre campo finito (sí, tampoco tengo ni idea de lo que significa).

¿Tienes algún otro ejemplo que proponer? ¿Una pregunta sobre Sage? Háznoslo saber en los

Crédito de la imagen: Maths by Big Stock Photo.