"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
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.
我发现 KO Geddes 的计算机代数算法非常有用。 我是一名具有浅数学背景的大三本科生,正在 OpenAxiom(CAS)上工作。 不过,准备好迎接一些繁重的数学吧,我最好的建议是买几本书,如果你“卡住”了,就能有不同的视角。
如果您提出您正在研究的内容、您感兴趣的领域等,可能会有所帮助。
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.
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.
发布评论
评论(6)
CAS的“通论”是一个相当大的问题范围。 话虽这么说,我会尽力涵盖尽可能多的内容,希望能帮助您找到所需的内容:)
ISSAC 和 SIGSAM 小组的会议记录无疑会提供一些有关技术的好东西用于构建 CAS 系统。 此处提供了 CAS 构建一般领域的各种主题列表:http:// www.cs.berkeley.edu/~fateman/algebra.html
如果您更多地寻找有关如何编写涉及的一些数学代码的信息,我是“数字食谱”系列的粉丝; 它提供了示例代码以及对各种主题的数学的合理解释。 最后我检查了一下,这里提供了该书旧版本的在线版本:http://www .nrbook.com/a/bookcpdf.php(请注意,这是本书的“C 语言数值食谱”形式;也有其他语言的版本)。
一般来说,对于构建 CAS,可以从这里开始:“通过协作工具的组合构建计算机代数环境”,作者:Kajler 和 Safir; 您可以检查的另一个地方是:http://www.math.wpi.edu /IQP/BVCalcHist/calc5.html 其中列出了一些人如何实现 CAS 的高级描述。
您可以尝试的另一件事是深入研究一些现有的开源 CAS 项目的代码:YACAS(又一个计算机代数系统:Java)、Axiom 等。我喜欢这里的列表:http://en.wikipedia.org/wiki/List_of_computer_algebra_systems
希望其中的内容有用!
"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!
PAIP 很好地介绍了基础知识; 源代码在线免费——特别请参阅名称中带有“macsyma”的源文件。 主题包括重写规则系统、使用规范形式的简化、集成和微分,以及编译和记忆重写规则以提高速度。
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.
我发现 KO Geddes 的计算机代数算法非常有用。 我是一名具有浅数学背景的大三本科生,正在 OpenAxiom(CAS)上工作。 不过,准备好迎接一些繁重的数学吧,我最好的建议是买几本书,如果你“卡住”了,就能有不同的视角。
如果您提出您正在研究的内容、您感兴趣的领域等,可能会有所帮助。
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.
这里有两本书描述了用于实现计算机代数系统的算法:
计算机代数和符号计算:基本算法
计算机代数和符号计算:数学方法
我使用这些书在Scheme (MPL) 和C# (象征)。
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).
以下是维基百科的一个链接:计算机代数系统
另一个在这里: http://www.math.wpi.edu/IQP/ BVCalcHist/calc5.html
Here's one link from Wikipedia: Computer Algebra Systems
And another here: http://www.math.wpi.edu/IQP/BVCalcHist/calc5.html
您在问题中提到了 SymPy ,所以我将简要介绍一下。
SymPy 的项目和社区本身就是非常好的资源。
如果您对 CAS 感兴趣,请过来。 贡献者喜欢谈论他们的工作。 如果您有兴趣,很容易上手并添加您自己的贡献。
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.
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.