Как связать функцию с символом в SymPy - PullRequest
0 голосов
/ 25 октября 2019

Из документации не ясно, как можно легко определить функцию на основе существующих функций SymPy и присвоить ей псевдоним для определенного символа для печати. ​​

Например, я определил прямоугольную функцию следующим образом.

import sympy as sp

def rect(t):
    return (sp.Heaviside(t + 1/2) - sp.Heaviside(t - 1/2))

Хотя это полезно для алгебраической стороны вещей, не позволяя мне определять новый подкласс Function с производными и т. Д., Было бы неплохо, если бы я мог связать его с верхним регистром Pi (Π) чтобы выражения, использующие его, печатали это вместо серии символов Хевисайда.

1 Ответ

0 голосов
/ 25 октября 2019

Ваш rect должен был бы быть class rect(Function) вместо функции, и для этого требовался бы специальный принтер. Также обратите внимание, что если вы определите метод eval, как указано выше (в терминах Хевисайда), тогда ваше выражение больше не будет классом rect ... это будет Add.

Другой способЧтобы справиться с этим, нужно просто использовать Function('\Pi')(t) в своих выражениях, а когда вы будете готовы что-то с ними сделать, замените эти экземпляры своим определением. Но какие вещи вы хотите сделать с rect? Не могли бы вы вместо этого использовать Piecewise?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...