我目前正在使用“计算器”应用程序,并且希望输出以简化表达式和十进制答案的形式出现。一个示例是sqrt 2 * sqrt 3 = sqrt 6,也可以将其输出为2.44948 ...最好的方法是什么?是否有完善的算法可以做到这一点?
是的。您可能想要的是一个计算机代数系统,该系统将公式理解为要由明确的数学规则操纵的人工产物。
Mathematica和Macsyma是执行此操作的应用程序。但是,这些都是非常复杂的系统,很难看到它们是如何工作的。
您需要做的是:
规则最好用代数的表面语法编写。(Mathematica不会这样做;它使用一种前缀S表达式将公式表示为树,而将规则表示为具有特殊变量节点的同类树)。
问题之一是确定要编码多少个“代数”规则。数学不仅是纯粹的9年级代数,而且使用此类系统的人们倾向于通过添加更多知识来扩展那里的内容(Mathematica和Macsyma的观点:它们是无限可扩展的)。
这是一个非常简单的版本。您可以从解析树和重写规则的角度查看所有“齿轮”以及如何描述事物。
http://www.semdesigns.com/Products/DMS/SimpleDMSmainExample.html
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句