Introduction to computer algebra systems? [closed]

痴心易碎 提交于 2019-12-02 13:52:41

"General Theory" of CAS is a pretty huge scope for a question. That being said, I'll do my best to cover as much as I can in the hopes that something helps you find what you're looking for :)

The proceedings of the ISSAC and SIGSAM groups would no doubt have some good stuff about techniques for building CAS systems. A list of various topics in the general area of CAS building is available here: http://www.cs.berkeley.edu/~fateman/algebra.html

If you're more looking for information on how to code some of the math involved, I'm a fan of the "Numerical Recipes" series; it provides sample code and a reasonably decent explanation of math in a wide range of topics. Last I checked, an online version of an older revision of the book was available here: http://www.nrbook.com/a/bookcpdf.php (Note that this is the "Numerical Recipes in C" form of the book; there are versions in other languages as well).

For building a CAS in general, one place to start might be here: "Building a computer algebra environment by composition of collaborative tools" by Kajler and Safir; Another place you might check is here: http://www.math.wpi.edu/IQP/BVCalcHist/calc5.html where a high-level description of how a few folks implemented a CAS is listed.

The other thing you might try is diving into the code for a few of the open source CAS projects that exist: YACAS (Yet Another Computer Algebra System : Java), Axiom, etc. I like the list here: http://en.wikipedia.org/wiki/List_of_computer_algebra_systems

Hope something in there was useful!

The basics are nicely covered in PAIP; the source code is free online -- see particularly the source files with 'macsyma' in the name. Topics include rewrite-rule systems, simplification using canonical forms, integration and differentiation, and compiling and memoizing rewrite rules for speed.

I've found Algorithms for computer algebra by K.O. Geddes... to be pretty useful. I'm a junior undergrad with a light math background doing work on OpenAxiom (a CAS). Get ready for some heavy, heavy math though, my best advice is to have a couple books if only to have a different perspective if you get "stuck".

It might help if you suggest what you're looking into, what areas you're interested in, etc.

Ray Tayek

Here's one link from Wikipedia: Computer Algebra Systems
And another here: http://www.math.wpi.edu/IQP/BVCalcHist/calc5.html

Here are two books which describe algorithms used for implementing computer algebra systems:

Computer Algebra and Symbolic Computation: Elementary Algorithms

Computer Algebra and Symbolic Computation: Mathematical Methods

I used these books to implement libraries for computer algebra in Scheme (MPL) and C# (Symbolism).

You mention SymPy in your question so I'll speak to that briefly.

The project and community of SymPy are themselves actually very good resources.

  1. There is a variety of expertise that regularly checks and responds to the mailing list.
  2. The code is openly available on github.
  3. The documentation is fairly complete and often includes academic citations.

If you're interested in CASs come on by. The contributors like to talk about what they work on. If you're interested it's easy to get started and add your own contributions.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!