Лучший способ создания функций более высокого порядка в sympy?

#sympy

Вопрос:

В математике существуют функции, аргументы которых являются функциями, а результаты также являются функциями, такими как производная и интеграл. Их часто называют операторами. Если у меня есть собственный тип оператора, как лучше всего выразить это в сочувствии? Написав класс Python? Или есть способ «чистого» сочувствия?

Нам нужен оператор для композиции функций, который не является коммутативным.

Обновление: в частности, я хочу составить операторы и заставить sympy использовать для меня обычные производные правила. Например, определите dhat , что принимает функцию в ее производную, xhat которая умножает функцию на ее аргумент, затем составьте dhat xhat и примените правило продукта:

 dhat = Operator(diff(f(x), x), f(x))
xhat = Operator(x * f(x), f(x))
dhat.compose(xhat) = identity   xhat * dhat
 

Последняя строка из правила продукта:

 dhat.compose(xhat)(f)(x)
    = dhat(xhat(f))(x)
    = diff(x * f(x), x)
    = f(x)   x * f'(x)
 

Комментарии:

1. Вам нужно более подробно рассказать о том, что вы хотите сделать с полученными объектами.

2. Как много sympy вы изучили? Там есть многое, что выходит далеко за рамки Python (хотя и работает на python).

3. @hpaulj Я рад изучать все, что sympy мне нужно. Я хорошо разбираюсь в Python и математике (на этом уровне) и горю желанием учиться.

4. @OscarBenjamin обновил вопрос конкретным примером, спасибо, что задали.