gpt4 book ai didi

python - 在笛卡尔坐标系中绘制受简单圆形轨道 - 双曲吸引子影响的流场,以极坐标给出 - Python

转载 作者:行者123 更新时间:2023-12-01 09:05:49 24 4
gpt4 key购买 nike

对于一个项目,我可能已经吃不消了,并且必须如标题所示绘制流场或矢量场,如示例中所示: The vector field I need to create, no need for the colours...

极坐标示例中给出的该系统的动力学为:r' = 5 * r^2 * (1-r) 且 φ' = r

系统有一个半径为1、以原点为中心的圆形周期轨道。该轨道是一个双曲吸引子,B = R^2\{(0, 0)}。周期为 T = 2π,渐近相位由 θ(r, φ) = φ − 1/5r + 0.2 精确给出。

As given on page 1511 of this PDF

现在,我已经用谷歌搜索类似的东西好几天了,但似乎无法正确定义轨道,而且我似乎找到的只是有关行星轨道或洛伦兹吸引子的教程。我能想到的最好的办法是:

import numpy as np
import matplotlib.pyplot as plt

x, y = np.mgrid[2:-2:20j, 2:-2:20j]

r = np.sqrt(x**2 + y**2)
phi = np.arctan(y/x)

dr = 5*(r**2)*(1-r)
dphi = r

dx = (5*(r**2)*(1-r)*np.cos(phi)) - ((r**2)*np.sin(phi))
dy = (5*(r**2)*(1-r)*np.cos(phi)) + ((r**2)*np.sin(phi))

fig, ax = plt.subplots()
ax.quiver(x, y, dx, dy)
ax.set(aspect=1, title='NOT GOOD', xlabel='X', ylabel='Y')

plt.show()

现在,这返回了一个糟糕的颤抖图,老实说我不知道​​我是否走在正确的方向。有人愿意解释一下如何正确解决这个问题,这样即使像我这样的白痴也能理解吗?请。我是否将其作为函数输入并绘制流图,我是否会在从极坐标转换为笛卡尔坐标之前或之后定义它?我的数学正确吗?

最佳答案

我认为rotation matrix获取笛卡尔坐标中的向量场被搞乱了:

import numpy as np
import matplotlib.pyplot as plt

x, y = np.mgrid[2:-2:20j, 2:-2:20j]

r = np.sqrt(x**2 + y**2)
phi = np.arctan2(y, x)

dr = 5*(r**2)*(1-r)
dphi = r

dx = dr*np.cos(phi) - dphi*np.sin(phi)
dy = dr*np.sin(phi) + dphi*np.cos(phi)

norm_dr = np.sqrt(dx**2 + dy**2)

fig, ax = plt.subplots()
ax.quiver(x, y, dx/norm_dr, dy/norm_dr)
ax.set(aspect=1, title='GOOD?', xlabel='X', ylabel='Y')

plt.show()

向量也在图中进行标准化,因此它们都具有相同的大小

result graph

关于python - 在笛卡尔坐标系中绘制受简单圆形轨道 - 双曲吸引子影响的流场,以极坐标给出 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52058285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com