-1

我想对 lisp 执行一些符号计算。我找到了有用的导数函数,我想知道如何编写简单的递归函数来添加/减去/等。多项式。

输入(例如):(addpolynomial '(+ (^ (* 2 x) 5) 3) '(+ (^ (* 3 x) 5) (^ (* 3 x) 2)))

输出:(+ (^ (* 5 x) 5) (^ (* 3 x) 2)) 3)

你知道怎么做吗?或者,也许您知道其他符号计算示例?

4

1 回答 1

2

当我过去在 Lisp 中处理多项式时,我使用了数字数组(假设变量,这意味着我不能轻易拥有像“x*x + y”这样的东西,但是因为我没有不需要那个...)。

这允许您将 "2x^5 + 3" 表示为#(3 0 0 0 0 2),找到 x^n 的因子(aref poly n)和其他方便的操作。

这也允许您将加法定义为简单(map 'vector #'+ ...)(乘法需要更多工作)。

于 2015-11-17T13:22:17.663 回答