Линии тока и силовые линии
Линия тока — это маршрут частицы, которая в каждой точке движется туда, куда показывает поле.
Линия тока (силовая линия) — кривая, касательная к которой в каждой точке совпадает с вектором поля $\vec F$.
Уравнение линии тока
Если поле — это скорость течения, то линия тока — траектория щепки, брошенной в поток. Условие «касательная коллинеарна полю» записывают так:
$$\frac{dx}{P} = \frac{dy}{Q} = \frac{dz}{R}$$
Это система дифференциальных уравнений. Аналитически она решается редко, зато численно — легко: шагаем маленькими шажками вдоль вектора поля.
Метод Эйлера
Простейший численный интегратор: из точки $\vec r$ делаем шаг по направлению поля.
$$\vec r_{k+1} = \vec r_k + \Delta t\,\vec F(\vec r_k)$$
Трассируем линию тока вращения
import math
# Поле вращения F = (-y, x): линии тока — окружности
def field(x, y):
return (-y, x)
x, y = 1.0, 0.0
dt = 0.01
steps = int(2*math.pi / dt) # один оборот
for _ in range(steps):
fx, fy = field(x, y)
x += dt * fx
y += dt * fy
print("Старт: (1.000, 0.000)")
print("Финиш: (%.3f, %.3f)" % (x, y))
print("Радиус сохранён ~", round(math.hypot(x, y), 3))Вывод:
Старт: (1.000, 0.000) Финиш: (1.032, -0.004) Радиус сохранён ~ 1.032
Частица обошла полный круг и вернулась почти в старт — линия тока поля вращения действительно окружность. Радиус чуть подрос (1.0 → 1.032): это накопленная погрешность метода Эйлера, о которой ниже.
Как работает под капотом
Метод Эйлера накапливает ошибку: для поля вращения он чуть «раздувает» радиус, потому что идёт по хорде, а не по дуге. Уменьшив $dt$, мы уменьшим ошибку. Существуют точнее интеграторы (Рунге-Кутты), но для иллюстрации Эйлера достаточно — он наглядно показывает, что значит «двигаться вдоль поля».
Частые ошибки
- Путать линию тока с линией уровня — это разные объекты (одна вдоль поля, другая поперёк градиента).
- Брать большой шаг $dt$ — траектория уедет от истинной.
- Думать, что линии тока пересекаются. В обычной точке через неё проходит ровно одна линия.
Итог
- Линия тока касается поля в каждой точке — это путь частицы.
- Уравнение: $dx/P = dy/Q = dz/R$.
- Численно строится методом Эйлера: шаг вдоль вектора поля.