1

我正在阅读代数表达式的序言简化,有些部分我不明白。

所以这些是基本的简化

  x+0, x-0, 0+x, 0-x   --> x.
  x*1, x/1, 1*x        --> x.
  -1*x, x*(-1), x/(-1) --> –x.
  x+(-x)               --> x–x.

所以给出一个表达式

 (x+4)*(2-x)

我该如何推导

  (1+0)*(2-x)+(x+4)*(0-1)

?

我不明白推导是如何产生的。非常感谢您的帮助。

4

1 回答 1

2

我猜你的导数是指函数 f(x) = (x+4)*(2-x) 的数学导数。这是一个非常著名的古老且不那么难的计算机代数问题,解决方案最初是用 lisp 编写的。

Prolog 版本是直截了当的。您实施派生规则,例如:

d/dx (f + g) = d/dx f + d/dx g  
d/dx (f * g) = d/dx f * g + d/dx g * f
etc.. 

我建议您先自己尝试一下,然后再检查例如deriv.p。基于计算机代数的 autodiff 在这里deriv.p

再见

于 2012-09-13T08:44:14.037 回答