Стаття
Спортивна наука · Гідродинаміка · ⏱ ≈ 11 хв читання · Останнє оновлення: 23 червня 2026 р.

Ефект Магнуса — чому обертові м'ячі викривляють траєкторію в повітрі

Коли тенісист б'є потужний форхенд із верхнім обертанням, а футболіст закручує штрафний навколо стінки, вони використовують ефект Магнуса: обертання об'єкта у рідині породжує бічну силу, перпендикулярну і до швидкості, і до осі обертання. Цей ефект, описаний Генріхом Магнусом у 1852 році, тепер пояснюється теорією циркуляції, асиметрією примежового шару та — для шорстких м'ячів — явищем коливання за швом. Його кількісний опис відкриває шлях до реалістичної симуляції польоту м'яча для будь-якого спортивного застосування.

1. Фізичний механізм

Обертовий м'яч захоплює навколо себе примежовий шар повітря завдяки в'язкому тертю. З того боку, де обертання додається до швидкості потоку, примежовий шар має більше кінетичної енергії — відрив затримується, слід відхиляється, і за третім законом Ньютона м'яч штовхається до боку з нижчим тиском.

Верхнє обертання (м'яч обертається вперед): Верхня поверхня: обертання + потік → висока швидкість → низький тиск Низ: обертання протидіє потоку → ранній відрив → високий тиск Сумарна сила: УНИЗ → м'яч провалюється раніше, ніж лише від гравітації Зворотне обертання (м'яч обертається назад): Сумарна сила: УГОРУ → м'яч «зависає» (м'яч для гольфу, свічка в настільному тенісі) Бічне обертання (вісь обертання вертикальна): Сумарна сила: БІЧНА → бананоподібні дуги (футбол, крученка в бейсболі)

2. Теорема Кутта-Жуковського

Для ідеального (нев'язкого, нестисливого) 2D-потоку навколо обертового циліндра циркуляція Γ (повний обертальний потік) дає підіймальну силу на одиницю розмаху:

Циркуляція навколо циліндра радіусом R, кутова швидкість ω: Γ = 2π R² ω [м²/с] Підіймальна сила Кутта-Жуковського на одиницю розмаху: L' = ρ U Γ [Н/м] де ρ = густина повітря, U = швидкість потоку Для сфери (3D), емпірично: F_Magnus = ρ · Γ · U · L_eff F_Magnus = C_L · (ρ/2) · U² · A де C_L залежить від параметра обертання Sp = R·ω / U

3. Сила Магнуса та коефіцієнт підіймальної сили

Параметр обертання: Sp = R·ω / U (безрозмірний) R = радіус м'яча, ω = швидкість обертання [рад/с], U = швидкість Емпіричний коефіцієнт підіймальної сили (підходить для Sp ~ 0.1–1.5): C_L ≈ 0.50 · Sp (теніс, гладкі сфери) C_L ≈ 1/(2 + 1/Sp) (крикет, шорсткіші поверхні) Вектор сили Магнуса: F_M = C_L · (ρ/2) · π R² · U² · n̂ n̂ = (ω̂ × v̂) (одиничний вектор, перпендикулярний і до осі обертання, і до швидкості) Типові значення: Тенісна подача 200 км/год, 2000 об/хв верхнього обертання: Sp ≈ 0.135 → C_L ≈ 0.067 → F_M ≈ 2.1 Н (вага м'яча ~0.6 Н) Футбольний штрафний 100 км/год, 600 об/хв бічного обертання: Sp ≈ 0.11 → C_L ≈ 0.055 → F_M ≈ 1.2 Н

4. Повні рівняння траєкторії

Сили на м'яч у 3D: Гравітація: F_g = −m·g·ẑ Опір: F_d = −(1/2)·ρ·C_d·A·|v|·v (протидіє швидкості) Магнус: F_M = (1/2)·ρ·C_L·A·|v|·(ω̂ × v) Рівняння руху: m·(dv/dt) = F_g + F_d + F_M dx/dt = v Де: A = π R² (площа поперечного перерізу) C_d ≈ 0.47 (шорстка сфера), 0.25 (м'яч для гольфу з ямочками) C_L = f(Sp) Чисельне інтегрування: RK4 або Верле Крок часу: 1–5 мс достатньо для більшості застосувань

5. Спадання обертання в польоті

Обертання не є сталим — аеродинамічний момент уповільнює обертання впродовж усього польоту:

Момент сил на обертову сферу від в'язкого опору: τ = −C_M · ρ · R³ · ω² (протидіє напрямку обертання) Коефіцієнт моменту обертання C_M ≈ 64·Sp / Re (ламінарний режим) Re = 2R·U / ν Кутове сповільнення: dω/dt = τ / I де I = (2/5)·m·R² (суцільна сфера) Типове спадання: Тенісний м'яч, удар при 3000 об/хв: прибуває ~2200 об/хв через 1 с Футбол: обертання спадає на ~15% за повний політ М'яч для пінг-понгу (дуже легкий): обертання менш критичне, спадає повільно

6. Аналіз за видами спорту

Теніс

Потужне верхнє обертання (форхенд Рафаеля Надаля ~3 200 об/хв) створює різкий провал після сітки. Слайс зі зворотним обертанням ковзає низько. Сила Магнуса може зрівнятися з вагою при високих швидкостях обертання.

Футбол

Штрафний Роберто Карлоса (1997): бічне обертання ≈ 600 об/хв, 100+ км/год. М'яч спершу зовні стінки, викривився на 3 м убік. Класична теорема Кутта-Жуковського в дії.

Бейсбол

Крученка: верхнє обертання «12–6» провалюється на ~0.5 м більше, ніж швидкий м'яч. Зворотне обертання чотиришовного фастболу зменшує провал. Асиметрія через шви створює пізній рух.

Гольф

Зворотне обертання драйвера 2 000–3 000 об/хв створює значну підіймальну силу. Ямочки роблять примежовий шар турбулентним, зменшуючи опір і посилюючи підіймальну силу на швидкостях м'яча для гольфу.

7. JavaScript-симулятор траєкторії м'яча

// 3D-траєкторія м'яча з ефектом Магнуса + опором за допомогою RK4
function vec3(x, y, z) { return {x, y, z}; }
const V = {
  add: (a,b) => vec3(a.x+b.x, a.y+b.y, a.z+b.z),
  scale: (a,s) => vec3(a.x*s, a.y*s, a.z*s),
  len: (a) => Math.hypot(a.x, a.y, a.z),
  norm: (a) => { const l=V.len(a)||1e-12; return V.scale(a,1/l); },
  cross: (a,b) => vec3(a.y*b.z-a.z*b.y, a.z*b.x-a.x*b.z, a.x*b.y-a.y*b.x)
};

function ballTrajectory({
  v0,      // початкова швидкість {x,y,z} [м/с]
  omega,   // вектор обертання {x,y,z} [рад/с]
  mass,    // [кг]
  radius,  // [м]
  Cd = 0.47, // коефіцієнт опору
  dt = 0.005
}) {
  const rho = 1.204; // густина повітря [кг/м³]
  const A = Math.PI * radius ** 2;

  function CL(speed) {
    const sp = radius * V.len(omega) / (speed || 1e-9);
    return 0.5 * sp; // лінійна модель
  }

  function accel(pos, vel) {
    const speed = V.len(vel);
    const factor = (0.5 * rho * A) / mass;
    // Опір
    const drag = V.scale(vel, -Cd * factor * speed);
    // Магнус: F = rho/2 * A * CL * |v| * (omega_hat x v)
    const omHat = V.norm(omega);
    const magnus = V.scale(V.cross(omHat, vel), CL(speed) * factor * speed);
    // Гравітація (−y — це вниз)
    const grav = vec3(0, -9.81, 0);
    return V.add(V.add(drag, magnus), grav);
  }

  let pos = vec3(0,1,0); // старт 1 м над землею
  let vel = v0;
  const path = [{...pos}];

  while (pos.y >= 0) { // крок RK4
    const k1v = accel(pos, vel);
    const k1p = vel;
    const k2v = accel(V.add(pos, V.scale(k1p, dt/2)), V.add(vel, V.scale(k1v, dt/2)));
    const k2p = V.add(vel, V.scale(k1v, dt/2));
    const k3v = accel(V.add(pos, V.scale(k2p, dt/2)), V.add(vel, V.scale(k2v, dt/2)));
    const k3p = V.add(vel, V.scale(k2v, dt/2));
    const k4v = accel(V.add(pos, V.scale(k3p, dt)), V.add(vel, V.scale(k3v, dt)));
    const k4p = V.add(vel, V.scale(k3v, dt));
    vel = V.add(vel, V.scale(V.add(V.add(V.add(k1v, V.scale(k2v,2)), V.scale(k3v,2)), k4v), dt/6));
    pos = V.add(pos, V.scale(V.add(V.add(V.add(k1p, V.scale(k2p,2)), V.scale(k3p,2)), k4p), dt/6));
    path.push({...pos});
  }
  return path;
}

// Футбольний штрафний — бічне обертання
const path = ballTrajectory({
  v0: vec3(27, 3, 0),      // ~100 км/год уперед, трохи вгору
  omega: vec3(0, -62.8, 0),  // ~600 об/хв бічного обертання (вісь y)
  mass: 0.43, radius: 0.11
});
const land = path[path.length-1];
console.log(`Range ${land.x.toFixed(1)} m, lateral deviation ${land.z.toFixed(2)} m`);

8. Ротори Флеттнера — судно Магнуса

Антон Флеттнер у 1924 році побудував судно, що рухалося завдяки високим обертовим циліндрам замість вітрил. Сила Магнуса від вітру, що обтікав обертові циліндри, забезпечувала рушійну силу, з відношенням тяги до опору, кращим за звичайні вітрила за певних кутів вітру.

💧 Відкрити SPH-рідину →