首先,是的,我已经阅读了有关此问题的先前线程和文档,例如How to make a quiver plot in polar coordinates。这对我没有帮助。让我向您展示我正在使用的内容,然后是一些代码。 这是一个会聚的运河,它显示了一个速度/矢量场。显然我只有一个径向分量,但它会随着角度 theta 而变化。当我们向下(流)向 alpha 时,这种箭头模式会重复。所以它应该很容易绘制,对吧。这是径向速度分量的方程:
现在,在我展示我的代码之前,我已经为多个 theta 存储了 f(theta) 的值。这个函数 f 必须进行数值求解,我将其存储为向量 u[0]。这就是我现在在我的代码中所做的:
radii = np.linspace(0.1,1,11)
thetas = np.linspace(-alpha,alpha,20)
theta, r = np.meshgrid(thetas, radii)
q = 0.0001
dr = [-q/x for x in radii]*u_sol[0]
dt = 0
f = plt.figure()
ax = f.add_subplot(111, polar=True)
ax.quiver(theta, r, dr * cos(theta) - dt * sin (theta), dr * sin(theta) +
dt* cos(theta))
变量 dr 的第五个表达式是拼命尝试将网格网格中所有固定长度的 r 与 u[0] 相乘,但它们的维度不同,因此它不起作用。所以我被困住了。
我的问题是如何获得汇流管的矢量场?我真的不能把最后的部分放在一起,我要操纵网格吗?
编辑上面的代码取自我文本开头的链接。我对 dr 和 dt 做了一些修改,除此之外什么都没有。