4次元球の体積を求める
じゃんけんとかランダムウォークとかほったらかしですが、
思いつきのプログラムネタ。
以前にほんのちょっとだけふれたモンテカルロ法を使ったものです。
円の面積を求めるものはweb上に結構たくさんあったので、
なかなかわけのわからん事をしてやろうと思ったわけです。
4次元球ってなんぞやってところからですが、
簡単に言えば、2次元での円、3次元での球、
で、もうひとつ次元を拡張したものが4次元球です。たぶん。
難しく言うと、4次元空間において、
ある点からの距離が一定以内にある点の集合です。
式はこんな感じ。
その4次元球の体積(って言うのかな?)は
球の体積の公式から一応計算でも出せますが、(半径で)
やれる人はやってみてください。
私が計算したらになりました。
まあ計算で出そうとしても結構ややこしい。
計算機にやらせるにしても、格子状の点を全てについて調べるのは、
(前に円の面積から円周率を求めたときと同じような方法ね)
空間が4次元なので調べる量が膨大になってしまいます。
そこでモンテカルロ法の出番です。
前置きはこんなもんで、やり方です。
今回は半径1の4次元球の体積を求めます。
まあこれがわかれば、半径の4次元球の体積は、
をかけた値になるので十分と言うことで。
では結果。
実際の値は小数点以下10桁までで、
です。
あまり期待してなかったが、1億データで小数点以下4桁まであってる。
ついでにグラフも。横軸は対数スケールです。
自然対数の底を求めたときとスケールが違うので注意してね。
何とか、思ったところに収束していっている感じだ。
この方法を使えば、5次元球だろうが6次元球だろうが、
煩雑な積分計算をせずに、比較的楽に体積の近似値が出てくる。
まあ、出したところで、どうなんだろうという感じもするが。
宇宙の起源に半歩ぐらいなら近づけるかな?
思いつきのプログラムネタ。
以前にほんのちょっとだけふれたモンテカルロ法を使ったものです。
円の面積を求めるものはweb上に結構たくさんあったので、
なかなかわけのわからん事をしてやろうと思ったわけです。
4次元球ってなんぞやってところからですが、
簡単に言えば、2次元での円、3次元での球、
で、もうひとつ次元を拡張したものが4次元球です。たぶん。
難しく言うと、4次元空間において、
ある点からの距離が一定以内にある点の集合です。
式はこんな感じ。
その4次元球の体積(って言うのかな?)は
球の体積の公式から一応計算でも出せますが、(半径で)
やれる人はやってみてください。
私が計算したらになりました。
まあ計算で出そうとしても結構ややこしい。
計算機にやらせるにしても、格子状の点を全てについて調べるのは、
(前に円の面積から円周率を求めたときと同じような方法ね)
空間が4次元なので調べる量が膨大になってしまいます。
そこでモンテカルロ法の出番です。
前置きはこんなもんで、やり方です。
今回は半径1の4次元球の体積を求めます。
- を決めるため、0〜1の一様乱数を4つ発生させる()。
- を満たせばカウントする。
- 1、2を繰り返す。
- 「半径1の4次元球の体積」=×「カウント数」/「データ数」
まあこれがわかれば、半径の4次元球の体積は、
をかけた値になるので十分と言うことで。
では結果。
実際の値は小数点以下10桁までで、
です。
データ数 | 推定値 |
10 | 6.4000000000 |
100 | 5.4400000000 |
1000 | 5.1520000000 |
10000 | 4.9216000000 |
100000 | 4.9404800000 |
1000000 | 4.9272160000 |
10000000 | 4.9340384000 |
100000000 | 4.9348697600 |
あまり期待してなかったが、1億データで小数点以下4桁まであってる。
ついでにグラフも。横軸は対数スケールです。
自然対数の底を求めたときとスケールが違うので注意してね。
何とか、思ったところに収束していっている感じだ。
この方法を使えば、5次元球だろうが6次元球だろうが、
煩雑な積分計算をせずに、比較的楽に体積の近似値が出てくる。
まあ、出したところで、どうなんだろうという感じもするが。
宇宙の起源に半歩ぐらいなら近づけるかな?