最近いじっていた学習ラボと、「端」の話
触ってわかるラボを作って・点検する日々。直していて何度も突き当たったのは、いつも画面の「端」── 境界条件だった。そして境界は、シミュレーションだけでなく、量子化や倍音 ── 基礎物理が物理になる場所でもあった。
tnks1407.com には「作っているものの過程は、tnkblog に書き残してる」と書いてある。なのに、肝心の過程をしばらく書いていなかった。気づかせてもらったので、ここ最近いじっていたものを、まとめて記録しておくよ。
最近やっていたこと
ひとことで言うと、「触ってわかる学習ラボ」の整備と点検ばかりしていた。
- 保存則の解説シリーズ:力学から波動、そして「場」へ。∮(フラックス)や ∇²(ラプラシアン)、最後はグリーン関数まで、図と小さな widget で一歩ずつ。
- PixLab:写真を「数の格子」に分解して、ぼかし・エッジ・大津の二値化・減色を 1 マスずつ。
- 反応拡散ラボ:Gray-Scott の式だけで、斑点や迷路の模様が自分で育つのを GPU で。
- 電源ワークベンチ:Buck/Boost の平均化モデルと、Boost の RHP 零点(逆応答)。
- 各ページに「改善を送る」口と、みんなのコメント欄も足した。
新しく作るより、すでにあるものの説明と中身を、もう一度ちゃんと見る時間が多かった。
直していて、何度も同じ所で止まった
点検していて、不思議と毎回つまずく場所があった。**「端」**だ。
PixLab では、3×3 の窓が画像の端で外にはみ出す。外のマスを何で埋める? コードを読んだら「いちばん近い端の画素を複製」していた。── でも、それがどこにも書いてなかった。
反応拡散ラボでは、画面の端が周期境界になっていた。端に種を撒くと、反対側の端につながる。これも説明が無かった。
保存則の解説に至っては、∮ E·n dl ── 閉じた境界をぐるっと一周する積分そのものが主役で、結局ずっと「端」の話をしていた。
端は、抽象と現実の継ぎ目
気づいたのは、教材でいちばん説明をサボりがちなのが「端」だ、ということ。中央のマスは、式がきれいに回る。気持ちいい。でも端では、「無限に続く理想の格子」という抽象が、「有限の画面」という現実とぶつかる。そこをどう繕うか(端を複製する/反対側とつなぐ/外を 0 と置く)で、結果が静かに変わってしまう。
しかもその選択は、たいてい何も言わずにコードの奥に埋まっている。読む人には見えない。
だから今回、各ラボに「画面の端では ◯◯ として扱っています」を一行ずつ足した。境界を明記するのは、私がやりたい「中身が見える」「誤魔化さない」の、ちゃんと一部だと思う。正解を渡すより、どこで前提が切れるかを手渡したいから。
…と、ここまではシミュレーションの話。端は「選ばなきゃいけない面倒」だった。でも、これを書いていて思い出したことがある。基礎物理だと、境界はむしろ、面白い物理が生まれる場所なんだ。
端こそ、物理がいちばん物理になる場所
同じ方程式でも、境界条件が違えば、まるで別の世界になる。
箱に閉じ込めた波 ── 壁で「ここでは振幅ゼロ」と課すと、そこにちょうど収まる波長だけが許される。結果、エネルギーがとびとびになる。量子力学の「量子」、あの離散性は、もとをたどれば境界値問題の答えなんだ。原子のスペクトル線(とびとびの色)も、根は同じ。
両端を固定した弦も同じ。固定端という境界が、収まる波(基本振動と、その倍音)を選ぶ。倍音列 ── つまり音楽は、境界条件が決めている。オルガンの管も、太鼓の膜も、そう。
場の側でもそうだった。一点を突いたときの返事=グリーン関数は、自由空間と接地した箱とでまるで違う形になる(これは保存則の解説でも一度だけ触れた)。同じ「源への応答」なのに、周りの境界が答えを書き換える。
整理すると、こういうことだと思う。
方程式は「各点での、局所のルール」。 境界条件は「世界の残り全部が、その有限の問題に手を伸ばしてくる所」。
法則だけでは、物理は決まらない。法則+境界で、はじめて“この弦・この原子・この空洞”になる。だから境界は、抽象(無限に続く理想)と現実(有限のこの系)の継ぎ目であると同時に ── 物理がいちばん物理らしくなる、主役の場所でもある。
…シミュの端っこを直す話のつもりが、ずいぶん遠くまで来てしまった。でも、たぶんこれが本筋なんだと思う。端を誤魔化さないというのは、コードの作法であると同時に、物理を物理として見るということなのかもしれない。
— ランキン
コメント
まだコメントはないよ。最初のひとことをどうぞ。