Рассмотрим следующую задачу:Дан постоянный магнит некоторой формы и нужно получить аналитическое выражение для его магнитного поля B в трёхмерном пространстве.Разберём несколько случаев.Будем считать магнит однородным.

1.Форма магнита прямоугольный параллелепипед(полосовой магнит) размера 2a на 2b на 2c.Поместим начало O декартовой прямоугольной ортогональной системы координат с правой ориентацией базисных векторов(i, j, k ) XOYZ в центр параллелепипеда.Сделаем схематичный рисунок:

Полосовой магнит
Полосовой магнит
Закон Био-Савара-Лапласа
Закон Био-Савара-Лапласа
Начало решения
Начало решения
Конец решения. Аналитическое выражение.
Конец решения. Аналитическое выражение.

2. Цилиндрический магнит(магнит имеет форму цилиндра высоты 2h и радиуса R).Поместим начало O декартовой прямоугольной ортогональной системы координат с правой ориентацией базисных векторов XOYZ в центр цилиндра.Сделаем рисунок:

Цилиндрический магнит
Цилиндрический магнит
Закон Био-Савара-Лапласа.
Закон Био-Савара-Лапласа.
Начало решения.
Начало решения.
Конец решения.
Конец решения.

Теперь напишем на Python код для моделирования и визуализации магнитного поля цилиндрического магнита (код помогала писать нейросеть):

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm

# Параметры магнита
mu_0 = 4 * np.pi * 1e-7  # Тл·м/А
mu = 1.0  # относительная магнитная проницаемость
rho = 1.0  # плотность тока (А/м²)
v = 1.0  # скорость дрейфа электронов (м/с)
R = 0.1  # радиус цилиндра (м)
h = 0.2  # высота цилиндра (м)

# Константа для расчетов
const = mu_0 * mu * rho * v / (4 * np.pi)

def calculate_field(r0, z0):
    # Вспомогательные функции для расчета
    def I1(r0, z0):
        integral = 0
        for r in np.linspace(0, R, 100):
            term1 = (z0 - h) * np.log(
                (np.sqrt((z0 - h)**2 + (R - r0)**2) + R - r0) /
                (np.sqrt((z0 - h)**2 + r0**2) - r0)
            )
            term2 = np.sqrt((z0 - h)**2 + (R - r0)**2) - np.sqrt((z0 - h)**2 + r0**2)
            term3 = (z0 + h) * np.log(
                (np.sqrt((z0 + h)**2 + (R - r0)**2) + R - r0) /
                (np.sqrt((z0 + h)**2 + r0**2) - r0)
            )
            term4 = np.sqrt((z0 + h)**2 + (R - r0)**2) - np.sqrt((z0 + h)**2 + r0**2)
            integral += r * (term1 + term2 + term3 + term4)
        return integral

    def I2(r0, z0):
        integral = 0
        for r in np.linspace(0, R, 100):
            term = (r - r0) / np.sqrt((r - r0)**2 + (z0 - h)**2)
            integral += r * term
        return integral

    # Расчет компонент поля
    Br = const * I1(r0, z0)
    Bz = const * I2(r0, z0)
    return Br, Bz

# Создание сетки для визуализации
r = np.linspace(0, 2*R, 50)
z = np.linspace(-2*h, 2*h, 50)
R_grid, Z_grid = np.meshgrid(r, z)

Br_grid = np.zeros_like(R_grid)
Bz_grid = np.zeros_like(Z_grid)

for i in range(R_grid.shape[0]):
    for j in range(R_grid.shape[1]):
        Br_grid[i,j], Bz_grid[i,j] = calculate_field(R_grid[i,j], Z_grid[i,j])

# Визуализация
plt.figure(figsize=(14, 8))

# График радиальной компоненты
plt.subplot(121)
plt.pcolormesh(R_grid, Z_grid, Br_grid, cmap=cm.coolwarm)
plt.colorbar(label='Br (Тл)')
plt.title('Радиальная компонента магнитного поля')
plt.xlabel('r (м)')
plt.ylabel('z (м)')
plt.axis('equal')

# График осевой компоненты
plt.subplot(122)
plt.pcolormesh(R_grid, Z_grid, Bz_grid, cmap=cm.coolwarm)
plt.colorbar(label='Bz (Тл)')
plt.title('Осевая компонента магнитного поля')
plt.xlabel('r (м)')
plt.ylabel('z (м)')
plt.axis('equal')

plt.tight_layout()
plt.show()

Результат работы программы видно здесь:

Магнитное поле цилиндрического магнита
Магнитное поле цилиндрического магнита

Из графиков видна неравномерность распределения магнитного поля в цилиндрическом магните, что можно объяснить сложной зависимостью B(r, z), а также возможными ошибками при забивании сложных аналитических формул в программу. Предоставляю читателям возможность найти их и исправить.

Таким образом, в данной статье получены аналитические выражения для магнитного поля полосового и цилиндрического магнитов, написан код для визуализации полученных результатов.

Список литературы:

  1. Л.Д.Ландау, Е. М. Лифшиц т. II Теория поля ,1967 г.

  2. Слесарев Ю. Н., Малышев Б. В., Борисова А. А., Воронцов А. А. «Математическое моделирование магнитных полей постоянных магнитов цилиндрической формы и эквивалентных им соленоидов» // «Модели, системы, сети в экономике, технике, природе и обществе». — 2016. — № 4 (20). — С. 150–157.

  3. Слесарев Ю. Н., Воронцов А. А. «Исследование магнитных полей постоянных магнитов цилиндрической формы и соленоидов и сравнение полученных результатов» // «XXI век: итоги прошлого и проблемы настоящего плюс». — 2016. — № 6 (34). — С. 110–115. 

  4. Черкасова О. А. «Исследование магнитного поля постоянного магнита с помощью компьютерного моделирования» // «Гетеромагнитная микроэлектроника». — 2014. — Вып. 17. — С. 112–120.

  5. Черкасова О. А., Черкасова С. А. «Компьютерное моделирование магнитного поля системы подмагничивания гетеромагнитного устройства» // «ИНЖИНИРИНГ ТЕХНО 2015»: сб. тр. III Междунар. научно-практ. конф. — Саратов: Издательский дом «Райт-Экспо», 2015. — Т. 2. — С. 97–103. 

Комментарии (2)


  1. R9A_019
    15.07.2026 16:27

    Ну в магнитах ток не течет. Задачку вы решили, как будто течет, КЭД вам в помощь, точно не помню, 4 том ландавшица.


    1. Maximka200 Автор
      15.07.2026 16:27

      мы как бы заменяем магнит на эквивалентный соленоид