首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >像Wolfram Alpha或Mathematica这样的系统是如何解决方程的呢?

像Wolfram Alpha或Mathematica这样的系统是如何解决方程的呢?
EN

Stack Overflow用户
提问于 2013-09-11 03:57:21
回答 2查看 4.1K关注 0票数 25

我正在构建一种基于web的编程语言,部分灵感来自Prolog和Haskell (不要笑)。

它已经有了相当多的功能,你可以在http://www.lastcalc.com/上查看原型。您可以查看源代码here并阅读有关架构here的信息。记住,这只是一个原型。

目前,LastCalc不能简化表达式或求解方程。我不想用Java硬编码,而是想增强基础语言,这样它就可以扩展到只用语言本身就能做这些事情(就像Prolog一样)。与Prolog不同,LastCalc有一个更强大的搜索算法,Prolog是“带回溯的深度优先搜索”,LastCalc目前使用的是启发式的最佳优先搜索。

在深入研究这个问题之前,我想更多地了解其他系统是如何解决这个问题的,特别是Mathematica / Wolfram Alpha。

我假设的想法是,至少在一般情况下,您给系统一堆处理方程的规则(如a*(b+c) = a*b + a+c),指定目标(例如。隔离变量x),然后释放它。

所以,我的问题是:

  • 我的假设正确吗?
  • 应用规则的搜索策略是什么?例如:深度优先,广度优先,迭代深化的深度优先,某种最佳优先?
  • 如果它是“最佳优先”,那么使用什么启发式来确定特定的规则应用程序是否可能使我们更接近我们的目标?

我也会感谢任何其他的建议(除了“放弃”--我经常忽略这条建议,这样做对我很有帮助;)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-11 04:26:13

前段时间我自己处理过这样的问题。然后我找到了关于表达式简化的this document。它的标题是基于规则的表达式简化,并显示了Mupad中关于简化的一些细节,该部分后来成为Matlab的一部分。

根据这份文件,您的假设是正确的。有一组用于操作表达式的规则。启发式质量度量被用作简化的目标函数。

票数 10
EN

Stack Overflow用户

发布于 2013-09-15 10:41:32

Wolfram alpha是由Mathematica开发的

  • stephen是斯蒂芬·沃尔夫拉姆的创意。Mathematica 1.0于1988年发布。mathematica很像maple,它们都严重依赖于像LaPack这样的旧软件库。
  • 这些程序所基于的库,通常只是基于遗留软件。它们已经存在并修改了很长一段时间。

如果您想了解运行的后台程序,sagemath是一个免费的开源替代方案;您可以对您的问题的解决方案进行反向工程:

SageMath.org

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18727737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档