最近いじっていた学習ラボと、「端」の話

触ってわかるラボを作って・点検する日々。直していて何度も突き当たったのは、いつも画面の「端」── 境界条件だった。そして境界は、シミュレーションだけでなく、量子化や倍音 ── 基礎物理が物理になる場所でもあった。


tnks1407.com には「作っているものの過程は、tnkblog に書き残してる」と書いてある。なのに、肝心の過程をしばらく書いていなかった。気づかせてもらったので、ここ最近いじっていたものを、まとめて記録しておくよ。

最近やっていたこと

ひとことで言うと、「触ってわかる学習ラボ」の整備と点検ばかりしていた。

  • 保存則の解説シリーズ:力学から波動、そして「場」へ。∮(フラックス)や ∇²(ラプラシアン)、最後はグリーン関数まで、図と小さな widget で一歩ずつ。
  • PixLab:写真を「数の格子」に分解して、ぼかし・エッジ・大津の二値化・減色を 1 マスずつ。
  • 反応拡散ラボ:Gray-Scott の式だけで、斑点や迷路の模様が自分で育つのを GPU で。
  • 電源ワークベンチ:Buck/Boost の平均化モデルと、Boost の RHP 零点(逆応答)。
  • 各ページに「改善を送る」口と、みんなのコメント欄も足した。

新しく作るより、すでにあるものの説明と中身を、もう一度ちゃんと見る時間が多かった。

直していて、何度も同じ所で止まった

点検していて、不思議と毎回つまずく場所があった。**「端」**だ。

PixLab では、3×3 の窓が画像の端で外にはみ出す。外のマスを何で埋める? コードを読んだら「いちばん近い端の画素を複製」していた。── でも、それがどこにも書いてなかった。

反応拡散ラボでは、画面の端が周期境界になっていた。端に種を撒くと、反対側の端につながる。これも説明が無かった。

保存則の解説に至っては、∮ E·n dl ── 閉じた境界をぐるっと一周する積分そのものが主役で、結局ずっと「端」の話をしていた。

端は、抽象と現実の継ぎ目

気づいたのは、教材でいちばん説明をサボりがちなのが「端」だ、ということ。中央のマスは、式がきれいに回る。気持ちいい。でも端では、「無限に続く理想の格子」という抽象が、「有限の画面」という現実とぶつかる。そこをどう繕うか(端を複製する/反対側とつなぐ/外を 0 と置く)で、結果が静かに変わってしまう。

しかもその選択は、たいてい何も言わずにコードの奥に埋まっている。読む人には見えない。

だから今回、各ラボに「画面の端では ◯◯ として扱っています」を一行ずつ足した。境界を明記するのは、私がやりたい「中身が見える」「誤魔化さない」の、ちゃんと一部だと思う。正解を渡すより、どこで前提が切れるかを手渡したいから。

…と、ここまではシミュレーションの話。端は「選ばなきゃいけない面倒」だった。でも、これを書いていて思い出したことがある。基礎物理だと、境界はむしろ、面白い物理が生まれる場所なんだ。

端こそ、物理がいちばん物理になる場所

同じ方程式でも、境界条件が違えば、まるで別の世界になる。

箱に閉じ込めた波 ── 壁で「ここでは振幅ゼロ」と課すと、そこにちょうど収まる波長だけが許される。結果、エネルギーがとびとびになる。量子力学の「量子」、あの離散性は、もとをたどれば境界値問題の答えなんだ。原子のスペクトル線(とびとびの色)も、根は同じ。

両端を固定した弦も同じ。固定端という境界が、収まる波(基本振動と、その倍音)を選ぶ。倍音列 ── つまり音楽は、境界条件が決めている。オルガンの管も、太鼓の膜も、そう。

場の側でもそうだった。一点を突いたときの返事=グリーン関数は、自由空間接地した箱とでまるで違う形になる(これは保存則の解説でも一度だけ触れた)。同じ「源への応答」なのに、周りの境界が答えを書き換える。

整理すると、こういうことだと思う。

方程式は「各点での、局所のルール」。 境界条件は「世界の残り全部が、その有限の問題に手を伸ばしてくる所」。

法則だけでは、物理は決まらない。法則+境界で、はじめて“この弦・この原子・この空洞”になる。だから境界は、抽象(無限に続く理想)と現実(有限のこの系)の継ぎ目であると同時に ── 物理がいちばん物理らしくなる、主役の場所でもある。

…シミュの端っこを直す話のつもりが、ずいぶん遠くまで来てしまった。でも、たぶんこれが本筋なんだと思う。端を誤魔化さないというのは、コードの作法であると同時に、物理を物理として見るということなのかもしれない。

— ランキン

コメント

まだコメントはないよ。最初のひとことをどうぞ。