从矢量场计算曲面

2024-10-01 02:38:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python中有一个vectofield,它显示了实验几何体上粒子的速度分布。对于每个位置,在两个数组vxvy中,在xy方向上有一个速度

人们可以用箭图来说明:quiverplot of vectorfield

现在我要计算导致这个速度分布的曲面z(x,y)。z可以稍后通过比例因子重新缩放为阿片剂值。 例如,对于中心部分,它应该是z的简单线性增加。对于其他部分,我想应该会导致一些循环。 我想沿着x和y轴做求和运算。 但这并没有导致预期的结果。你知道吗

你有什么建议或想法吗?你知道吗

下面是一些来自x=[5,15]和y[0,4]的示例数据:

vy=np.array([
   [ 0.06145939,  0.0570322 ,  0.04584799,  0.01882581,  0.        , 0.        ,  0.        , -0.01882581, -0.04584799, -0.0570322 ],
   [ 0.05489626,  0.04700205,  0.03006774,  0.00924726,  0.        , 0.        ,  0.        , -0.00924726, -0.03006774, -0.04700205],
   [ 0.04715306,  0.03727663,  0.02143105,  0.00589854,  0.        , 0.        ,  0.        , -0.00589854, -0.02143105, -0.03727663],
   [ 0.04019211,  0.03012073,  0.01641931,  0.00433099,  0.        , 0.        ,  0.        , -0.00433099, -0.01641931, -0.03012073]])


vy=np.array([
   [-0.02143105, -0.03006774, -0.04584799, -0.05832448, -0.0665558, -0.0665558 , -0.0665558 , -0.05832448, -0.04584799, -0.03006774],
   [-0.03727663, -0.04700205, -0.0570322 , -0.06378726, -0.0665558 , -0.0665558, -0.0665558 , -0.06378726, -0.0570322 , -0.04700205],
   [-0.04715306, -0.05489626, -0.06145939, -0.0653094 , -0.0665558 , -0.0665558, -0.0665558 , -0.0653094 , -0.06145939, -0.05489626],
   [-0.05314604, -0.05899633, -0.06346224, -0.06585704, -0.0665558 , -0.0665558 , -0.0665558 , -0.06585704, -0.06346224, -0.05899633]])

Tags: np粒子线性数组方向中心array速度
1条回答
网友
1楼 · 发布于 2024-10-01 02:38:37

下面是一个简单的近似值:

# calculate midpoints
vxm = 0.5 * (vx[:, 1:] + vx[:, :-1])
vym = 0.5 * (vy[1:, :] + vy[:-1, :])
# integrate
VX, VY = np.zeros_like(vx), np.zeros_like(vy)
VX[:, 1:] = np.cumsum(vxm, axis=-1)
VY[1:, :] = np.cumsum(vym, axis=0)
# compare xy and yx
VYX = VY[:, 0:1] + VX
VXY = VX[0:1, :] + VY
np.nanmax(np.abs(VXY - VYX) / (np.abs(VXY) + np.abs(VYX)))
# 0.12076532205227976     <- not great, but ...
# take mean
E = 0.5 * (VYX+VXY)
E
# array([[ 0.        ,  0.0592458 ,  0.11068589,  0.14302279,  0.1524357 ,
#          0.1524357 ,  0.1524357 ,  0.14302279,  0.11068589,  0.0592458 ],
#        [-0.02935384,  0.02115311,  0.059688  ,  0.08087732,  0.08514562,
#          0.08514562,  0.08514562,  0.08087732,  0.059688  ,  0.02115311],
#        [-0.07156868, -0.02979605,  0.        ,  0.01554169,  0.01796908,
#          0.01796908,  0.01796908,  0.01554169,  0.        , -0.02979605],
#        [-0.12171823, -0.08687318, -0.0628763 , -0.05054064, -0.04899143,
#         -0.04899143, -0.04899143, -0.05054064, -0.0628763 , -0.08687318]])

相关问题 更多 >