Я хотел бы выполнить некоторые символьные вычисления на lisp. Я нашел полезную производную функцию и хотел бы знать, как написать простую рекурсивную функцию для добавления/вычитания/и т. д. многочлены.
Ввод (например): (addpolynomial '(+ (^ (* 2 x) 5) 3) '(+ (^ (* 3 x) 5) (^ (* 3 x) 2)))
Выход: (+ (^ (* 5 x) 5) (^ (* 3 x) 2)) 3)
Вы знаете, как это сделать? Или, может быть, вы знаете другие примеры символьных вычислений?
(3 . 4)
. - person kzz   schedule 17.11.2015'(+ (^ (* 2 x) 5) 3)
. Однако обозначение(^ (* 2 x) 5)
довольно странное. Вы действительно имеете в виду 2x в пятой степени? Обычно мы пишем это [32 раза [x до 5]], или в нотации Лиспи(* 32 (^ x 5))
. Но большая часть полиномиальной арифметики такого рода сводится к выяснению соответствующих коэффициентов. Вот почему (^ (* 2 x) 5)` действительно неудобно работать, а(* 32 (^ x 5))
довольно удобно. - person Joshua Taylor   schedule 17.11.2015(* 32 (^ x 5))
в(* 2 (^ x 4))
и получите(+ (* 32 (^ x 5)) (* 2 (^ x 4)))
без каких-либо упрощений (если применимо) - person kzz   schedule 17.11.2015