Voy a empezar a aprender Álgebra Abstracta – Grupos, Anillos,etc. Me interesa saber ningún lenguaje de programación, si es que me puede ayudar a aprender/tratar los conceptos que aprenden en la teoría.

EDIT: no estoy realmente buscando en la aplicación de lo que debo aprender. Me interesa saber cualquier idioma que ya es compatible con ellos.

InformationsquelleAutor | 2009-02-24

11 Comentarios

  1. 20

    El texto que usted quiere aquí es Álgebra Abstracta, Un Enfoque Computacional por Chuck Sims. El autor le recomendamos que utilice la APL lenguaje de programación. El libro está fuera de impresión, pero usted probablemente puede encontrar en su biblioteca.

    También existe la BRECHA Sistema de Álgebra computacional que es divertido de usar para la teoría de grupos.

    Recursos avanzados:

    Magma: bastante sofisticado CAS que puede manejar una amplia gama de conceptos de álgebra abstracta.

    Macaulay 2: se utiliza para estudiar el polinomio de anillos, especialmente Bases de Gröbner.

    SINGULAR: se utiliza para estudiar el polinomio de anillos.

    Un hecho clave en el estudio de la teoría de grupos es que cada grupo es isomorfo a un permutación grupo por la acción. Por lo tanto, la clave para entender la teoría de grupos es entender la permutación de grupos.

    Finalmente, cualquier lenguaje compatible con la definición de sus propios objetos y la definición de un operador binario en dos instancias del objeto de apoyar el aprendizaje de la teoría a través de la programación.

    • Me tropecé con «Álgebra Abstracta, Un método de cálculo» en la biblioteca de hoy… pueden recomendar un APL aplicación para los ejercicios?
    • El NARS2000 aplicación es excelente; he utilizado con éxito en Linux (que se ejecuta en otros sistemas). He escuchado (pero no han experimentado) que el VisualAPL (.NETO de la implementación del APL) es fantástico.
    • Aunque yo soy más de 4 años de retraso, me gustaría señalar que no todo grupo es isomorfo a una permutación de grupo; más bien, cada grupo incrusta en una permutación de grupo. También, aunque esto es técnicamente cierto, no siempre es la mejor reducción de realizar; es muy parecido a decir que todo entero se divide un factorial, por lo que la teoría de los números se puede reducir al estudio de la factoriales.
    • Esta es una gran respuesta, pero si usted está buscando un idioma con el gran apoyo de la comunidad y tiene aplicaciones reales en la industria, ir con Haskell, como Thomas comentario señala. Escrito FP está ganando tracción con todo el énfasis en la concurrencia, paralelismo y computación distribuida en estos días, y los modelos para lograr esto parece prestado de la mayoría de ML y Haskell (aunque, Lisp también está haciendo un show, no te va a ayudar con el Álgebra Abstracta, como usted quiera).
    • El libro está disponible la última vez que revisé: amazon.com/Abstract-Algebra-Computational-Charles-Sims/dp/…
  2. 33

    Tal vez un poco diferente de tomar en su pregunta, pero aún así… El lenguaje funcional Haskell utiliza conceptos de álgebra (en particular la categoría de teoría) como mónadas, monoids, flechas y otras cosas.

    El uso de Haskell del typeclasses, también puede convertir cualquier objeto en un grupo, o un anillo, por ejemplo, simplemente por la definición de las operaciones (operadores) en ellos. Garantizar que las operaciones se definen en realidad cumplir para el grupo/anillo de axiomas sería su responsabilidad, sin embargo.

    • Ese es EL tipo de respuesta que yo quería :-). Gracias!
    • Prácticamente hablando, Haskell es agradable para el álgebra abstracta y discreta matemáticas porque hace a la definición y evaluación de combinatoria datastructures ligero y fácil.
    • Una buena introducción del uso de Haskell para el álgebra puede ser encontrada en este documento: people.cs.uu.nl/jeroen/article/algebra/index.html
  3. 4

    Mathematica tiene un montón de funciones útiles para tratar con los conceptos de álgebra abstracta. Por desgracia, es software privativo y muy caro. Sage es una alternativa gratuita, que también tiene un muy buen repertorio de álgebra abstracta funciones, aunque no lo he utilizado como ampliamente lo que no puedo comentar mucho más sobre ella.

  4. 3

    Cualquier idioma con tamaño fijo enteros sin signo (por ejemplo. el unsigned int tipo en C) es un ejemplo de una aplicación. Además con valores sin signo es esencialmente el mismo como la adición de más de Z232 (es decir. los enteros modulo 232), que probablemente están aprendiendo en su álgebra abstracta de la clase.

    Modular, además de más de un grupo no es muy interesante, sin embargo. Más interesante puede ser modular, además de más de un grupo de tamaño N, donde N tiene la primera otros factores que sólo el 2, o el tamaño de la P donde P es un primo. Para experimentar con estos grupos, usted puede tener para implementar dichas operaciones aritméticas a sí mismo (no es difícil). Idiomas con sobrecarga de operadores puede hacer que la aplicación mucho más cómodo de usar.

    • Cierto, voy a editar para la precisión. La multiplicación demasiado, pero la división es complicado.
    • La multiplicación no funciona como un grupo de operación en Z/nZ a menos que n es primo. Esto es necesario para garantizar la existencia de la inversa de los elementos.
    • Buen punto de nuevo. Gracias, ya han pasado muchos años. 🙂
  5. 3

    Uso del lenguaje que hace más sentido para usted. Álgebra abstracta contiene una gran cantidad de manipulación de símbolos (symbol empujando) y reescritura, una cantidad modesta de la inducción, y una buena cantidad de monotonía. Para mí eso suena como la lógica o la programación funcional; Epigrama y Agda hacer un poco de esto, y Haskell es, en cierta medida (aunque no estoy de acuerdo que monoid es correcta, mzero y mappend bien, mconcat: malo). Para álgebra abstracta, el mejor lenguaje de programación es la Definición y el cuaderno de toneladas de papel. Aunque esta es bastante esotérico estos días.

  6. 3

    Hmm … lo siento decir pero creo que no es eficaz para aprender algunas de fantasía en el nuevo lenguaje de programación con el fin de ayudarle a aprender álgebra abstracta.

    Sí Haskellers encanta hablar de la categoría de teoría, pero esto no es realmente un buen punto de partida.

    BRECHA y co. se utilizan para ayudar a crecido grupo de teóricos de encontrar nuevos «monstruos» – que son malos herramientas para aprender teoría de grupos.

    Tal vez usted puede echar un vistazo a esto: http://freecomputerbooks.com/mathAlgebraBooks.html – hay un montón de libros gratuitos en torno a este tema.

    • Yo no estoy de acuerdo aquí. Si usted tiene programación decente chuletas, a continuación, la aplicación de estos conceptos en algo como Haskell podría ser un fantástico ejercicio de aprendizaje. Abstracciones de tipos y operaciones binarias son conceptualmente cerca de los conceptos básicos de álgebra abstracta.
    • sí, estoy de acuerdo en que la aplicación de los conceptos es la mejor manera de aprender lo que realmente significa. Por otro lado, la pregunta pide específicamente idiomas que admite este tipo de concepto, de modo que no tiene que ser implementado. En este caso, estoy de acuerdo con carsten.
    • No es que estamos implementando estas cosas en la parte superior de la lengua. El lenguaje es fundamentalmente construida sobre algebraica de los conceptos: se obtiene algebraicas tipos de datos, en haskell estas formulario final coalegbras mientras que en ML se forma inicial de álgebras, no ve este tipo de estructura reflejada en todo en cosas como mathematica, etc…
    • para su downvote: gracias por dejarme saber por qué, pero por las faltas de ortografía: me ayude a salir como un no-nativ de usuario en inglés y corregirlos en lugar de quejarse de este
    • respecto a la «no constructivas» … yo le di mi respuesta honesta (me hizo aprender algebra de edad camino y soy un Haskell/FP usuario) y señaló algunos recursos gratuitos
  7. 2

    Es un poco sorprendente que hasta ahora nadie ha mencionado Cacao (un acrónimo para los Cálculos de Álgebra Conmutativa), un enlace a la página principal : http://cocoa.dima.unige.it/ donde se puede descargar la última Cacao 5.0 para las principales plataformas (Linux, MacOS X, Windows), (un útil manual para el Cacao 4.7 también se pueden encontrar allí, para 5.0 es ser actualizado).

    Libremente disponible sistema de álgebra computacional (escrito en C) que está siendo desarrollado por más de 20 años. Su objetivo son los profesionales, científicas aplicaciones, entre ellos las bases de Gröbner cálculos, el polinomio factorización exacta de álgebra lineal, Hilbert de funciones, tóricas ideales etc.

    Hay buenas monografías como Computacional Álgebra Conmutativa (2 vol.) por Kreutzer y Robbiano tratar con Cacao: http://cocoa.dima.unige.it/kr/

    En el campo del álgebra conmutativa tiene más avanzados y especializados en la funcionalidad de Mathematica, a pesar de que en M no son brillantes capacidades (ausente en el Cacao) para la eliminación de cuantificadores (útil en el trato con los sistemas de ecuaciones polinómicas y las desigualdades) : http://www.wolfram.com/learningcenter/tutorialcollection/AdvancedAlgebra/.

  8. 0

    En una vena similar a la de Greg respuesta, los grupos tienen una buena representación en la forma de una multiplicación de la matriz, por lo que a menudo ver ejemplos hecho uso de matlab o herramientas similares…

Dejar respuesta

Please enter your comment!
Please enter your name here