2

如果这是一个基本问题或者已经有丰富的解决方案,请原谅我,但我不知道如何简洁地表达这个问题,我找不到任何结果。我一直在思考这个问题很长时间,但我似乎无法找到解决方案。

我想做的是通过字符串比较符号语句。例如,在数学中,

4x = 4x is true.  

但是关于

(12/3)x = 4x
(5-1)x = (4/1)x 
((5-1)/1)x = (4/1)x
so on . . .

在证明中,

1 = sin(x)^2 + cos(x)^2
tan(x) = sin(x)/cos(x)
sin(2x) = 2*sin(x)*cos(x)
and so on . . .

在逻辑上,

~~p <-> p
~(p * q) <-> (~p v ~q)
~(p v q) <-> (~p * ~q)
(p v q) <-> (q v p)
(p * q) <-> (q * p)
and so on . . .

请记住,这些输入是字符串。我遇到的问题是,理论上存在无限多的情况,双方可以相等。

当然,第一个问题是如何解析数值与符号值并枚举它们。我在这方面没问题。

我什至不知道从哪里开始,所以任何指针都会受到赞赏。

4

1 回答 1

3

我会得到一个符号代数包。他们可以做一些事情,比如推导、简化和与归约的比较。许多也是可编程的。那里有一些不错的免费的。

这里有一个列表: http ://en.wikipedia.org/wiki/List_of_computer_algebra_systems

如果您正在寻找一种在代码中执行此操作的方法,也许您可​​以为您选择的语言找到一个符号代数库。

于 2012-12-21T00:39:39.400 回答