姉妹編「わかる」は読む側だった。ここからは作る側に回る ── 結論ではなく、作業を見せる
姉妹編「わかる」シリーズは、ずっと同じことを言ってきました ── 単位のある量は舞台装置、効くのは無次元の比。\(\beta=v/c\)、\(S/\hbar\)、\(E/k_BT\)、\(T/T_c\)。どれも「割ったら単位が消える量」で、物理はそこにしか宿らない。
では、こう考えるのが自然です。比を取るのが物理なら、取れる比を全部取ってしまえばいいのではないか。 人間が思いつかなかった組み合わせの中に、誰も気づいていない一致が眠っているかもしれない。
この回は、それを実際にやります。プログラムを書き、16万本の無次元量を列挙し、結果を読みます。先に言っておくと、探し物は見つかりませんでした。でも見つからなかったこと自体が、はっきりした形の答えになりました。物理を作るというのは、たいていこういう作業です。
仕様はひとことで書けます。
物理量の表を渡すと、それらを掛け合わせて単位が消える組み合わせを全部列挙し、値が \(1\) の近くに落ちるものを報告する機械。
「値が 1 の近く」を探すのは、そこが説明を要求する場所だからです。まったく無関係な二つの量の比が、たまたま 1 前後になる理由はありません。宇宙定数と物質の密度が今ちょうど同じくらいだとか、そういう「なぜか揃っている」に人は引っかかってきました。だから機械にも同じものを探させます。
素材には注意が要ります。無次元の量(\(\alpha\) など)は入れません ── 材料ではなく的だからです。プランク長やプランク質量も入れません。あれは \(c,\hbar,G\) の組み合わせそのものなので、入れれば「プランク長を \(c,\hbar,G\) で割ると 1 になりました」という、意味のない当たりを量産するだけです。
ここが、この回でいちばん気持ちのいいところです。「単位が消える組み合わせを探す」という物理の言葉が、そっくりそのまま線形代数の言葉に化けます。
まず小さい例で。\(e,\ \varepsilon_0,\ \hbar,\ c\) の四つを掛け合わせて、単位を消してみます。それぞれの次元を、kg・m・s・A の指数として縦に書きます。
\(e=\) C \(=\) A·s なので \((\mathrm{kg},\mathrm{m},\mathrm{s},\mathrm{A})=(0,0,1,1)\)。同じように \(\varepsilon_0=(-1,-3,4,2)\)、\(\hbar=(1,2,-1,0)\)、\(c=(0,1,-1,0)\)。
積 \(e^{a}\varepsilon_0^{b}\hbar^{d}c^{f}\) の次元は、この四本のベクトルを \(a,b,d,f\) 倍して足したもの。
つまり「無次元になれ」は、こう書ける
$$\begin{pmatrix}0&-1&1&0\\0&-3&2&1\\1&4&-1&-1\\1&2&0&0\end{pmatrix}\begin{pmatrix}a\\b\\d\\f\end{pmatrix}=\begin{pmatrix}0\\0\\0\\0\end{pmatrix}$$(行が kg, m, s, A、列が \(e,\varepsilon_0,\hbar,c\)。)これはただの連立一次方程式です。掃き出すと \((a,b,d,f)=(2,-1,-1,-1)\) が出ます。
機械が吐いた無次元量
$$\frac{e^2}{\varepsilon_0\hbar c}=0.0917$$見覚えのある数でしょうか。\(0.0917=4\pi/137.036\) ── 微細構造定数 \(\alpha\) が \(4\pi\) をかぶって出てきました。機械は「電磁気」も「結合定数」も知りません。次元の数ならびを掃き出しただけで、物理でいちばん有名な無次元量に行き当たった。この \(4\pi\) が後で効いてきます(08 節)。
一般化しましょう。量を \(m\) 個選ぶと、その次元指数は \(5\times m\) の整数行列 \(D\) になります(SI の基本次元は kg, m, s, A, K の 5 つ)。積 \(\prod q_i^{a_i}\) が無次元である条件は、
$$D\,\mathbf{a}=\mathbf{0}$$これだけです。つまり ──
無次元量の全体=次元行列の核(カーネル)。 しかも指数は整数で欲しいので、整数核を求める。
これは物理では Buckingham の \(\pi\) 定理と呼ばれてきたものですが、名前を知らなくても構いません。掃き出し法で解ける、それが全部です。行列を有理数で階段化して、ピボットでない列(自由変数)ごとに核ベクトルを一本ずつ取り出し、分母を払って整数にし、最大公約数で割る。高校で習う手順そのままで、機械は「無次元とは何か」を一切知らないまま、無次元量を吐き出します。
あとは、量の表からすべての部分集合を作り、それぞれで核を求めるだけです。中核はこれだけで動きます。
// 部分集合 idx(m 個の量)の次元行列 (5 × m) の整数核を返す。 // 核ベクトル v は「∏ q_i^{v_i} が無次元」を意味する。 std::vector<std::vector<int>> integerKernel(const std::vector<int>& idx) { // (1) 次元指数を有理数行列に並べる // (2) 行簡約(RREF)── ただの掃き出し法 // (3) 自由変数ごとに核ベクトルを取り出し、 // 分母を払って整数化 → gcd で割って原始ベクトルに }
素材は独立な物理量 21 個 ── 基本定数(\(c,\hbar,G,k_B,e,\varepsilon_0\))、粒子の質量 9 種、QCD と電弱のスケール、宇宙論の量(\(H_0,\Lambda,T_{\rm cmb}\))。材料は 6 個まで、指数は \(\pm4\) まで。走らせます。
無次元の組み合わせ: 162931 個 そのうち |log10 V| < 0.050 に落ちたもの: 279 個
16万本。そのうち 279 本が、値 1 の \(\pm12\%\) に入りました。279 個も一致が見つかった ── そう言いたくなります。ここが分かれ道です。
指数を大きくしていいなら、どんな数でも作れます。\(m_p^{4}m_e^{-3}m_\mu^{-1}\cdots\) と並べれば、値はいくらでも動く。当たって当然のものが当たっても、情報はゼロです。
だから複雑さの軸を入れます。指数の絶対値の和 \(\Sigma|a_i|\) ── オッカムの剃刀を数にしたものです。式の本数を帯ごとに数えると、こうなっています。
| 複雑さ \(\Sigma|a|\) | 式の本数 | 意味 |
|---|---|---|
| 2–3 | 41 | ほぼ単純な比。ここで当たったら事件 |
| 4–5 | 1,190 | まだ読める式 |
| 6–7 | 14,998 | そろそろ怪しい |
| 8–9 | 43,444 | 当たって当たり前 |
| 10+ | 103,258 | 数えるだけ無駄 |
本数が指数的に増えます。だから全体のヒット数を見ても意味がありません。帯ごとに、その帯の本数に対して当たりすぎているかを見る必要がある。
「当たりすぎ」を測るには、比べる相手が要ります。理屈で期待値を計算してもいいのですが、もっと素朴で、もっと信用できるやり方があります。
同じ手続きを、でたらめな宇宙に対して何百回も回してみる。
本物の宇宙のほうがヒットが多くなければ、それは偶然だ。
実装は拍子抜けするほど簡単です。列挙した 16 万本の式はそのまま固定して、各物理量の値だけをランダムにずらす。\(10^{-1.5}\) 倍から \(10^{+1.5}\) 倍の範囲で、対数一様に。次元も、組み合わせの構造も、式の本数も、まったく同じ。数字だけが違う宇宙です。それを 200 個作って、それぞれでヒット数を数えます。
これは素粒子物理で look-elsewhere 効果と呼ばれるものへの対処です。「どこか一箇所で 3σ の山が出た」は、探した場所が十分多ければ必ず起きる。姉妹編「わかる質量」番外③で Koide 公式を診断したときの注意 ── 無次元の組み合わせを十分たくさん作れば、いくつかは単純な値の近くに必ず落ちる ── を、今度は実測するわけです。
p 値を出す前にやることがあります。この機械は、本物の関係があったら本当に見つけられるのか。 見つけられない機械が「何も見つかりませんでした」と言っても、何の情報もありません。
そこで陽性対照を取ります。定義で互いに結ばれていることが分かっている量だけを入れる ── 原子物理の \(\hbar, c, e, \varepsilon_0, m_e\) と、そこから定義される \(a_0\)(ボーア半径)、\(E_h\)(ハートリーエネルギー)、\(\sigma_T\)(トムソン断面積)。ここには本物の関係が確実に存在します。
帯 式の数 本物 偶然なら 超過 6-7 10 1 0.0±0.2 4.9 σ [Σ|a|=6] hbar^2 m_e^-1 a0^-2 E_h^-1 = 1.0000
掘り当てました。\(E_h=\hbar^2/(m_e a_0^2)\) ── ハートリーエネルギーの定義そのものです。機械は「ボーア半径」も「エネルギー」も知りません。次元の数ならびと、値だけから、これを見つけた。検出力はある。
準備が済みました。本番です。
無次元の組み合わせ: 162931 個 そのうち |log10 V| < 0.050 に落ちたもの: 279 個 偶然のヒット数 : 平均 294.5 ± 31.7 本物の宇宙 : 279 個 経験 p 値 : 0.6667 帯 式の数 本物 偶然なら 超過 2-3 41 1 0.4±0.6 1.0 σ 4-5 1190 1 4.5±2.3 -1.5 σ 6-7 14998 32 35.3±6.4 -0.5 σ 8-9 43444 85 97.4±12.5 -1.0 σ 10+ 103258 160 156.9±20.7 0.1 σ
どの帯にも、超過はありません。 それどころか本物の宇宙は、でたらめな宇宙の期待値をわずかに下回っています。279 対 294.5。p 値は 0.67 ── 「偶然だとしたら、こんなことは滅多に起きない」の正反対で、偶然そのものです。
閾値(どこまでを「1 の近く」と呼ぶか)と、ずらし幅(でたらめさの強さ)を振っても、結論は動きません。9 通り試して p は 0.23 から 0.64 の間。
赤い線(本物の宇宙)が、灰色の山(でたらめな宇宙たち)の真ん中あたりに刺さっているのが見えるはずです。厳しさを変えても、でたらめさを変えても、赤い線は山から出ていかない。それがこの回の結果です。
ここで、この機械の届かない範囲をはっきりさせておきます。実は、有名な「一致」のいくつかは、この探索で拾えていません。拾えないことに理由があります。
宇宙定数と物質の密度が今ちょうど同じくらいだ、という有名な話(coincidence problem)を、機械の言葉で書いてみます。
次元解析が書ける、いちばん素直な無次元量:
$$\frac{\Lambda c^2}{G\rho_c}=17.3$$1 からは、ずいぶん遠い
ところが物理の側の正しい定義は \(\rho_\Lambda=\Lambda c^2/(8\pi G)\)。\(8\pi=25.1\) が入っています。それで割れば \(\rho_\Lambda/\rho_c=0.69\) ── これが「ちょうど同じくらい」の正体。
つまり一致は \(8\pi\) の中に隠れていました。そして次元解析は \(8\pi\) を出せません。出せるのは式の形までで、前に付く \(O(1)\) の数は原理的に決まらない。\(2\pi\) も \(1/4\) も \(3/5\) も、全部この壁の向こう側です。
02 節で機械が最初に吐いた式も、実は同じ壁でした。\(e^2/(\varepsilon_0\hbar c)=0.0917\) ── 有名な \(1/137\) はここに直接は現れません。\(4\pi\) をはがして初めて \(\alpha=1/137.036\) になる。機械は \(\alpha\) を見つけたのに、\(\alpha\) を見せてくれなかった。
これは残念な制約ではなく、この回でいちばん重要な発見です。「人間が解けていない」の多くは、実はこの \(O(1)\) の壁の向こうにあります。ブラックホールのエントロピーで言えば、\(S\propto A\) までは次元で出るのに、\(1/4\) だけが出ない。そこを埋めるには、数える対象そのもの ── 状態、機構、対称性 ── が要る。機械が壁の手前で止まったことで、壁の位置が測れた。
実験にはもう一つ、予定になかった収穫がありました。最初に、定義で決まる量(\(a_0, E_h, \rho_c, \sigma_T\))も混ぜて走らせたときのことです。上位のヒットに、こんな式が並びました。
[Σ|a|= 6] hbar^2 m_e^-1 a0^-2 E_h^-1 = 1.0000 [Σ|a|= 6] G^1 m_mu^-1 m_p^1 H0^-2 rho_c^1 = 1.0601
上は本物 ── ハートリーエネルギーの定義です。では下は? 分解するとこうなります。
左は臨界密度の定義 \(\rho_c=3H_0^2/(8\pi G)\)。右はまったく無関係な質量比。掛けたら、たまたま 1 に近づいた。
宇宙論の定義に、素粒子の質量比という飾りが乗っただけの式です。物理的な意味はありません。けれど出力の見た目では、上の本物とまったく区別がつきません。 どちらも「6 個の材料、指数の和 6、値がほぼ 1」。
結果を、言えることと言えないことに分けます。ここを混ぜると、途端にトンデモになります。
| 言える | 言えない |
|---|---|
| 基本定数を組み合わせて \(O(1)\) になる式を機械的に探しても、偶然以上のものは出てこない(p = 0.67)。 | 「一致は存在しない」。この手続きが見られるのは \(O(1)\) の値だけで、\(4\pi\) の向こうは見ていない。 |
| 総当たりで出てくる「美しい一致」は、数を数えれば全部説明がつく。数秘術が尽きない理由が、そのまま数字になった。 | 「この量の表が正しい」。素材を変えれば結果は変わりうる。表は人間が選んでいる。 |
| 機械は本物の関係(定義)を実際に掘り当てた。検出力は確認済み。 | 「機械が見つけたものは全部意味がある」。定義に飾りを掛けただけの式が同じ顔で並ぶ。 |
負の結果です。でも、はっきりした形の負の結果です。「基本定数の間に、まだ誰も気づいていない単純な数値的一致が眠っている」という期待は、この範囲では否定された。 空白は、比の取り方が足りないから残っているのではない。
機械。 物理量の表から、単位が消える組み合わせを全部列挙する。原理は「無次元=次元行列の整数核」で、実装は掃き出し法。純 C++、依存ライブラリなし、16 万本の列挙に 2.6 秒。
採点法。 列挙した式を固定したまま、値だけをでたらめにした宇宙を数百個作り、ヒット数を比べる。look-elsewhere 効果を、理屈ではなく実測する。
結果。 162,931 本を探して、偶然を超える一致はゼロ(p = 0.67)。どの複雑さの帯を見ても超過なし。閾値とでたらめさを振っても動かない。
そして、壁の位置。 有名な一致が拾えなかった理由は、それらが \(8\pi\) や \(1/4\) という \(O(1)\) 係数の中に隠れているから。次元解析は形までしか出せない。人間が解けていない問題の多くは、この壁の向こうにある ── 機械が手前で止まったことで、壁がどこにあるかが測れました。
この文書は「つくる格子」シリーズ第1回、物理好きの高校生・大学生向け読み物です。姉妹編「わかる」が既知の物理を解説するのに対し、本シリーズは作業そのものを見せます ── 道具を作り、走らせ、出た結果を(それが負の結果でも)そのまま読む。
本文中の数値は実際の探索プログラムの出力です。無次元量の全体が次元行列の核をなすこと(Buckingham の \(\pi\) 定理)、および look-elsewhere 効果は、いずれも確立した内容です。いっぽう「量の表」は筆者が選んだものであり、素材の選び方によって結論は変わりえます ── この探索は「基本定数の間に単純な数値的一致は無い」を証明したのではなく、この表・この複雑さの範囲・この一致の定義のもとで、偶然を超える超過は検出されなかったと述べているだけです。また \(\sigma\) の値は偶然側の分散が小さいとき過大に見えるため、p 値で読んでください。図はあなたのブラウザ上で同じ手続きを縮小して再実行しており、数値が本文と厳密に一致しないのは乱数と探索範囲(材料 5 個まで)の違いによります。
探索プログラム(純 C++・依存なし):kuuhaku_cpp / 姉妹編:「わかる」シリーズ全集 ── 印刷する場合はブラウザの「印刷」から「PDF に保存」を(印刷版ではスライダーと解答は静止・非表示になります)。
印刷 / PDF 化:⌘+P(Windows は Ctrl+P)。図のスライダーで、あなた自身の手で「偶然の山」を動かせます。