Вы находитесь на странице: 1из 23

Por qu la computacin simblica?

e o o Recurremos a computacin por lo general para resolver algn o u problema de mundo real Una vez que se resuelve, normalmente queremos resolver el mismo problema otra vez con datos poco diferentes La computacin simblica es un atentado de resolver toda una o o clase de problemas en una vez Por eso dejamos que algunos variables en el problema no tengan valores jos Entonces tenemos que computar sin que sepamos valores de todos variables

Mxima, un sistema de computacin simblica a o o Mxima es un programa interactivo para la computacin a o simblico o Modo de computacin es simblica normalmente, hace o o computaciones nmericas si lo pide u Puede manejar aritmtica, polinomios, solucin de ecuaciones e o lineales y algunas polinomias, clculo diferencial y integral, a ecuaciones diferenciales, conjuntos, vectores y matrizes, nmeros primos, nmeros complejos, y grcos u u a Mxima es un proyecto de software libre con el hospedaje de a SourceForge Ya tiene un equipo internacional de desarrollo

Unos ejemplos Miremos a unos ejemplos sencillos que indican algo de Mxima a Una operacin de polinomio: o (%i1) a : 2; (%o1) 2 (%i2) expand ((a + b)^10);

Unos ejemplos . . . (%i1) a : 2; (%o1) 2 (%i2) expand ((a + b)^10); 10 9 8 7 6 (%o2) b + 20 b + 180 b + 960 b + 3360 b 5 4 3 2 + 8064 b + 13440 b + 15360 b + 11520 b + 5120 b + 1024

Unos ejemplos . . . Una operacin de matriz: o (%i1) M : matrix ([%pi, %e], [17, 29]); [ %pi %e ] (%o1) [ ] [ 17 29 ] (%i2) invert (M);

Unos ejemplos . . . (%i1) M : matrix ([%pi, %e], [17, 29]); [ %pi %e ] (%o1) [ ] [ 17 29 ] (%i2) invert (M); [ 29 %e [ -------------- -------------[ 29 %pi - 17 %e 29 %pi - 17 %e (%o2) [ [ 17 %pi [ - --------------------------[ 29 %pi - 17 %e 29 %pi - 17 %e

] ] ] ] ] ] ]

Unos ejemplos . . . Una integracin: o (%i1) integrate (exp (- x * u), u, 0, inf);

Unos ejemplos . . . (%i1) integrate (exp (- x * u), u, 0, inf); Is x positive, negative, or zero? pos; (%o1) 1 x

Historia breve de Mxima a 1968: Inici MACSYMA como parte del Proyecto MAC o (Cognicin Ayudada por Mquina). Fundado por el o a Departamento de Energ (DOE) del EE.UU. a MACSYMA = Matemticas simblicas del Proyecto MAC a o 19681982: Desarrollo de MACSYMA en el Instituto de Tecnolog de Massachusetts (MIT) a En esos aos, MACSYMA era proyecto de investigacin n o academica, para el benecio de los estudiantes y profesores 1982: Entrega de MACSYMA de MIT a DOE. Esa versin era o llamada DOE-MACSYMA 19821996 Desarrollo comercial de MACSYMA

19822001: Desarrollo de DOE-MACSYMA por William Schelter (Universidad de Texas) 1998: Schelter obtuvo permisin de DOE de liberar o DOE-MACSYMA con licencia GPL 2001-presente: Desarrollo de DOE-MACSYMA (ya llamada Mxima) como proyecto de hospedaje SourceForge a

Caracter sticas generales de Mxima a Toda cosa es una expresin. Es una manera de decir cdigo o o = datos en Mxima. a Mxima = coleccin de funciones para trasformar expresiones a o La actitud laissez faire. Si Mxima no sabe que hacer con a una expresion, no hace nada (por la mayor parte). Por eso es muy fcil extender las habilidades de Mxima. a a Distincin entre evaluacin y simplicacin o o o Evaluacin = sustitucin de valores por s o o mbolos y invocacin o de funciones, Simplicacin = sustitucin de expresiones por o o equivalentes

Toda cosa es una expresin o Expresiones algebrales como x + y, sin2 x, Tambin sumaciones y integrales e Tambin secuencias de expresiones (block) e Tambin objetos compuestos como [a, b, c] (lista), 1, 2, 3 e (conjunto), matrix([a, b], [1, 2]) (matriz) Tambin funciones f (x) := x2 e Tambin el bucle for y el condicional if then else e La implicacin es que trabajar con Mxima es manipular o a expresiones
n i=1 f (i)

La actitud laissez faire Mxima intenta tratar cada expresin con todas leyes a o matemticas que sabe a Qu sucede cuando Mxima no sabe ms? e a a Si Mxima no sabe que hacer con una expresin, lo deja a o quedar como est (en la gran mayor de casos) a a As deja la posibilidad de cambiar algo y tratarla otra vez El usuario o programador puede inventar nuevas funciones que empiezan donde Mxima se deja a

Mxima y Lisp a Mxima es escrito en Common Lisp a Es muy fcil caer desde Mxima hasta Lisp a a Se puede entrar en el ambiente Lisp y ver todos objetos Lisp Funciones y objetos denidos en Lisp se puede ver en Mxima, a y viceversa

Lisp como lenguaje de implementacin o De principio, Mxima fue escrito en MacLisp, un dialecto a bastante anticuado ahora Ya el cdigo fuente es Common Lisp, pero no explota las o habilidades de CL (desarrollado en los aos 80 y 90) n . . . enfsis en la lista de propriedades (SYMBOL-PLIST) a . . . no mucho uso de paquetes . . . muchos variables globales . . . no uso de nmeros complejos o racionales de Lisp u . . . la cadena en Mxima es un s a mbolo en Lisp Es dif hallar todos los cdigos que manejar a un operador; la cil o manera de programacin no necesita la localizacin de cdigos o o o

Lenguaje de programacin de Mxima o a Herencia de Lisp, con forma de Algol map, apply, lambda Funciones Lisp que aparecen en Mxima a Ambito dinmico (originalmente el slo tipo de mbito) a o a Mxima es un Lisp-2: con el mismo s a mbolo, se puede denir multiples objetos (variable, funcin, otros) o No tiene sistema de paquetes No tiene estructuras ni objetos (en el sentido de C++ o Java) El lenguaje de Mxima es sencillo es fcil expresar ideas a a sencillas

Fortalezas de Mxima a Mxima hace fcil resolver problemas sencillos, y hace posible a a resolver problemas complejos Mxima es muy general, y aumentamos su generalidad a continualmente Mxima trata a un gran nmero de sujetos bsicos a u a . . . y tiene tambin un gran coleccin de paquetes adicionales e o Hemos integrados varios otros programas de Lisp y de Fortran Hay mucho inters en Mxima hoy d y mucha actividad de e a a, desarrollo

Faltas de Mxima a Asuncin que hay alguna persona en el teclado gran o problema para integrar con otro sistema No se puede retraer todos rgulas e No se puede borrar todo valores sin reiniciar Sistema de declaraciones es dbil e Objetos compuestos (matrices, conjuntos, listas) tienen que ser concretos, no s mbolicos Falta de uniformidad Mxima es el producto de muchas a manos por muchos aos n Falta un sistema de paquetes Ambito dinmico (mbito lexical ser mejor) a a a

Comparacin con otros sistemas o Otros sistemas generales Mathematica, Maple, MuPAD ms o menos la misma a extension de matemticas como Mxima; ms funciones, a a a menos errores, mejores interfaces Yacas (SL) ms o menos la misma extension; menos a funciones (proyecto mucho ms joven que Mxima) a a Axiom (SL) sistema de categor estrictas (strongly as typed). Certamente no laissez faire Otros sistemas para sujetos especcos PARI/GP (SL) (teor de nmeros); GAP (SL), Magma a u (teor de grupos); ACL2 (SL) (pruebas automticas) a a

Otros sistemas numricos e Octave (SL), Matlab, Scilab (nmericos generales); R (SL), u S-Plus (estad stica); Mathcad (enfsis en el interfaz cuaderno) a Hay mucho inters ahora de integrar sistemas para construir e un sistema que tenga ms habilidad que algn solo sistema a u e.g. SAGE integra a GAP, SINGULAR, PARI/GP, etc; Matlab integra a Maple Problema ms grande para integracin de sistemas es falta de a o uniformidad de comunicaciones Se ha propuesto el uso de XML en algna forma (e.g. u MathML); pero an se acorda en el formato, tambin necesita u e acordar en la interpretacin de un mensaje o

Mxima como fenmena social a o Tenemos ahora un equipo diverso y internacional Como otros proyectos de software libre, lo que pasa es ms o a menos lo que quiere los desarrolladores Era unos aos atras un plan de desarrollo, pero no lo hemos n seguido cuidadosamente En particular, ha sido mucho inters de interfaces grcas, e a igual que revisin y traduccin del manual de referencia o o Tambin hemos trabajado en corregir errores y aumentar e funciones existentes Mxima es una casa de muchos cmaras se puede trabajar a a en lo que se acuerda con s mismo

A donde vamos con Mxima a No tenemos un plan jo. Algunas cosas que podr amos hacer: Aumentar la documentacin (otras traducciones y nuevos o textos) Interfaz cuaderno para el usuario Interfaz programtico ms sencillo a a Corregir errores en funciones de limites y integrales Corregir otros errores Hacer ms fcil la divisin de funciones (as que se puede a a o omitir o reemplacer alguna parte) Mxima como sistema de propsito general el lenguaje C a o para las mathematicas simblicos y numericos o

Por qu vin a Mxima e a Era trabajando en problemas de estad stica y decisin (anlisis o a de sobrevivencia) Encontr Mxima buscando una solucin. Todov quiero e a o a resolver problemas de tipo similar Lo que haca ms fcil esta tarea: (1) algoritmos ms fuertes a a a para integrar; (2) interfaz cuaderno; (3) integracin con o cdigos numericos o generacin de tal cdigos o o o Quisiera resolver problemas ms o menos prcticos, y parece a a que Mxima es un buen veh a culo de eso Quisiera ver paquetes de extensin para diversos sujetos o matemticos (problemas de ingeier estad a n a, stica, comercio, las ciencias, etc etc)

Вам также может понравиться