可以使用Sympy库
SymPy是一个符号计算的Python库。它的目标是成为一个全功能的计算机代数系统,同时保持代码简洁、易于理解和扩展。它完全由Python写成,不依赖于外部库。
SymPy支持符号计算、高精度计算、模式匹配、绘图、解方程、微积分、组合数学、离散数学、几何学、概率与统计、物理学等方面的功能。
示例1:求已定义函数的导数/偏导
# -*- coding: utf-8 -*-
"""
@File : test.py
@Time : 2020/5/18 21:09
@Author : Dontla
@Email : sxana@qq.com
@Software: PyCharm
"""
from sympy import symbols, diff
def f(a, b):
return a ** 2 + b ** 3
x, y = symbols('x y', real=True)
print(diff(f(x, y), x)) # 2*x
示例2:直接代入函数式求导数/偏导
# -*- coding: utf-8 -*-
"""
@File : test.py
@Time : 2020/5/18 21:09
@Author : Dontla
@Email : sxana@qq.com
@Software: PyCharm
"""
from sympy import symbols, diff
x, y = symbols('x y', real=True)
print(diff(x ** 2 + y ** 3, y)) # 3*y**2
示例3:用subs()函数求指定位置的导数/偏导值
# -*- coding: utf-8 -*-
"""
@File : test.py
@Time : 2020/5/18 21:09
@Author : Dontla
@Email : sxana@qq.com
@Software: PyCharm
"""
from sympy import symbols, diff
x, y = symbols('x y', real=True)
print(diff(x ** 2 + y ** 3, y).subs({x: 3, y: 1})) # 3