基本字段函数的DocString#

现场操作功能#

这些函数通常实现一些与字段相关的基本操作。

sympy.physics.vector.fieldfunctions.curl(vect, frame)[源代码]#

返回给定帧的坐标符号计算的向量场的旋度。

参数:

vect :矢量

向量操作数

框架 :参考帧

计算旋度的参考系

实例

>>> from sympy.physics.vector import ReferenceFrame
>>> from sympy.physics.vector import curl
>>> R = ReferenceFrame('R')
>>> v1 = R[1]*R[2]*R.x + R[0]*R[2]*R.y + R[0]*R[1]*R.z
>>> curl(v1, R)
0
>>> v2 = R[0]*R[1]*R[2]*R.x
>>> curl(v2, R)
R_x*R_y*R.y - R_x*R_z*R.z
sympy.physics.vector.fieldfunctions.divergence(vect, frame)[源代码]#

返回给定帧的坐标符号计算的向量场的散度。

参数:

vect :矢量

向量操作数

框架 :参考帧

计算散度的参考系

实例

>>> from sympy.physics.vector import ReferenceFrame
>>> from sympy.physics.vector import divergence
>>> R = ReferenceFrame('R')
>>> v1 = R[0]*R[1]*R[2] * (R.x+R.y+R.z)
>>> divergence(v1, R)
R_x*R_y + R_x*R_z + R_y*R_z
>>> v2 = 2*R[1]*R[2]*R.y
>>> divergence(v2, R)
2*R_z
sympy.physics.vector.fieldfunctions.gradient(scalar, frame)[源代码]#

返回给定坐标系的标量向量的梯度。

参数:

标量 :可解释

要获取梯度的标量场

框架 :参考帧

计算渐变的框架

实例

>>> from sympy.physics.vector import ReferenceFrame
>>> from sympy.physics.vector import gradient
>>> R = ReferenceFrame('R')
>>> s1 = R[0]*R[1]*R[2]
>>> gradient(s1, R)
R_y*R_z*R.x + R_x*R_z*R.y + R_x*R_y*R.z
>>> s2 = 5*R[0]**2*R[2]
>>> gradient(s2, R)
10*R_x*R_z*R.x + 5*R_x**2*R.z
sympy.physics.vector.fieldfunctions.scalar_potential(field, frame)[源代码]#

返回给定帧中字段的标量势函数(不添加积分常数)。

参数:

领域 :矢量

要计算其标量势函数的向量场

框架 :参考帧

要在其中进行计算的框架

实例

>>> from sympy.physics.vector import ReferenceFrame
>>> from sympy.physics.vector import scalar_potential, gradient
>>> R = ReferenceFrame('R')
>>> scalar_potential(R.z, R) == R[2]
True
>>> scalar_field = 2*R[0]**2*R[1]*R[2]
>>> grad_field = gradient(scalar_field, R)
>>> scalar_potential(grad_field, R)
2*R_x**2*R_y*R_z
sympy.physics.vector.fieldfunctions.scalar_potential_difference(field, frame, point1, point2, origin)[源代码]#

返回特定帧中两点之间的标量势差,与给定字段相对应。

如果提供标量字段,则考虑其在两点处的值。如果提供一个保守向量场,则使用其在两点处的标量势函数的值。

返回(位置2处的电位)-(位置1处的电位)

参数:

领域 :矢量/可解释

要计算wrt的字段

框架 :参考帧

要在其中进行计算的框架

点1 :点

给定帧中的起始点

位置2 :点

给定帧中的第二个点

起源 :点

用作位置矢量计算参考点的点

实例

>>> from sympy.physics.vector import ReferenceFrame, Point
>>> from sympy.physics.vector import scalar_potential_difference
>>> R = ReferenceFrame('R')
>>> O = Point('O')
>>> P = O.locatenew('P', R[0]*R.x + R[1]*R.y + R[2]*R.z)
>>> vectfield = 4*R[0]*R[1]*R.x + 2*R[0]**2*R.y
>>> scalar_potential_difference(vectfield, R, O, P, O)
2*R_x**2*R_y
>>> Q = O.locatenew('O', 3*R.x + R.y + 2*R.z)
>>> scalar_potential_difference(vectfield, R, P, Q, O)
-2*R_x**2*R_y + 18

检查向量场的类型#

sympy.physics.vector.fieldfunctions.is_conservative(field)[源代码]#

检查字段是否保守。

参数:

领域 :矢量

要检查保守属性的字段

实例

>>> from sympy.physics.vector import ReferenceFrame
>>> from sympy.physics.vector import is_conservative
>>> R = ReferenceFrame('R')
>>> is_conservative(R[1]*R[2]*R.x + R[0]*R[2]*R.y + R[0]*R[1]*R.z)
True
>>> is_conservative(R[2] * R.y)
False
sympy.physics.vector.fieldfunctions.is_solenoidal(field)[源代码]#

检查磁场是否为螺线管。

参数:

领域 :矢量

检查螺线管特性的字段

实例

>>> from sympy.physics.vector import ReferenceFrame
>>> from sympy.physics.vector import is_solenoidal
>>> R = ReferenceFrame('R')
>>> is_solenoidal(R[1]*R[2]*R.x + R[0]*R[2]*R.y + R[0]*R[1]*R.z)
True
>>> is_solenoidal(R[1] * R.y)
False