抽象代数-グループ、リングなどの学習を開始します。理論で学んだ概念を学習/試すのに役立つプログラミング言語があれば、知りたいと思っています。
編集:私は学んだことを実装することを本当に考えていません。すでにそれらをサポートしている言語を知りたいです。
抽象代数-グループ、リングなどの学習を開始します。理論で学んだ概念を学習/試すのに役立つプログラミング言語があれば、知りたいと思っています。
編集:私は学んだことを実装することを本当に考えていません。すでにそれらをサポートしている言語を知りたいです。
あなたの質問に対する見方は少し異なるかもしれませんが、それでも... 関数型言語 Haskell は、モナド、モノイド、アローなどの代数 (特に圏論) の概念を使用します。
Haskell の型クラスを使用すると、オブジェクトに操作 (演算子) を定義するだけで、任意のオブジェクトをグループまたはリングにすることもできます。ただし、定義した操作が実際にグループ/リングの公理に準拠していることを保証するのは、ユーザーの責任です。
ここで必要なテキストは、Chuck Sims によるAbstract Algebra, A Computational Approachです。著者は、APLプログラミング言語を使用することをお勧めします。この本は絶版ですが、おそらく図書館で見つけることができます。
群論に使用するのが楽しいGAP Computer Algebra Systemもあります。
高度なリソース:
Magma :抽象代数から幅広い概念を処理できるかなり洗練されたCAS 。
Macaulay 2 : 多項式環、特にグレブナー基底の研究に使用されます。
SINGULAR : 多項式環の研究に使用されます。
群論を研究する際の重要な事実は、すべての群が正規作用による順列群に同型であるということです。したがって、群論を理解するための鍵は、順列群を理解することです。
最後に、独自のオブジェクトを定義し、オブジェクトの 2 つのインスタンスで二項演算子を定義することをサポートする言語は、プログラミングを通じて理論を学習することをサポートします。
グループで遊んでいる場合は、グループ エクスプローラーを使用して視覚化することをお勧めします。
Mathematicaには,抽象代数の概念を扱うための便利な関数がたくさんあります.残念ながら、これはプロプライエタリなソフトウェアであり、非常に高価です。 Sageは無料の代替手段であり、抽象代数関数のかなり優れたレパートリーも備えていますが、私はそれほど広く使用していないため、これ以上コメントすることはできません。
固定サイズの符号なし整数 ( unsigned int
C の型など) を持つ言語は、そのような実装の例です。符号なし値の加算は、おそらく抽象代数のクラスで学習しているZ 2 32 (つまり、2 32を法とする整数) の加算と本質的に同じです。
ただし、そのようなグループに対するモジュールの追加はそれほど興味深いものではありません。もっと興味深いのは、N がちょうど 2 以外の素因数を持つサイズ N のグループ、または P が素数であるサイズ P のグループに対する剰余加算かもしれません。このようなグループを試すには、そのような算術演算を自分で実装する必要がある場合があります (難しくありません)。演算子のオーバーロードを伴う言語は、実装をより使いやすくすることができます。
あなたにとって最も意味のある言語を使用してください。抽象代数には、多くの記号操作 (記号プッシュ) と書き直し、適度な帰納法、およびかなりの退屈さが含まれます。私には、それはロジックまたは関数型プログラミングのように聞こえます。Epigram と Agda はこれを少し行い、Haskell はある程度行います (モノイドが正しいという意見には同意しませんが、mzero と mappend は問題ありませんが、mconcat: は悪いです)。抽象代数の場合、最適なプログラミング言語は定義ノートと大量の紙です。これは最近かなり難解になっていますが。
うーん...申し訳ありませんが、抽象代数を学ぶために、派手な新しいプログラミング言語を学ぶことは効果的ではないと思います。
はい、Haskeller は圏論について話すのが大好きですが、これは実際には良い出発点ではありません。
ギャップと共同。大人になった群論学者が新しい「怪物」を見つけるのを助けるために使われます - それらは群論を学ぶための悪い道具です。
http://freecomputerbooks.com/mathAlgebraBooks.html - このトピックに関する無料の本がたくさんあります。
これまで誰もCoCoA (Computations in Commutative Algebra の頭字語) について言及していないことは少し驚くべきことです。メイン サイトへのリンク: http://cocoa.dima.unige.it/ ここで最新の CoCoA 5.0 をダウンロードできます。主要なプラットフォーム (Linux、MacOS X、Windows) 用 (CoCoA 4.7 の役立つマニュアルもそこにあります。5.0 は更新される予定です)。
20 年以上にわたって開発されている、自由に利用できるコンピューター代数システム (C で記述)。そのターゲットは、グレブナー基底計算、多項式因数分解、正確な線形代数、ヒルベルト関数、トーリック イデアルなど、専門的で科学的なアプリケーションです。
CoCoA を扱う Kreutzer と Robbiano による Computational Commutative Algebra (2 vol.) のような優れたモノグラフがあります: http://cocoa.dima.unige.it/kr/
可換代数の分野では、Mathematica よりも高度で特殊な機能を備えていますが、M では、量化子の除去 (多項式方程式と不等式のシステムを扱うのに役立つ) のための優れた機能 (CoCoA にはありません) があります: http://www. wolfram.com/learningcenter/tutorialcollection/AdvancedAlgebra/ .
EAAM は mathematica 固有のパッケージであり、同様にインストールできます。
グレッグの答えと同様に、グループは行列の乗算の形で適切に表現されるため、matlab または同様のツールを使用して行われた例がよく見られます...