0

我已经构建了一个完整的工作计算器,可以评估任何表达式并绘制它。我还构建了一个符号微分器,可以正确区分公式 wrt x,但我对如何以编程方式简化任何通用方程有点迷茫,因为此时答案是很多倍的。我意识到 a*1 很容易简化,但我需要一个全面的简化器来涵盖任何情况。

4

1 回答 1

1

我认为简化是规范化的一种形式。您可能想要实现的第一件事是简化多项式:

  • 计算任何不包含变量的子表达式
  • 为您的变量定义一个顺序,除非x是您唯一有效的变量
  • 根据变量对单项式中的项进行排序
  • 基于此变量顺序,定义单项式的顺序,其中将变量及其度数考虑在内
  • 根据多项式的单项式对多项式进行排序
  • 识别重复的单项式并组合它们的系数
  • 删除所有结果为零的单项式

如果您还想简化包含函数的表达式,事情可能会变得任意复杂。一般来说,我会尝试定义一些方法来衡量一个术语的简单性,即给定两个术语,决定两者中哪一个更简单。然后,您可以考虑规则并检查您是否可以保证它们只会使您的条款更简单。您可能还想检查终止(即,对于无限数量的步骤,您的条款不可能变得更简单)和汇合(即,当有两种可能的简化时,您下一步做什么都没有关系,因为最终结果将是相同的)。

您可能想阅读一些关于术语重写重写系统和相关主题的文献。

于 2012-10-08T12:39:33.353 回答