Как реализовать символьное дифференцирование на python? Добрый день. У меня есть задача- реализовать символьное дифференцирование на питоне(именно самому написать),но это у меня не получается. Я смог реализовать только перевод в обратную польскую запись(исходное выражение представляется в виде списка операторов и операнд в ОПЗ),а само взятие производной я не знаю ,как сделать. Можете, пожалуйста, помочь с реализацией функции взятия производной(от суммы/разности, произведения и частного). Буду очень благодарен.

21 Авг 2019 в 06:06
214 +1
1
Ответы
1

Конечно, я могу помочь вам с этим. Для начала давайте определим некоторые базовые функции для взятия производной от различных операций. Ниже приведен пример кода для взятия производной от суммы, разности, произведения и частного:

class Node:
pass
class Constant(Node):
def __init__(self, value):
self.value = value
def diff(self, var):
return Constant(0)
class Variable(Node):
def __init__(self, name):
self.name = name
def diff(self, var):
if self.name == var:
return Constant(1)
else:
return Constant(0)
class Add(Node):
def __init__(self, left, right):
self.left = left
self.right = right
def diff(self, var):
return Add(self.left.diff(var), self.right.diff(var))
class Subtract(Node):
def __init__(self, left, right):
self.left = left
self.right = right
def diff(self, var):
return Subtract(self.left.diff(var), self.right.diff(var))
class Multiply(Node):
def __init__(self, left, right):
self.left = left
self.right = right
def diff(self, var):
return Add(Multiply(self.left.diff(var), self.right), Multiply(self.left, self.right.diff(var)))
class Divide(Node):
def __init__(self, left, right):
self.left = left
self.right = right
def diff(self, var):
return Divide(Subtract(Multiply(self.left.diff(var), self.right), Multiply(self.left, self.right.diff(var))), Multiply(self.right, self.right))

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

20 Апр в 13:24
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 94 757 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир