象征性的数学蟒蛇?[关闭]
-
21-08-2019 - |
题
我很感兴趣的数学和方案编制和规划开始 象征性的数学 项目 从头开始.
这是良好的项目的想法?
从哪里开始?
一个人应该如何处理这个 项目?
任何良好的资源?
在此先感谢。
解决方案
这是一个良好的项目以实践编程技能。但如果你想要创建一个真正的图书馆,其他人会想到使用这个项目你不想开始allone和从头开始...
从哪里开始: 看一看的解决方案已经在那里,并认为它是什么,你想要做不同的。如何将项目不同于其他人吗?
其他提示
1.这是良好的项目的想法?
是的,我期望它提供的无尽源有趣的工作,这将很快,试验和扩展你的编程能力。
2.从哪里开始?
我的第二的其他建议,你应该看看现有的工作。SAGE是非常令人印象深刻,并且如果你问我的意见我会建议你首先编写一个基本的系统做算术数字和符号;然后看一看圣人写一个模块,以扩大该系统,换句话说,成为一个捐助的东西越大,而不是试图这样做的所有关于你自己的。看起来还是在数学和枫树,Macsyma和公理。后者2都是免费的(我认为),但它们都是记录在案的在线和一个伟大的来源的想法和挑战。
3.一个人应该如何处理这个项目?
作为一个会办法吃一头大象。咬一口的时间。更严重的是,我认为有一些核心问题,诸如代表性的表达,以及一些基本的功能(运算上的多项式),你可以把你的牙齿。
4.任何良好的资源?
很多很多.谷歌'计算机代数','一词改写'.看看什么是可在亚马逊。而且,如果你访问,检查含石棉材料的数字图书馆
好运气。
象征性的数学是一个有趣的项目。是否有人使用它不会出现问题,在你的问题,因此潜在。
我已经写了两个中的这些多年。最酷的是一个用于SQL其中的条款--它有没有一些琐碎的象征性操作上的SQL折叠在一些额外和条件。没有一个完整的"解"或"优化"或任何东西,只是些象征性的操作的任何SQL其中的条款可能的。该小凉爽的一个调试器;它没有复杂的数学工作(象征性地)堆偏移量变量。
你开始通过定义类元素中的一个数学公式--的操作数,运营商、职能,等等。
你必须决定该怎么操作这些对象必须参加。得到一个具体的价值表达是一个显而易见的一个。开始与的情况下,所有的变量具有约束力。
然后处理这种情况,其中一些变量保持未结合,而可以仅仅评估部分的表达。
然后把手重新安排一个表达成一个规范的形式。即, 你已经做了一个局部评估和有 Add( Variable(x), Add( Variable(x), Lit(3) ) )
.你需要编写规则,以将此转变为 Add( Multiply( Lit(2), Variable(x) ), Lit(3) )
.
一个非常酷的运动是优化的括号,以便打印输出具有最少的括号的需要捕捉的意义。
有许多、许多其他的"的表达方式的转变"规则,我们都在学校里学做代数的操作。许多他们。
特别是,重新安排一种公式来隔离一个变量可能真的很难在一些情况。
这样做的衍生物转化是很容易的,但象征性的融合是真的,真的很难用一吨的特殊情况。
基本的乐趣。根据你想要去的,它得到逐步加困难。
@资源:你可以看一看 pythonica -这是企图实现一个数学类型的程序中Python(源代码是可供下载)。
此 pySym的博客 也可能感兴趣你得到想法和动,并学习其他人怎么做python&象征性的数学。
更多的资源: SympyCore:
目的SympyCore项目是寻找新的高性能的解决方案表示和操作象征性的表达Python编程语言,并尝试新的象征性的模型,以实现从根本上一致和足够的一般象征性的模式,可以很容易地延伸到计算机代系统(CAS)。
我认为这是一个伟大的项目程序的任何技术水平。这是相当容易做到实施一个象征性的计算器,这只是足够强大,是有用的。如果你继续工作的宽度,有很多有趣的功能,以增加,你可以占用你自己有很长一段时间。如果你选择去深度,你会发现,事情很快得到 非常难.你可以挑战自己无限期地,如果那是你喜欢什么。
有许多伟大的资源。我建议书"现代计算机代数"通过zur Gathen和Gerhard,虽然它真的更多关注算在特殊形式(多项式、整体、矩阵)于一般象征性的操纵。当你开始了,你实际上可能更好地帮助寻找在某些或方案的教程,因为象征性的数学是在概念上非常简单的做口齿不清,并建立一个象征性的发动机在Python你会或多或少具有实现一个迷你口齿不清的作为一个基础。
正如其他人已经指出的那样,你可以看看SymPy和sympycore为灵感的或具体算法。源代码,无论项目是有点复杂(但肯定不是太难了解)。
(如果我能插上一点,我 写了一个小小的符号引擎 一段时间后(作为一个周末的项目--这是非常微小的,我没工作就可以来).它实现了一个通用的象征性的发动机在约200行的代码,然后有300行代码,执行象征性的算术和象征意义的布尔代数,与一些非常基本的简化。也许更容易深入到比SymPy.但是,一切都在那里的是东西,你可以很容易地发现自己,并且可以有更多的乐趣这样做。)