Résumé de l'algèbre et de la Programmation
Je vais commencer à l'apprentissage de l'Algèbre Abstraite - Groupes, Anneaux,etc. Je suis intéressé de connaître un langage de programmation, si, à tous qui peut m'aider à apprendre/essayer les concepts que j'ai appris dans la théorie.
EDIT: je ne suis pas vraiment à la recherche la mise en œuvre de ce que j'ai appris. Je suis intéressé de savoir toute langue qui prend déjà en charge eux.
Vous devez vous connecter pour publier un commentaire.
Le texte que vous voulez ici est Algèbre Abstraite, Une Approche de Calcul par Chuck Sims. L'auteur recommande que vous utilisez le APL langage de programmation. Le livre est épuisé, mais vous pouvez probablement trouver dans votre bibliothèque.
Il y a aussi le ÉCART de Système de calcul formel qui est amusant à utiliser pour la théorie des groupes.
Ressources avancées:
Magma: assez sophistiqué CAS capable de gérer un large éventail de concepts d'algèbre abstraite.
Macaulay 2: utilisé pour l'étude des anneaux de polynômes, en particulier Les bases de Gröbner.
SINGULIER: utilisé pour l'étude des anneaux de polynômes.
Un fait important dans l'étude de la théorie des groupes, c'est que chaque groupe est isomorphe à un permutation du groupe par l'action ordinaire. Ainsi, la clé de la compréhension de la théorie des groupes est de comprendre la permutation des groupes.
Enfin, une langue qui prend en charge la définition de vos propres objets et la définition d'un opérateur binaire sur deux instances de l'objet de soutenir l'apprentissage de la théorie par le biais de la programmation.
Peut-être légèrement différent sur votre question, mais quand même... Le langage fonctionnel Haskell utilise les concepts de l'algèbre (en particulier la catégorie de la théorie) comme des monades, monoids, des flèches et autres joyeusetés.
À l'aide de Haskell typeclasses, vous pouvez également en faire un objet dans un groupe, ou d'un anneau, par exemple, en définissant simplement les opérations (opérateurs) sur eux. En garantissant que les opérations que vous définissez en fait de se conformer au groupe/bague d'axiomes serait de votre responsabilité.
Si vous jouez avec des groupes, vous pouvez les visualiser à l'aide de Groupe explorer.
Mathematica a beaucoup de fonctions utiles pour traiter avec des concepts d'algèbre abstraite. Malheureusement, c'est un logiciel propriétaire et très coûteux. Sage est une alternative libre, qui a aussi un assez bon répertoire de l'algèbre abstraite fonctions, même si je ne l'ai pas utilisé aussi souvent donc je ne peux pas commenter beaucoup plus sur elle.
N'importe quelle langue avec la taille fixe des entiers non signés (par exemple. le
unsigned int
type C) est un exemple d'une telle mise en œuvre. Outre avec des valeurs non signées, c'est essentiellement le même que l'addition sur Z232 (ie. les entiers modulo 232), qui vous sont probablement de l'apprentissage dans votre algèbre abstraite de la classe.Modulaire plus sur un tel groupe n'est pas très intéressant. Plus intéressant peut-être modulaire plus d'un groupe de taille N où N est le premier des facteurs autres que juste 2 ou de taille P, où P est un nombre premier. À expérimenter avec ces groupes, vous pouvez avoir à mettre en œuvre de telles opérations arithmétiques de vous-même (c'est pas dur). Langues avec la surcharge d'opérateur peut faire de la mise en œuvre beaucoup plus pratique à utiliser.
L'utilisation de la langue qui fait le plus de sens pour vous. Algèbre abstraite contient beaucoup de manipulation de symboles (symbol pousser) et de réécriture, un montant modeste de l'induction, et une bonne dose d'ennui. Pour moi cela ressemble à de la logique ou de la programmation fonctionnelle; Épigramme et Agda faire un peu de cela, et Haskell ne dans une certaine mesure (même si je suis en désaccord que le monoïde est correct, mzero et mappend bon, mconcat: mauvais). Pour l'algèbre abstraite, le meilleur langage de programmation est la Définition de cahier et des tonnes de papier. Si celui-ci est en train de devenir assez ésotérique de ces jours.
Hmm ... désolé de le dire mais je ne pense pas que c'est efficace pour apprendre un peu de fantaisie nouveau langage de programmation pour vous aider à apprendre l'algèbre abstraite.
Oui Haskellers l'amour pour parler de la catégorie de la théorie, mais ce n'est pas vraiment un bon point de départ.
ÉCART et co. sont utilisés pour aider grandi groupe de théoriciens à trouver de nouveaux "monstres" - ils sont de mauvais outils pour apprendre la théorie des groupes.
Peut-être vous pouvez avoir un coup d'oeil à ceci: http://freecomputerbooks.com/mathAlgebraBooks.html - il y a beaucoup de livres gratuits autour de ce sujet.
Il est un peu surprenant que jusqu'à présent, personne n'a mentionné Cacao (un acronyme pour les Calculs en Algèbre Commutative), un lien vers le site principal : http://cocoa.dima.unige.it/ où l'on peut télécharger gratuitement la dernière Cacao 5.0 pour les principales plates-formes (Linux, MacOS X, Windows), (utile manuel pour le Cacao 4.7 peut également être trouvé là, pour la 5.0 est d'être mis à jour).
Disponible gratuitement, système de calcul formel (écrit en C) étant développé depuis plus de 20 ans. Ses cibles sont des professionnels, des applications scientifiques, parmi eux les bases de Gröbner calculs, de la factorisation de polynômes, l'algèbre linéaire exacte, Hilbert des fonctions, toriques idéaux etc.
Il y a de bonnes monographies comme Calcul Algèbre Commutative (2 vol.) par Kreutzer et Robbiano traiter avec du Cacao: http://cocoa.dima.unige.it/kr/
Dans le domaine de l'algèbre commutative, il est plus avancée et des fonctionnalités spécialisées que Mathematica, bien que dans M il y a de brillantes capacités (en l'absence de Cacao) pour l'élimination des quantificateurs (utile dans le traitement avec les systèmes d'équations polynomiales et les inégalités) : http://www.wolfram.com/learningcenter/tutorialcollection/AdvancedAlgebra/.
Le seul langage de l'ordinateur livre que j'ai lu qui tente de traiter sérieusement avec les concepts de l'algèbre Abstraite est
de Scientifiques et d'ingénieurs C++: Une Introduction avec des Techniques de pointe et des Exemples par John J. Barton, Lee R. Nackman.
C'est un bon livre sur le C++, bien que très ancien.
Je ne peux pas dire si l'approche est 100% mathématiquement correct.
Dans une veine similaire à la réponse de Greg, les groupes ont une belle représentation sous la forme d'une multiplication de matrice, de sorte que vous souvent voir des exemples fait à l'aide de matlab ou des outils similaires...
EAAM
ses un mathematica package spécifique et peut être installé aussi bien.