Я, возможно, откусил больше, чем могу прожевать для проекта, и мне, как указано в заголовке, нужно нарисовать поле потока или векторное поле, как показано в примере:
Векторное поле, которое мне нужно создать, цвета не нужны ...
Динамика этой системы, приведенная в примере с полярными координатами:
r '= 5 * r ^ 2 * (1-r) и φ' = r
Система имеет круговую периодическую орбиту с радиусом 1 и центрирована в начале координат. Орбита представляет собой гиперболический аттрактор с B = R ^ 2 \ {(0, 0)}. Период равен T = 2π, а асимптотическая фаза задается точно как θ (r, φ) = φ - 1 / 5r + 0,2.
Как указано на стр. 1511 настоящего документа 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()
Теперь, это возвращает плохой сюжет колчана, и я, честно говоря, не знаю, иду ли я даже в правильном направлении. Кто-нибудь захочет объяснить, как правильно решить эту проблему, чтобы даже такой придурок, как я, мог понять? Пожалуйста. Введу ли я его в качестве функции и выполнил ли это, я бы определил его до или после преобразования из полярности в декартову? Правильна ли моя математика?