
您可以
sympy.curl()用来计算矢量场的卷曲。
范例 :
假设 F (x,y,z)= y 2 z i -xy j + z 2 k ,则:
y
将会是R[1]
,x
是R[0]
和z
是R[2]
- 的单位向量 我 , Ĵ , ķ 3个轴,将分别是
R.x
,R.y
,R.z
。
计算矢量场卷曲 的代码为:
from sympy.physics.vector import Referenceframefrom sympy.physics.vector import curlR = Referenceframe('R')F = R[1]**2 * R[2] * R.x - R[0]*R[1] * R.y + R[2]**2 * R.zG = curl(F, R)在那种情况下,G将等于
R_y**2*R.y + (-2*R_y*R_z - R_y)*R.z或换句话说,
G = 0 i + y 2 j +(-2yz-y) k 。
要绘制它, 您需要将以上结果转换为3个独立的函数;u,v,w
(下面的示例改编自该matplotlib示例):
from mpl_toolkits.mplot3d import axes3dimport matplotlib.pyplot as pltimport numpy as npfig = plt.figure()ax = fig.gca(projection='3d')x, y, z = np.meshgrid(np.arange(-0.8, 1, 0.2),np.arange(-0.8, 1, 0.2),np.arange(-0.8, 1, 0.8))u = 0v = y**2w = -2*y*z - yax.quiver(x, y, z, u, v, w, length=0.1)plt.show()
最终结果是这样的:
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)