viernes, 22 de abril de 2011

Breve historia del Sistemas de Álgebra Computacional MAXIMA


Maxima-CAS es un sistema de algebra computacional (CAS, del inglés Computer Algebra System)  para la manipulación de expresiones simbólicas y numéricas,  incluyendo diferenciación, integración, series de Taylor, transformadas de Laplace, ecuaciones diferenciales ordinarias, sistemas de ecuaciones lineales,  polinomios, conjuntos, listas, vectores, matrices, tensores, etc. Maxima ofrece resultados numéricos de alta precisión mediante el uso de fracciones exactas, así como números enteros de precisión arbitraria y números de coma flotante. Maxima puede trazar funciones y datos en dos y tres dimensiones, así como animaciones.

El programa original se llamó Macsyma (Machine Aided Cognition's SYmbolic MAnipulator) y tuvo su nacimiento en el Proyecto MAC del Instituto Tecnológico de Massachusetts (MIT) que funcionó entre 1967 y 1982. El Proyecto MAC fue un proyecto de investigación del MIT, patrocinado por la ARPA (Advanced Research Projects Agency), el Departamento de Defensa, el Departamento de Energía (DOE), así como algunos contribuyentes industriales. El proyecto se apoyó los esfuerzos previos de un equipo de investigadores pertenecientes al llamado "Grupo Mathlab", que ya estaban estudiando la posibilidad de emplear los ordenadores para resolver problemas matemáticos simbólicos, un desafío que en ese momento nunca había sido emprendido.

El diseño original del núcleo fue hecho por William A. Martin (1938-1981), Carl Engelman (1938-1983) y Joel Moses (1941-) en julio de 1968. Más adelante los dos primeros abandonaron sus aportaciones, siendo J. Moses el principal impulsor. La codificación comenzó en julio de 1969 con partes significativas del sistema que fueron diseñadas y programadas por P. Loewe, T. Williams, R. Fateman, E. Tsiang, P. Wang y J. Golden, entre otros.

Joel Moses trabajando sobre el procesador central y consola del ordenador DEC PDP-10, donde se instaló la primera versión de Macsyma. Portada del manual de Macsyma, versión 9 de 1977. Vista general del DEC PDP-10.

Macsyma y su descendiente Maxima están programados en Lisp (LISt Processing) lenguaje de programación de alto nivel, creado originalmente en 1958 por John McCarthy (1927-2011) y sus colaboradores en el MIT. Macsyma es considerado uno de los primeros sistemas expertos, que trabaja con información simbólica tanto de entrada como de salida de datos y es un programa potente.

El desarrollo del programa se realizó para el ordenador Programmed Data Processor model 10 (PDP-10), desarrollado por la empresa Digital Equipment Corporation (DEC), El PDP-10 funcionaba con el sistema operativo ITS (Incompatible Timesharing System) que fue uno de los sistema operativo más revolucionarios e influyentes en los primeros tiempos de los ordenadores y se desarrolló en el Laboratorio de Inteligencia Artificial del MIT. En sus primeros años Macsyma funcionó solamente en esta máquina y se podía acceder de forma remota desde Arpanet, un precursor de Internet y World Wide Web.

A medida que el software crecía en alcance y habilidad, el interés general que despertó condujo a portar el código, es decir, adaptar la versión escrita para el ITS de la PDP-10 a otras máquinas y sistemas operativos.

En 1982 el MIT transfiere una copia de Macsyma a la empresa Symbolics Inc. para su explotación económica, convirtiendo el código en propietario, Symbolics lo adquirió pensando más en evitar que el software pudiese ser explotado por competidores que en la propia obtención de un beneficio relevante gracias a su explotación. Otra copia se entregó al DOE (uno de los patrocinadores del Proyecto MAC) y esta versión se conoció como DOE-Macsyima.

En 1992 la copia de Symbolics Inc. es adquirida por Macsyma Inc para ser comercializado, pero fue perdiendo popularidad ante otros programas comerciales como Maple o Mathematica.

Paralelamente, desde el año 1982, y hasta su fallecimiento, William Schelter (1947-2001) en la Universidad de Texas mantuvo una versión del DOE-Macsyima a la que llamó Maxima y adaptó al estándar Common Lisp (dialecto de Lisp de propósito general), En 1998 Schelter obtuvo permiso del DOE para distribuir Maxima bajo la licencia GNU-GPL  y con ello relanzó el software, justo coincidiendo con la debacle de la versión comercial.

En la actualidad, el proyecto es un programa mantenido por un grupo de desarrolladores de varios países, que lo mejoran continuamente. Maxima es el único sistema basado en Macsyma que está todavía disponible públicamente y con una comunidad activa de usuarios, gracias a la naturaleza del software abierto.

Uno de los principales inconvenientes de Maxima para el usuario final, es que contaba con una consola de texto como interfaz de usuario. Pero con el tiempo han aparecido distintos entornos de trabajo que facilitan la interacción con el usuario, siendo wxMaxima el más popular. Esta es una interfaz gráfica desarrollada por Andrej Vodopivec, que es la que emplearemos y sobre la que profundizaremos a lo largo del curso. Otras interfaces son xMaxima y TeXmacs, pero también existen servidores de internet que permiten probar y ejecutar Maxima sin necesidad de instalarlo.

Logos de distintas versiones de Macsyma y Maxima.

¿Por qué utilizar Maxima-CAS en la enseñanza?

Lo primero que debemos comprobar para la utilización de un software matemático en la enseñanza, es si sus funcionalidades son adecuadas para los contenidos que se impartirán. En tal sentido sabemos que Maxima es capaz de:

  • manipular expresiones simbólicas y/o numéricas, realizando diferentes tipos de simplificaciones, factorizaciones o desarrollos.
  • realizar una amplia gama de operaciones matemáticas como diferenciación, integración, desarrollos en series, transformadas, resolución de ecuaciones algebraicas o diferenciales ordinarias, sistemas de ecuaciones lineales, operaciones con vectores, matrices y tensores, entre otras.
  • producir resultados de alta precisión usando fracciones exactas, números enteros de precisión arbitraria y números de coma flotante con precisión variable.
  • representar gráficamente funciones y datos en dos y tres dimensiones.
  • generar código en otros lenguajes de programación, como Fortran.

Recordemos que hay muchos otros programas que cumplen con estos requisitos como: Mathematica (© Wolfram Research), Maple (© Maplesoft), MatLab (© MathWorks) o MathCad (© Parametric Technology Corporation). Uno de los grandes problemas de los programas contenidos en el listado anterior es el elevado coste de las licencias, que además no permiten distribuirlo a los estudiantes, solo podemos utilizarlo en laboratorios de informática.

También existen alternativas de software libre que cumplen con las funcionalidades antes mencionadas sin llegar al nivel en que están implementadas en Maxima o simplemente lo incorporan como motor de cálculos simbólicos. Siendo este el caso de SageMath (http://www.sagemath.org/), que es un CAS construido sobre paquetes matemáticos ya contrastados como NumPy, Sympy, PARI/GP o Maxima, que combina a través de un lenguaje común basado en Python. SageMath es apropiado para titulaciones de matemáticas, pero en las restantes es de propósito muy general y en ocasiones lento sobre MS-Windows.

Las características que hacen especial a Maxima para el proceso de enseñanza/aprendizaje, en particular para las ingenierías, son las siguientes:

Licencia GPL:
Maxima es distribuido bajo la licencia GNU-GPL, que se puede consultar en la página https://sourceforge.net/p/maxima/code/ci/master/tree/COPYING.
En consecuencia se tiene libertad para utilizarlo, libertad para modificarlo y adaptarlo a sus propias necesidades, libertad para distribuirlo, libertad para estudiarlo y aprender su funcionamiento. Esto significa que tanto profesores como alumnos pueden disponer de versiones con todas las funcionalidades en sus ordenadores personales, facilitando el aprendizaje autónomo de los estudiantes.
Repositorio online:
El repositorio de versiones de Maxima está disponible en la web https://sourceforge.net/projects/maxima/files/ de SourceForge, una central de desarrollos de software que controla y gestiona varios proyectos de software libre y actúa como un repositorio de código fuente y compilado para el usuario final.
Existe una amplia documentación, disponible en formato electrónico y de libre acceso en la Web http://maxima.sourceforge.net/es/documentation.html. Además, el estudiante dispone de acceso a múltiples aplicaciones desarrolladas por la comunidad de usuarios en la Web http://maxima.sourceforge.net/es/3rdpartycode.html.
Bajo consumo de recursos:
poca ocupación de disco y posibilidad de funcionar con procesadores anticuados.
Estabilidad de versiones:
Actualización frecuente del código, corrigiendo los bugs y mejorando la documentación. Se mantienen las características básicas durante el mayor tiempo posible, de forma que los manuales y materiales docentes tengan un tiempo razonable de vigencia. Constantemente se actualiza Maxima, corrigiendo bugs y mejorando el código y la documentación.
Multiplataforma:
Maxima es un software multiplataforma, incluyendo versiones para los sistemas operativos Windows, Linux, MacOS X y Android. Además posee versiones portables para ejecutar desde dispositivos como las memorias USB desde MS-Windows. También está disponible el código fuente para ser modificado y/o recompilado por los usuarios. La página http://maxima.cesga.es/ implementa Maxima para su uso desde Internet y está soportada por la Fundación Pública Galega Centro Tecnolóxico de Supercomputación de Galicia (CESGA).

Descargar Maxima-CAS y documentación

Descargar Maxima para:

Windows, Linux o MacOS X:
Conectarse a la web https://sourceforge.net/projects/maxima/files/ de SourceForge, seleccionar el sistema operativo de nuestro ordenador y pasar directamente a la página de versiones. Nosotros aquí nos focalizaremos en las versiones para MS-Windows. Normalmente hay dos versiones, una para ordenadores con sistema operativo de 64 bits y otra para 32 bits; si tiene duda, escoja la de 32 bits para ordenadores antiguos. Ocasionalmente en algunas versiones solo hay un programa de instalación en la correspondiente carpeta del repositorio.
Android:
La versión de Maxima para teléfonos móviles con sistema operativo Android se puede descargar desde el repositorio de Google Play o la Web Maxima on Android (https://play.google.com/store/apps/details?id=jp.yhonda).
Versión portable:
La versión portable de Maxima para ejecutar en MS-Windows desde dispositivos de almacenamiento externos, como las memorias USB, está disponible en versión de prueba en el enlace http://portableapps.com/node/23391.

Descargar libros y manuales:

No hay comentarios:

Publicar un comentario