0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

磁石の「見えない力」を可視化しよう — 磁力線シミュレーターで理解する磁場の世界

0
Posted at

「磁力線って、N極から出てS極に入るんでしょ?」

そう思っているあなた。正解です。でも、それだけじゃないんです。

実際に磁力線を「自分で配置して描いてみる」と、見えてくるものがあります。磁力線の「絶対に交差しない」という性質。N極だけを2つ置いたときに現れる反発のパターン。そして、あの「8の字」がどうやって生まれるのか──。

今回は、ブラウザ上で動く磁力線シミュレーターを題材に、「点磁極モデル」の数式から実装までを一気に解説します。

「磁力線は、磁場の“地図”である。地図上で道が交差しないのと同じだ。」


なぜ磁力線は「交差しない」のか?

まず、直感的な話をしましょう。

あなたが今、スマホの画面にN極とS極を1つずつ置いたとします。すると、N極から出てS極に入る、滑らかな曲線が現れます。これが磁力線です。

ここで、もう1つN極を追加してみてください。先ほど描かれた磁力線の上に、新しい磁力線が重なるように置いてみるんです。

……どうなりました?

そう、交差しないんです。くっついたり、避け合ったりはしますが、きれいに十字に交わることは絶対にありません。

なぜか?

もし磁力線が交差したら、その交点で「磁場の向き」が2つ存在することになります。北を指す矢印と、東を指す矢印が同じ場所にあるようなもの。そんな場所では、小さな磁石を置いたとき「どっちを向けばいいの?」と迷ってしまい、物理的に矛盾するんです。

この「磁力線は交差しない」という性質は、ガウスの磁気法則という大原則から来ています。数式で言うとこうです。

\oint_S \mathbf{B}\cdot d\mathbf{A}= 0 \quad \Leftrightarrow \quad \text{磁気単極子は存在しない}

「磁気単極子(Nだけ、Sだけの粒子)は存在しない」──つまり、磁力線は必ずループを描いて閉じている。途中で始まったり終わったりしないから、交差する必要がないんですね。


数式で理解する:点磁極が作る磁場

さて、ここからが本番です。シミュレーターは、**「点磁極」**という理想化されたモデルを使っています。

現実の棒磁石はN極とS極がペアで存在し、磁極は面に広がっています。しかし、遠くから見れば1点から磁力線が出ているように見える。これが点磁極モデルの発想です。

点磁極が作る磁束密度 $\mathbf{B}$ は、次の式で表されます。

\mathbf{B}(\mathbf{r}) = \frac{\mu_0}{4\pi}\frac{m}{|\mathbf{r}-\mathbf{r}_0|^2}\hat{r}

各項の意味はこうです。

  • $\mu_0$:真空の透磁率($4\pi \times 10^{-7} , \text{N/A}^2$)。磁場の通りやすさを決める定数。
  • $m$:磁極の強さ(単位は $\text{Wb}$ または $\text{A}\cdot\text{m}$)。N極なら正、S極なら負。
  • $\mathbf{r} - \mathbf{r}_0$:磁極の位置から観測点までのベクトル。
  • $|\mathbf{r}-\mathbf{r}_0|^2$:距離の2乗。逆2乗則で減衰する。
  • $\hat{r}$:磁極から観測点への方向ベクトル(単位ベクトル)。

つまり、「磁極から距離が2倍になれば、磁場の強さは1/4になる」という、クーロンの法則と同じ形をしているんです。

この式、実はとてもシンプルです。分母は距離の2乗、分子は磁極の強さ、掛ける方向ベクトル。これだけ。

複数の磁極がある場合は、それぞれの磁極が作る磁場をベクトル的に足し合わせるだけです。


コードで実装する:JavaScriptで30行

それでは、この計算を実際にコードで書いてみましょう。シミュレーターのコアロジックを、JavaScriptで20〜30行に凝縮します。

// 点磁極が作る磁束密度 B を計算する
function calcB(point, poles) {
    const mu0 = 4 * Math.PI * 1e-7; // 真空の透磁率 [N/A^2]
    let Bx = 0, By = 0;

    for (let p of poles) {
        // 磁極から観測点へのベクトル
        const dx = point.x - p.x;
        const dy = point.y - p.y;
        const r2 = dx*dx + dy*dy; // 距離の2乗

        if (r2 < 1e-10) continue; // 磁極上は計算しない(特異点回避)

        const r = Math.sqrt(r2);   // 距離
        const factor = (mu0 / (4 * Math.PI)) * p.m / r2;

        // 方向ベクトル(単位ベクトル)を掛ける
        Bx += factor * (dx / r);
        By += factor * (dy / r);
    }

    return { x: Bx, y: By };
}

// 磁力線を1本トレースする(ルンゲ=クッタ法で積分)
function traceFieldLine(start, poles, steps=200, stepSize=0.01) {
    let points = [];
    let pos = { x: start.x, y: start.y };

    for (let i = 0; i < steps; i++) {
        points.push({ x: pos.x, y: pos.y });

        // 現在位置の磁場を計算
        const B = calcB(pos, poles);
        const Bmag = Math.sqrt(B.x*B.x + B.y*B.y);

        if (Bmag < 1e-12) break; // 磁場が弱すぎたら停止

        // 正規化して一歩進む
        pos.x += stepSize * (B.x / Bmag);
        pos.y += stepSize * (B.y / Bmag);
    }

    return points;
}

このコードのポイントは3つです。

  1. calcB関数:数式そのまま。各磁極からの寄与をベクトル加算。
  2. traceFieldLine関数:磁場の方向に「一歩ずつ」進んで線を描く。オイラー法の改良版(ルンゲ=クッタの簡易版)で安定化。
  3. 特異点回避:磁極の真上(距離0)では計算しない。現実でも、磁石の表面には「磁極」が面として広がっているからです。

実際のシミュレーターでは、このトレースをN極の周囲に放射状に複数本行い、さらにS極に到達したら止める、という処理を加えています。


数値例で確かめる:N極とS極を1cm離したら?

実際に値を入れて計算してみましょう。

条件:

  • N極($m = +1.0 \times 10^{-6} , \text{Wb}$)を原点 $(0, 0)$ に配置
  • S極($m = -1.0 \times 10^{-6} , \text{Wb}$)を $(0.01 , \text{m}, 0)$ に配置(1cm離す)
  • 観測点をN極とS極の中間点 $(0.005 , \text{m}, 0)$ とする

計算:

N極からの寄与:

\mathbf{B}_N = \frac{4\pi \times 10^{-7}}{4\pi} \cdot \frac{1.0 \times 10^{-6}}{(0.005)^2} \cdot (+1 \, \text{方向})
= 10^{-7} \cdot \frac{1.0 \times 10^{-6}}{2.5 \times 10^{-5}} \cdot \hat{x}
= 4.0 \times 10^{-9} \, \text{T} \quad (\text{向き:+x})

S極からの寄与(S極は負の磁極なので、方向が逆になる):

\mathbf{B}_S = 10^{-7} \cdot \frac{-1.0 \times 10^{-6}}{(0.005)^2} \cdot (-1 \, \text{方向})
= 10^{-7} \cdot \frac{-1.0 \times 10^{-6}}{2.5 \times 10^{-5}} \cdot (-\hat{x})
= 4.0 \times 10^{-9} \, \text{T} \quad (\text{向き:+x})

合計:

\mathbf{B}_{\text{total}} = 8.0 \times 10^{-9} \, \text{T} \quad (\text{向き:+x方向、N→S})

この値をコードで確認してみましょう。

const poles = [
    { x: 0, y: 0, m: 1.0e-6 },
    { x: 0.01, y: 0, m: -1.0e-6 }
];
const mid = { x: 0.005, y: 0 };
const B = calcB(mid, poles);
console.log(`Bx = ${B.x.toExponential(3)} T`); // → "Bx = 8.000e-9 T"

一致しましたね。磁場の強さは $8 , \text{nT}$(ナノテスラ)。地球の磁場(約 $50 , \mu\text{T}$)の6000分の1程度。とても弱いですが、原理を確認するには十分です。


シミュレーターで遊ぶ:3つの実験

それでは、実際に磁力線シミュレーターを開いて、手を動かしてみましょう。

実験1:N極だけを2つ置く(単極子の反発)

  • N極を2つ、5cm程度離して配置。
  • 「磁力線本数/極」を最大に。

何が起きる?
N極から出た磁力線は、もう一方のN極には入れません。なぜなら、N極は磁力線の「出口」だから。結果、磁力線は両方のN極から外側に向かって広がり、互いに避け合うようなパターンになります。

現実との対応:
これは「2つのN極を近づけると反発する」という現象の可視化です。ただし、現実には「N極だけ」の磁石は存在しないので、あくまでモデルの話。

実験2:N極とS極を近づけて「棒磁石」に

  • N極とS極を1cm以内に接近させて配置。
  • 「磁極の強さ」を最大に。

何が起きる?
N極から出た磁力線が、すぐ隣のS極に一直線に入っていきます。まるで磁石の内部を通っているかのような、密な磁力線が観察できます。

現実との対応:
これがまさに棒磁石の磁力線パターン。磁石内部では磁力線はS→Nに流れている(数式上はそう計算される)ので、外部ではN→Sのループができます。

実験3:四重極子(N-S-N-S)を作る

  • 4つの磁極を正方形の頂点に配置:左上N、右上S、左下S、右下N。
  • 磁力線本数を増やして観察。

何が起きる?
磁力線が複雑に絡み合い、8の字クローバーのようなパターンが現れます。双極子(N-Sのペア)では単純だった磁力線が、四重極子ではより複雑な閉ループ構造に。

現実との対応:
これはMRI装置加速器の磁石で使われる「多極磁場」の基礎です。四重極磁場は、荷電粒子を集束させる性質があり、ビームラインの設計に欠かせません。


現場でハマるポイント:適用限界と落とし穴

このシミュレーターは**「真空中の点磁極」**という理想モデルです。実務で使う際の注意点を3つ挙げます。

1. 強磁性体の影響を無視している

現実の設計(モーターやトランス)では、鉄心などの強磁性体が磁力線を集中させます。このシミュレーターでは「空気中」の磁場しか計算しないので、鉄心があると磁力線のパターンが大きく変わります

対策: まずは真空中の磁場を体感し、その上で「材料が入るとどう変わるか」をFEMソフトで確認する。

2. 「磁力線本数」は磁場の強さではない

スライダーで「磁力線本数/極」を増やすと、線が密になります。しかし、これは表示上の分解能が上がっただけで、磁場そのものが強くなったわけではありません。

正しい見方: 磁場の強さは「磁極の強さ」スライダーと、線の間隔(密なら強い)で判断する。

3. 点磁極は「理想」であり「近似」

N極だけを2つ極端に近づけると、現実ではありえないほど強い反発が計算上は発生します。現実の磁石では、磁極は面に分布し、内部で磁力線がループしているからです。

覚えておくこと: このシミュレーターは原理の理解に特化している。精密設計には、磁極分布や材料特性を考慮したFEM解析が必要。


まとめ

今回の記事で押さえてほしいポイントは3つです。

  1. 磁力線は交差しない ── ガウスの磁気法則から導かれる、磁場の基本的な性質。
  2. 点磁極モデルは「逆2乗則」 ── クーロンの法則と同じ形。コードは30行で書ける。
  3. シミュレーターは「原理の体感」に最適 ── 実設計にはFEMが必要だが、まずはここで感覚を掴め。

そして、何より大事なのは 「自分で磁極を配置して、磁力線がどう動くか試してみる」 ことです。

磁力線シミュレーター — ブラウザで即動作、登録不要

NovaSolverでは、今回紹介した磁力線シミュレーターをはじめ、700以上の工学シミュレーターを無料公開しています。

👉 その他のツール一覧はこちら

「電磁気学、難しそう……」と思っていたあなたも、まずは1回クリックしてみてください。磁力線が描かれる瞬間、きっと「あ、そういうことか」と腑に落ちるはずです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?