python 中的sympy 包能实现 表达式的求导。本文主要包含内容为:
- scipy 求导数
- sympy 表达式求导
-
sympy 带入值计算
scipy求导
scipy 能够直接对函数求导,缺点是需要无法保存导数的表达式,每次带入值计算,需要重复求导。
import numpy as np
from scipy.misc import derivative
def f(x):
return x**5
for x in range(1, 4):
# 直接求导
print(derivative(f, x, dx=1e-6))
sympy 表达式求导
sympy 能够实现表达式的求导
from sympy import *
def sympy_derivative():
# 定义表达式的变量名称
x1, x2 = symbols('x1 x2')
# 定义表达式内容
Y = x1**2 +x2**2
# 计算 x2对应的偏导数
return diff(Y, x2)
sympy 带入值计算
func = sympy_derivative()
print(func) # 输出结果2*x2
print(func.evalf(subs ={'x2':6})) # 把x2 等于6 带入计算 结果 为12
其中 func.evalf(subs={}) 为特征值带入计算的api,需特殊说明的是,该函数运行结果,可能还只是表达式,其主要是求解已经给的特征值
func = sympy_derivative()
print(func) # 输出结果2*x2
print(func.evalf(subs ={'x1':6})) # 把x1 等于6 带入计算 结果 为2*x2