Common Lisp - 符号多项式计算

时间:2015-11-16 19:11:57

标签: common-lisp symbolic-math symbolic-computation

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

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

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

你知道怎么做吗? 或者您可能知道其他符号计算示例?

1 个答案:

答案 0 :(得分:2)

当我过去处理过Lisp中的多项式时,我使用了数组(假设变量,这意味着我不能轻易地拥有像#34; x * x + y",但因为我不需要......)。

这可以让你代表" 2x ^ 5 + 3"如#(3 0 0 0 0 2),通过(aref poly n)和其他方便的操作找到x ^ n因子。

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