雪の結晶 — 6回対称は、どこにも書き込んでいない
なにか
六角形のマスを並べ、1マスずつ次の3つを繰り返すだけ。①凍ったセルとその隣は「受容」になり、水蒸気を受け取って動かなくなる ②残りのセルの水蒸気は隣6つの平均へ拡散する ③水分が1を超えたら凍った。乱数はどこにも入れていない。それだけで、雪の結晶の主要な形が出てくる。
つまみは3つ。α=拡散の速さ、β=もとの水蒸気量、γ=付着量。β を下げていくと 樹枝 → 羊歯 → 扇 → 板と連続的に変わる(充填率 0.27 → 0.35 → 0.52 → 0.63 と測った)。雪の結晶が気温と湿度で形を変えることの、いちばん簡単な模型である。
対称性は、格子ではなく成長の規則が決めていた
更新の規則には対称化の操作が一切ない。1セルずつ「隣6つの平均」を見るだけである。それでも結果は厳密に6回対称になる——対称性は格子の対称性と、種のかたちから来ている。種を2つ置いて対称だけを壊すと、同じ規則でもばらばらの形になる。
★この作品の本題はここ。異方性DLAで、同じ六角格子の上で乱数に歩かせても6回対称は立たなかった(A₆ は床すれすれの 0.219)。いっぽう乱数を捨てて界面の規則にしたこの模型では 10⁻¹⁶ で立つ。対称性を決めているのは格子ではなく成長の規則だった——v1.16 で「雪が六方なのは界面の異方性が効くから、という説明は未検証」と空欄にしていた場所が、これで埋まった(発見22)。
面白いのは、形が似ていないのに統計は近いこと。箱数え次元は 1.59〜1.74 で、DLA の 1.71 と同じ桁に入る(発見6「自己相似の3つの顔」の統計的自己相似)。枝の見え方は違うのに、太さと隙間の配分は同じという言い方になる。
どう作ったか
軸座標の六角格子(隣6つが等距離であることを検算済み)。拡散は反射境界なので水分の総量が厳密に保存する(差 5.7×10⁻¹⁴)。縁に届いたら止める(境界の影響が出た形は信用しない)。図はセル1つずつ描くと SVG が 5MB になったので、行ごとに連続する塊をまとめている。機械検査は12件: ①隣6つが等距離・領域は 3R(R+1)+1 セル ②拡散で水分保存 ③つまみ4通りで6回対称が 10⁻¹³ 以内 ④充填率が単調に変わる ⑤凍ったセルが全部種から連結 ⑥同じつまみで完全再現 ⑦種2つで対称が壊れる対照 ⑧★DLA との独立対照(A₆=0.219 vs 10⁻¹⁶)⑨次元が DLA と同じ桁 ⑩出荷SVG2枚。
出典
- 数理
- Clifford A. Reiter, "A local cellular model for snow crystal growth", Chaos, Solitons & Fractals 23 (2005) 1111–1119。実物の雪の形と気温・湿度の関係(中谷宇吉郎のダイアグラム)や、界面の異方性を入れた連続模型(Gravner–Griffeath 2009 など)とは別物で、ここで確かめたのはこの離散模型の性質だけ——実物の測定と突き合わせたわけではない
- 生成
- generators/snowflake.js(六角格子・受容セルの判定・六方拡散・6回対称のずれの測定・箱数え次元・4つの形と対照図。依存ゼロ・乱数ゼロ)