Как реализовать символьное дифференцирование на python?

Пользователь

от quinton.prosacco , в категории: Python , 9 месяцев назад

Как реализовать символьное дифференцирование на python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от magali , 8 месяцев назад

@quinton.prosacco 

Существует несколько способов реализации символьного дифференцирования на Python. Рассмотрим один из возможных вариантов:

  1. Использование библиотеки SymPy. Она позволяет работать с символьными выражениями, в том числе производными функций.


Пример:

1
2
3
4
5
from sympy import *
x = symbols('x')
f = x**2 + 2*x + 1
df = diff(f, x)
print(df) # 2*x + 2


  1. Использование библиотеки autograd. Она позволяет автоматически вычислять производные функций любой сложности.


Пример:

1
2
3
4
5
6
import autograd.numpy as np
from autograd import grad
def f(x):
  return x**2 + 2*x + 1
grad_f = grad(f) # функция производной
print(grad_f(2)) # 6.0


  1. Использование символьных операций в библиотеке numpy. Она также позволяет работать с символьными выражениями, но менее удобна для этой задачи, чем SymPy.


Пример:

1
2
3
4
5
import numpy as np
x = np.symbols('x')
f = x**2 + 2*x + 1
df = np.diff(f, x)
print(df) # 2*x + 2


Все эти методы могут быть использованы для символьного дифференцирования на Python.