Sympy计算梯度、散度和旋度
sympy有个vector 模块,里面提供了求解标量场、向量场的梯度、散度、旋度等计算,官方参考连接:
http://docs.sympy.org/latest/modules/vector/index.html
sympy中计算梯度、散度和旋度主要有两种方式:
-
使用∇算子
sympy提供了类Del(),表示向量微分算子∇(哈密尔顿算子,Nabla算子),该类的方法有:cross、dot和gradient,cross叉乘,计算旋度;dot点乘,用于计算散度,gradient计算梯度。
(1)计算梯度
#引入坐标系和微分算子模块
from sympy.vector import CoordSys3D,Del
C = CoordSys3D('C')
delop = Del() # nabla算子
# 标量场 f = x**2*y-xy
f = C.x