Стаття
Електромагнетизм · ⏱ ≈ 16 хв читання

Закон Кулона та електричні поля

Електростатична сила між точковими зарядами підпорядковується закону обернених квадратів — тій самій математичній формі, що й гравітація. Ми виводимо електричне поле, потенціал і теорему Гаусса, будуємо силові лінії для довільних конфігурацій зарядів та реалізуємо дерево Барнса-Гата за O(N log N) для симуляцій електростатики багатьох тіл.

1. Закон Кулона

Шарль-Огюстен де Кулон виміряв силу між зарядженими сферами у 1785 році й виявив, що вона підпорядковується закону обернених квадратів:

F = k |q₁ q₂| / r² (модуль) Векторна форма: F₁₂ = k q₁ q₂ (r̂₁₂) / r₁₂² k = 1/(4πε₀) ≈ 8.988 × 10⁹ Н·м²/Кл² ε₀ = 8.854 × 10⁻¹² Ф/м (діелектрична проникність вакууму)

Однойменні заряди відштовхуються (F > 0), різнойменні притягуються (F < 0). Сила спадає як 1/r² — на вдвічі більшій відстані сила вчетверо слабша. Це той самий степеневий закон, що й ньютонівська гравітація; різниця в тому, що електричні заряди можуть бути додатними або від'ємними, даючи і притягання, і відштовхування.

Гравітація проти електростатики

Обидві — закони обернених квадратів. Але електромагнітна сила між електроном і протоном у ~10³⁶ разів сильніша за їхнє гравітаційне притягання.

Квантування заряду

Електричний заряд квантований: q = n · e, де e = 1.602 × 10⁻¹⁹ Кл. Кварки несуть ±e/3, але вільні заряди завжди мають цілі кратні e.

Збереження

Повний електричний заряд зберігається в усіх процесах. Народження пар створює рівні + та − заряди; анігіляція пар знищує їх.

У середовищі

Замініть ε₀ на ε = εᵣε₀. Вода (εᵣ ≈ 80) суттєво екранує електростатичні сили — це критично для біології та іонних розчинів.

2. Електричне поле та суперпозиція

Електричне поле E(r) у точці r, створене точковим зарядом q у початку координат, — це сила на одиницю пробного заряду:

E(r) = k q r̂ / r² [Н/Кл = В/м] Суперпозиція (N зарядів): E_total(r) = Σᵢ k qᵢ (r − rᵢ) / |r − rᵢ|³

Наївна сума за всіма парами має складність O(N²) — неприйнятну для великих N. Для неперервного розподілу з густиною заряду ρ(r'):

E(r) = k ∫ ρ(r') (r − r') / |r − r'|³ dV'

Електричне поле — це векторне поле: у кожній точці простору воно має і модуль, і напрямок. Силові лінії (див. розділ 5) геометрично візуалізують це поле.

3. Електричний потенціал та енергія

Електричний потенціал V — це скалярна величина, від'ємний градієнт якої є полем:

V(r) = k q / r (один точковий заряд) E = −∇V → Eₓ = −∂V/∂x, Eᵧ = −∂V/∂y Потенціальна енергія заряду q за потенціалу V: U = q V Потенціальна енергія системи з двох зарядів: U₁₂ = k q₁ q₂ / r₁₂

Оскільки E є потенціальним (∮E·dl = 0 в електростатиці), робота з переміщення заряду між двома точками не залежить від шляху й залежить лише від різниці потенціалів: W = q(V_B − V_A).

Рівняння Пуассона пов'язує потенціал із густиною заряду: ∇²V = −ρ/ε₀. У вільному просторі (ρ = 0) воно зводиться до рівняння Лапласа ∇²V = 0 — використовується у крайових задачах для конденсаторів і провідників.

4. Теорема Гаусса

Теорема Гаусса — одне з чотирьох рівнянь Максвелла, що дає потужний спрощений шлях за наявності симетрії:

∮ E · dA = Q_enc / ε₀ Диференціальна форма: ∇ · E = ρ / ε₀

Три канонічні застосування з гаусовими поверхнями:

5. Силові лінії та еквіпотенціали

Силові лінії електричного поля — це інтегральні криві E(r): вони починаються на додатних зарядах, закінчуються на від'ємних і ніколи не перетинаються. Їхня густина вказує на напруженість поля. Еквіпотенціальні поверхні усюди перпендикулярні до силових ліній.

Побудова силової лінії від початкової точки r₀:

dr/ds = E(r) / |E(r)| (s = параметр довжини дуги) Крок Ейлера: r_{n+1} = r_n + h · E(r_n) / |E(r_n)| Використовуйте RK4 для гладких ліній з більшими кроками h

Для диполя (+q у −d, −q у +d) поле має характерний візерунок замкнених ліній у формі вісімки. Дипольний момент p = qd напрямлений від − до + заряду; дальнє поле спадає як 1/r³ і залежить від кута: E ~ (1/r³)(2cosθ r̂ + sinθ θ̂).

6. Провідники та екранування

В електростатичній рівновазі вільні заряди у провіднику перерозподіляються, доки E = 0 всюди всередині. Наслідки:

Ємність C провідника вимірює, скільки заряду він утримує на одиницю потенціалу: C = Q/V. Для плоского конденсатора з площею пластин A та відстанню d: C = ε₀A/d. Додавання діелектрика з проникністю εᵣ збільшує C у εᵣ разів.

7. JavaScript — електростатика Барнса-Гата

Для N заряджених частинок пряме підсумовування має складність O(N²). Алгоритм Барнса-Гата будує квадродерево (2D) або октодерево (3D) та апроксимує віддалені кластери одним «макрозарядом», знижуючи складність до O(N log N).

// Вузол квадродерева Барнса-Гата
class BHNode {
  constructor(cx, cy, size) {
    this.cx = cx; this.cy = cy; this.size = size;
    this.totalQ = 0; this.comX = 0; this.comY = 0;
    this.children = null; this.particle = null;
  }

  insert(p) {
    if (!this.totalQ) {
      this.particle = p;
      this.totalQ = p.q;
      this.comX = p.x; this.comY = p.y;
      return;
    }
    if (!this.children) this.subdivide();
    if (this.particle) {
      this._insertIntoChild(this.particle);
      this.particle = null;
    }
    this._insertIntoChild(p);
    // оновлюємо центр заряду
    this.comX = (this.comX * this.totalQ + p.x * p.q) / (this.totalQ + p.q);
    this.comY = (this.comY * this.totalQ + p.y * p.q) / (this.totalQ + p.q);
    this.totalQ += p.q;
  }

  subdivide() {
    const h = this.size / 2;
    this.children = [
      new BHNode(this.cx - h/2, this.cy - h/2, h),
      new BHNode(this.cx + h/2, this.cy - h/2, h),
      new BHNode(this.cx - h/2, this.cy + h/2, h),
      new BHNode(this.cx + h/2, this.cy + h/2, h),
    ];
  }

  _insertIntoChild(p) {
    const idx = (p.x > this.cx ? 1 : 0) + (p.y > this.cy ? 2 : 0);
    this.children[idx].insert(p);
  }

  // Обчислюємо електричну силу на частинку p (theta = коефіцієнт розкриття, ~0.5)
  force(p, theta, k = 8.988e9) {
    if (!this.totalQ) return {fx: 0, fy: 0};
    const dx = this.comX - p.x, dy = this.comY - p.y;
    const r2 = dx * dx + dy * dy;
    if (r2 === 0) return {fx: 0, fy: 0};
    const r = Math.sqrt(r2);
    // Критерій Барнса-Гата: розглядаємо як один макрозаряд, якщо s/r < theta
    if (!this.children || this.size / r < theta || this.particle) {
      const mag = k * p.q * this.totalQ / r2;
      return {fx: mag * dx / r, fy: mag * dy / r};
    }
    let fx = 0, fy = 0;
    for (const child of this.children) {
      const f = child.force(p, theta, k);
      fx += f.fx; fy += f.fy;
    }
    return {fx, fy};
  }
}

// Трасувальник силових ліній (RK4)
function traceFieldLine(charges, x0, y0, step = 2, maxSteps = 500) {
  const pts = [{x: x0, y: y0}];
  let x = x0, y = y0;
  const k = 1; // нормовані одиниці
  for (let i = 0; i < maxSteps; i++) {
    let ex = 0, ey = 0;
    for (const c of charges) {
      const dx = x - c.x, dy = y - c.y;
      const r3 = (dx * dx + dy * dy) ** 1.5;
      if (r3 < 1e-6) continue;
      ex += k * c.q * dx / r3;
      ey += k * c.q * dy / r3;
    }
    const mag = Math.hypot(ex, ey);
    if (mag < 1e-10) break;
    x += step * ex / mag;
    y += step * ey / mag;
    pts.push({x, y});
  }
  return pts;
}

8. Застосування

Зв'язок: Симуляція гравітації N тіл використовує той самий алгоритм Барнса-Гата, застосований до гравітаційних сил (замініть kq₁q₂ на −Gm₁m₂).
🔊 Відкрити фігури Хладні →