Introducción o qué es un CAS
Un sistema computacional de cálculo simbólico es una calculadora avanzada, capaz de realizar las operaciones numéricas habituales, más otras de naturaleza algebraica abstracta. O dicho de otra forma, puede trabajar con fórmulas en las que figuran, indistintamente, números y variables simbólicas no cuantificadas.
Este tipo de herramientas se denominan genéricamente CAS (del inglés computer algebra system) y los primeras aparecieron en la década de los 70. Al igual que ocurre con las calculadoras de bolsillo el objetivo de los CAS es automatizar la realización cálculos tediosos. Y aunque no todas las herramientas tienen las mismas prestaciones, un CAS genérico suele tener (y conviene que tenga) capacidades para realizar simplificaciones o desarrollos en fórmulas que contienen variables, para realizar derivadas e integrales indefinidas, para resolver ecuaciones lineales y algunas no lineales de forma exacta, para resolver ecuaciones de forma numérica o para resolver algunas ecuaciones diferenciales, para realizar cálculo matricial, etc. En síntesis, capacidades para los cálculos habituales de las matemáticas.
También se considera que un CAS de este tipo debe tener facilidades para dibujar gráficos de funciones y poner a disposición del usuario un lenguaje de programación que le permita definir sus propios procedimientos de cálculo. Junto a estos CAS de ‹‹amplio espectro›› existen otros más específicos para cálculo muy especializado.
Los CAS están influyendo de forma cada vez más significativa en la enseñanza de las matemáticas, especialmente a nivel universitario, por sus posibilidades de apoyo docente en ilustración de ciertos fenómenos y conceptos, en la validación experimental de algunas hipótesis, en el ahorro de tiempo en la realización de tareas conceptualmente simples pero tediosas, etc. El reto que tienen los docentes es conseguir que el CAS sea otra herramienta más, como el papel y el lápiz, o la bibliografía, en ese proceso personal de aprendizaje y que no quede reducido a un ‹‹artefacto›› o apéndice marginal.
Pero también se utilizan CAS en tareas de investigación matemática, frecuentemente en realización de cálculos simbólicos y en la experimentación para afianzar o desechar conjeturas. En ocasiones se utiliza un CAS genérico, pero en otras se utilizan CAS especializados (como por ejemplo el GAP - Groups, Algorithms, Programming - a System for Computational Discrete Algebra que emplean mis colegas del área de Álgebra).
Lecturas complementarias
Más sobre CAS. Wikipedia dedica una entrada a los CAS cuya lectura resulta aconsejable para completar esta introducción.
Tabla comparativa de CAS referida a aspectos básicos: nombre, creador, estado de desarrollo, licencia, costo, sistemas operativos en los que está disponible. Incluye software propietario y libre.
Una selección que sólo contiene herramientas libres.
Otros recursos
Muchos de los CAS pueden hacer cálculos numéricos de amplio espectro y grafismo, pero para objetivos específicos hay herramientas especializadas que pueden resultar interesantes.
Análisis numérico. Una lista de herramientas y una tabla comparativa referida a aspectos básicos de las mismas.
Estadística. Una lista de herramientas y una tabla comparativa de las mismas. En esta misma página, en el apartado del menú de la izquierda correspondiente a "Cálculo estadístico" podrá encontrar más información sobre herramientas de este tipo.
Hojas de cálculo. Aunque pertenecen a una categoría diferente, también pueden resultar interesantes para determinados propósitos.
Grafismo. Una lista de programas para hacer gráficos matemáticos.
EZ Graph Para gráficos desde la web de funciones sencillas: polinómicas, racionales, exponenciales, logarítmicas o trigonométricas.
La lista anterior recoge información existente en Wikipedia y sobrepasa mi limitada experiencia. En base a esa experiencia, y al diálogo con algunos colegas, realizo una selección.
Gnuplot es un excelente programa para realizar gráficos matemáticos, muy extendido y con el aval de que otros programas libres (Maxima y Octave entre ellos) lo utilizan para construir sus gráficos. La capacidad de reciclaje es uno de los valores del software libre.
Matlab es posiblemente uno de los programas de propósito general para cálculo numérico y grafismo más ampliamente usado en universidades y empresas tecnológicas. Matlab utiliza un lenguaje de alto nivel que resulta más amigable que los clásicos Fortran y C utilizados tradicionalmente en cálculo numérico. Es posible encontrar muchas líneas de código escritas en el lenguaje que Matlab reconoce. Pero Matlab es un programa propietario. Dentro del software libre GNU Octave sigue la misma filosofía y es altamente compatible con Matlab.
Scilab El INRIA (Institute National de Recherche en Informatique y Automatique) de Francia impulsa el Scilab Consortium que mantiene y desarrolla este software, con una licencia compatible con GNU GPL. Se trata de paquete de software científico para cálculo numérico que proporciona un potente y flexible entorno de trabajo en ingeniería y aplicaciones científicas. Scilab incluye cientos de funciones matemáticas y la posibilidad de añadir interactivamente programas de variados lenguajes (C, C++, Fortran...), mantiene un amplio nivel de compatibilidad con Matlab (a través de un programa de conversión) y su uso está extendido en las universidades francesas.
R es una buena elección para cálculo estadístico. En esta misma página podrá encontrar más información escrita por el Prof. Palazón.
Maxima
Las nuevas orientaciones impulsadas por el Espacio Europeo de Educación Superior aconsejan la introducción de instrumentos y recursos que faciliten el aprendizaje autónomo-dirigido de los estudiantes. Y los recursos informáticos de tipo CAS pueden prestar un ayuda significativa a los estudiantes
para cálculo simbólico o numérico;
en el estudio de funciones y sus propiedades apoyado por la representación gráfica;
y en la adquisición e interiorización, a través de la experimentación con los elementos anteriores, de las ideas que sustentan el conocimiento abstracto en matemáticas.
Los CAS más conocidos, como ©Derive, ©Maple, ©Mathematica..., son productos comerciales de precios elevados. Maxima no sólo es gratuito, es un programa de código abierto, cuyo código fuente está disponible bajo licencia GPL, pudiendo ser compilado en cualquier sistema operativo y distribuido libremente bajo los términos de dicha licencia.
Maxima desciende de Macsyma, el legendario sistema de álgebra computacional desarrollado a finales de 1960 en el Instituto Tecnológico de Massachusetts (MIT) como programa propietario, anterior a los CAS antes señalados.
William Schelter, profesor de Matemáticas en la Universidad de Texas en Austin, obtuvo en 1998 el permiso para liberar el código fuente bajo la licencia GPL de GNU y desde 1982 hasta su muerte en 2001 estuvo manteniendo la rama Maxima de Macsyma. Actualmente su mantenimiento y desarrollo se apoya en el esfuerzo altruista de una comunidad activa de usuarios y programadores. La última versión al escribir estas notas es la 5.16 y está fechada en agosto de 2008.
¿Qué es?
Maxima es un CAS genérico capaz de realizar
cálculo simbólico, como diferenciación, integración, desarrollos en series de Taylor, transformadas de Laplace, ecuaciones diferenciales ordinarias, resolución de sistemas de ecuaciones lineales, matrices, tensores... utilizando números reales o complejos;
cálculo numérico con alta precisión usando fracciones exactas y representaciones con aritmética de coma flotante arbitraria;
gráficas utilizando funciones matemáticas, o tablas de datos, en dos y tres dimensiones;
tareas complejas programables en un lenguaje propio;
accesos a toda la potencia del lenguaje Common Lisp sobre el que está construido y con el que puede interaccionar, permitiendo, en particular, que el usuario implemente nuevos comandos o instrucciones.
Maxima es un programa para trabajar en modo consola (o línea de comandos). Existen, sin embargo, varios interfaces gráficos (GUI) para trabajar de forma más amigable. Los GUI de uso más extendido actualmente son:
xMaxima. Es el más veterano de todos los GUI y forma parte de la distribución de Maxima, a veces como un módulo opcional. Consta de dos ventanas: en una de ellas existe una consola para escribir los comandos Maxima y en la otra hay un navegador html para leer guiones de prácticas (notebooks) interactivos con Maxima.
wxMaxima. Es una interface que simplifica la introducción de los instrucciones más básicas vinculándolos a botones o menús desplegables con formularios listos para recibir los parámetros. Requiere instalar previamente Maxima.
GNU TeXmacs. A través de un módulo específico, Maxima puede ser ejecutado desde esta potente herramienta de edición de propósito amplio (que despierta pasiones a favor y en contra) y las salidas que Maxima produce son incorporadas después de procesarlas con TeX.
También existen varios servidores de internet que permiten probar y ejecutar Maxima sin necesidad de instalarlo en nuestra computadora.
Por qué Maxima
Cuando hace ya varios años me propuse comenzar a utilizar recursos informáticos de apoyo en mi docencia de Análisis Matemático para estudiantes de Física y Matemáticas, la cuestión era qué CAS elegir. Y para ello lo primero era dilucidar qué tipos de apoyo útiles podría prestarme un CAS en ese ámbito y buscar información sobre herramientas que fueran aptas para esos objetivos.
Para adoptar la decisión tuve en cuenta las siguientes variables, aunque no a todas asigné el mismo peso relativo.
A través de su autopropaganda en internet forjarme una idea sobre el interés de la herramienta para mis objetivos.
Qué herramientas han usado otros colegas, para qué y qué servicios prestan en ese ámbito.
Posibilidades reales de profesor y alumnos para usar la herramienta sin limitaciones.
Libros o manuales de uso accesibles a profesor y alumnos.
Disponibilidad de materiales de fácil acceso diseñados para la herramienta.
Carácter multidisciplinar: mejor si sirven para varias asignaturas.
Multiplataforma: GNU-Linux y MS-Windows, al menos.
Ergonomía.
Desarrollo activo.
Buena relación con LaTeX.
Y me decidí por Maxima. Estoy satisfecho con los resultados: hasta el momento Maxima responde a mis necesidades.
No probé todos los CAS que encontré referenciados, entre otros motivos porque no disponía de una copia legalizada. Pero entre los que probé, Maxima aguantaba bien la comparación (véase más abajo "A Critique of the Mathematical Abilities of CA Systems") en términos puramente técnicos, con los más afamados de sus competidores, mientras que en la relación calidad/precio o en la posibilidad de extender la herramienta, no había posibilidad de comparación porque Maxima es un software libre y abierto.
Con posterioridad otros compañeros del Departamento de Matemáticas de la Universidad de Murcia han hecho esa misma elección, haciendo que Maxima ocupe el puesto que anteriormente tenía en su docencia otro CAS propietario muy afamado. Comentando nuestras experiencias y valoraciones las carencias más significativas que vemos en Maxima son:
El navegador de xMaxima es demasiado primitivo: cuestiones tan básicas como poder abrir un fichero buscando con ratón no pueden realizarse. Y aunque, una vez abiertos, es posible editar los ficheros manteniendo la posibilidad de interacción, luego no es posible guardarlos con el formato inicial. Falta una herramienta eficiente para notebooks.#xmaxima -url http://webs.um.es/mira/maxima/manualico.html
A diferencia de lo que ocurre con otros CAS, no hay materiales docentes de tipo notebook escritos para Maxima. Y los que hay en formato pdf son muy escasos. Evidentemente, esa es una contribución que podemos realizar quienes nos beneficiamos de Maxima, poniendo nuestros materiales a disposición de otros bajo una licencia Creative Commons o similar.
Documentación
Manual de Referencia y Tutoriales en diferentes idiomas. Entresacamos a continuación algunos relacionados con docencia universitaria.
Manualico y algunos vídeos con Maxima en acción. José M. Mira.
Maxima con wxMaxima: software libre en el aula de matemáticas . Rafael Rodríguez Galván. Universidad de Cádiz.
Aplicación de XMaxima a la docencia de las matemáticas. Francisco Palacios. Universidad Politécnica de Cataluña.
Introduçao aos Sistemas Dinâmicos. Uma abordagem prática com Maxima. Jaime E. Villate. Universidad do Porto
Maxima by Example Edwin L. Woollett. California State university Long Beach
Computer Based Tool for Enginering Javed Alam. Youngstown State University.
My Maxima Book Gilberto E. Urroz. Utah State University.
Introduction to Maxima Richard H. Rand. Cornell University
Maxima Guide for Calculus Students Moses Glasner. Eberly College of Science
Instalación
Instalar Maxima. Para los sistemas GNU-Linux Debian y Ubuntu Maxima está disponible en los repositorios y por tanto es suficiente con ejecutar desde una consola como superusuario (root)
apt-get install xmaxima gnuplot wxmaxima