かけ算第21号|川の分岐 × 葉脈と血管 — 葉脈は二分木の 2 か、川の 5 か
この作品の問い
川の分岐の発見32は「分岐比 R_B は木であることでは決まらない」だった。完全二分木もランダム二分木も R_B = 2.000(厳密)なのに、川は 5 前後——決めているのは「どこに水が集まるか」だった。
いっぽう葉脈と血管は、太さの帳簿(Murray: 親の r³ = 子の r³ の和)と分岐角(張力の釣り合い)を持っていたが、木のつながり方は対称二分木を仮定したままだった。実際の羽状脈は二分木ではない。主脈に側脈が横から入り、側脈にまた細い脈が横から入る。
そこで Horton の物差しを葉脈に当てる。葉脈の R_B は二分木の 2 か、川の 5 か、それとも別の数か。
横枝の帳簿
「横から入る」を帳簿にしたのが Tokunaga の木で、次数 ω の流路は、頭で次数 ω−1 の2本が合流してでき、さらに横から T_k 本の次数 ω−k の支流を受ける(T_k = a·ck−1)。a = 0 なら純粋な二分木、a が大きいほど「主脈に側脈がたくさん入る」羽状脈になる。
無限に大きい木での分岐比は、本数の釣り合い Nω = 2Nω+1 + Σ Tk Nω+k に Nω ∝ R−ω を入れるだけで出る——R² − (2+c+a)R + 2c = 0。この二次方程式は自分で出した(式が釣り合いを残差 10⁻¹⁶ で満たすことを検査している)。
★式と実測は独立2経路。自分で作った有限の木で N₁/N₂ を数えると、a=1, c=2 で木を Ω = 4 → 8 と大きくするにつれ 3.909 → 3.977 → 3.994 → 3.9985 → 3.9996 と式の 4.000 へ単調に近づいた。a を 1〜16、c を 1〜3 に振った 8 通りで 2% 以内。
⚠️ ただしT_k が整数になる組でしか成り立たない。a = 0.5 のような組は T_k = 0.5, 1, 2, … を丸めるので帳簿そのものが歪み、式から 9.7% 外れる。最初これで悩んだ——合わないのは式ではなく木のほうだった。
★答え——葉脈は 2 でも 5 でもない
主脈に側脈が 10 本ずつ横から入る羽状脈(a = 10, c = 1)の分岐比は 12.41(式では 12.84)。二分木の 2 より、川の 4.27 よりずっと大きい。しかも手で数えられる——次数2の脈は「頭の2本+側脈10本」で 12 本、次数1は 154 本。
羽状脈の分岐比は「主脈に側脈が何本入るか」そのものである。川の 5 前後が「地形がどれだけの支流を横から集めるか」で決まっていたのと、帳簿の形は同じ——ただ、葉は地形なしにその帳簿を自分で持っている。
| 網目 | 横から入る枝 | R_B | 次数ごとの本数 |
|---|---|---|---|
| 対称二分木 | なし(頭で2本ずつ) | 2.000(厳密) | 64, 32, 16, 8, 4, 2, 1 |
| 川(地形を削ったあと・窪地埋めあり) | 地形が決める | 4.27 | 313, 62, 14, 3, 1 |
| 羽状脈(側脈 10 本ずつ) | a = 10, c = 1 | 12.41 | 154, 12, 1 |
⚠️ 実物の葉の側脈を数えたわけではない。「側脈が a 本ずつ入る木なら R_B はこうなる」という模型の帳簿である。⚠️ 全次数の片対数の傾きで測る R_B は、上の次数が数本しかないぶん式より小さく出る(a=1, c=2 で 3.79 < 4.00)。川の「5 前後」も同じ物差しで測っているので、同じ癖を持つ比較になっている。
つながり方と太さは、別の帳簿
同じ木に Murray(p = 3)とレオナルド(p = 2)の太さを与えても、R_B は === で一致する。つながり方の帳簿は太さの帳簿を知らない。合流ごとの保存 r₀p = r₁p + r₂p は、太さを「集める葉先の数の 1/p 乗」で決めているので、どちらの p でも 10⁻¹⁶ で成り立つ。
★横枝の角度を決められるのは Murray だけだった。葉脈と血管の角度の式(張力 r² の釣り合い)に横枝を入れると、Murray では細い支流ほど直角に近い角度で幹に入る(t/n₀ = 1/4096 で 87.5°、対等なら 37.5°)。細い極限では cos θ ≈ (2/3)(t/n₀)1/3 という閉じた式になり、数値と 0.1% 以内で合う。
いっぽうレオナルド(r² 保存)では横枝の角度がすべて 0°——親の張力 r₀² が子の r₁² + r₂² にちょうど等しく、張力の三角形が潰れる。木はどこまで高くなれるかの発見40(レオナルド則は角度を決められない)と同じ退化が、横枝でも出る。羽状脈が側脈を「横から」出せるのは、r³ の帳簿だからである。
どう作ったか
generators/riverleaf.js。Tokunaga の木を節の型 { 上流, 支流 } で作り、Strahler 次数と葉先の数を葉から根へ数え、流路(同じ次数の連なり)ごとに本数・長さ・葉先を集めて片対数の傾きから R_B を出す(川と同じ数え方)。太さは venation.js の Murray、角度は同じく venation.js の anglesFormula をそのまま使い、川は river.js の buildEroded(N = 160・侵食 40 回・窪地埋めあり)。
⚠️ 図で踏んだ罠: 頭で合流する2本を横枝としても描いていて、二分木の線分が 127 本のはずが 5,461 本になっていた。線分の数=節の数を検査に固定した。⚠️ 1本1要素の SVG は 1.4MB になったので、太さを 10 段に量子化して段ごとに1つの path にまとめた(99KB)。
検査は 19 件。対称二分木の R_B が厳密に 2 で川の作品の実装と一致すること、式が釣り合いを満たすこと、N₁/N₂ が木を大きくすると式へ単調に近づくこと、丸めた帳簿では外れること、p=2 と p=3 で R_B が === であること、横枝の角度の単調性・閉じた式との一致・レオナルドの 0° 退化、図の線分数などを機械検査している。
出典
- 数理
- R. E. Horton (1945) 分岐比・長さ比/A. N. Strahler (1957) 次数/E. Tokunaga (1978) 横枝の帳簿 T_k = a·ck−1(⚠️ 無限木の R_B の式は自分で出したもので、文献の式との照合はしていない)/C. D. Murray (1926)/M. Zamir (1978) 分岐角
- 親
- 川の分岐(発見32・Horton の物差し)× 葉脈と血管(Murray 則・分岐角の式)。退化の型は 木はどこまで高くなれるか(発見40)
- 生成
- generators/riverleaf.js(riverleaf.svg 三兄弟・riverleaf-laws.svg 帳簿)