sympyを使っていく

import sympy

x = sympy.Symbol('x')
y = sympy.Symbol('y')

print(type(x))

[vagrant@localhost python]$ python app.py

変数を使っていく

import sympy

x = sympy.Symbol('x')
y = sympy.Symbol('y')
expr = x**2 + y + 1
print(expr)

ほう
[vagrant@localhost python]$ python app.py
x**2 + y

x = sympy.Symbol('x')
y = sympy.Symbol('y')
expr = x**2 + y + 1
print(expr.subs(x,3))
print(expr.subs(x,y))

代入も出来る。完全に再現できるわけね。当たり前か。
[vagrant@localhost python]$ python app.py
y + 10
y**2 + y + 1

xとyの代入も

print(expr.subs([(x,3),(y,2)]))

式の展開

expr = (x + 1)**2
print(sympy.expand(expr))

こいつは凄い
[vagrant@localhost python]$ python app.py
x**2 + 2*x + 1

因数分解

print(sympy.factor(x**3 - x**2 - 3*x + 3))
print(sympy.factor(x*y + x + y + 1))

[vagrant@localhost python]$ python app.py
(x – 1)*(x**2 – 3)
(x + 1)*(y + 1)
何これー

print(sympy.solve(x**2 - 3*x +2))
print(sympy.solve(x**2 + x + 1))

Iは虚数ですね。
[vagrant@localhost python]$ python app.py
[1, 2]
[-1/2 – sqrt(3)*I/2, -1/2 + sqrt(3)*I/2]

で、肝心の微分
来ましたねー

print(sympy.diff(x**3 + 2*x**2 + x))

expr = x**3 + y**2 - y
print(sympy.diff(expr, x))
print(sympy.diff(expr, y))

[vagrant@localhost python]$ python app.py
3*x**2 + 4*x + 1
3*x**2
2*y – 1