正方形内部の2点間の距離の平均についての論考

こんにちは。

 

最近やってる数学について面白いことがわかってきたのでまとめてみます。

 

まずは、次の問いを考えてみてください。

 

「1辺の長さが1の正方形の内部にランダムに2点を取ります。

この時、2点間の距離の平均はいくらになるでしょうか。」

 

問い自体はとてもシンプルですね。

ですが、答えはとても複雑になります。

実は、4重積分を解かないといけません笑。

解析的な答えは、(2+√2+5log(√2+1))/15になります。

小数に直すと、約0.52です。

計算方法が気になった方は、以下の記事を参考にしてみてください。

jp.quora.com

 

さて、本題はここからです。

2次元の場合が分かったら、次はd次元の場合が気になりますよね。

d次元の場合は、2d次元の重積分を解かなくてはならなそうです。(畳み込みを使えばd次元の積分に落とし込めそうです。)

2次元の場合ですらあれだけ複雑だったので、d次元の場合について解析的に解くことは、とても困難なように見えます。

 

では、平均を考えることは無理なのでしょうか。

いいえ、できます。

 

実は、dが大きくなるにつれて、距離の平均は、√(d/6)に収束することが知られています。

例えば、100万次元の場合は、√(1000000/6)≒408です。

このように、解析的な正確な値を求めることこそ難しいですが、それに近い値を知ることができるのです。

 

なぜ、√(d/6)に収束するのでしょうか。

答えは、この収束値は√(2d∫_[0,1] x^2(1-x))を解くことで得られます。

ここで、xは2点間のある座標の差の二乗,1-xは確率密度関数に相当します。

√はユークリッド距離を考えるときに登場する√、2∫_[0,1]は∫_[-1,1]に由来します。

本来は2d次元の重積分を解かないといけないのを畳み込みによりd次元に、また、ユークリッド距離の式の形から1次元の分布のd個の標本和として考えること(大数の法則)で1次元の積分に落とし込んでいます。極限を知りたいだけなので、√はいったん外に出しています。(厳密な議論は省きます)

 

 

*気が向いた人が読む詳しい説明*

2点をx,yとすると、

距離の平均 = ∫(ユークリッド距離)*p(x)p(y)dxdyで求められる。

(E(x)=∫xf(x)を思い出す。)

x=(x_1,x_2,,,,,,x_d),y=(y_1,…..y_d)

p(x),p(y)は確率密度関数

dが大きくなると、距離の二乗の平均は、ある値cに近づいていく。

この時、我々が求めたい距離の平均はその平方根√cに近づいていく。

よって、距離の平均=√∫(ユークリッド距離の二乗)*p(x)p(y)dxdy

x_i-y_iの積分に置き換えて考えることで次元を半分に考えることができる。

畳み込みの計算の仕方はブログでリンク貼った記事にもある。

x_i-y_i=xとして積分の表記を変更すると

√∫(Σx^2)p(x)dx

dが十分大きい時、Σx^2は、i軸の距離の差の二乗のd個の標本和として考えることができる。

よって、Σx^2 = d*(i軸の距離の二乗x^2の標本平均)

このようにi軸の、一次元の距離の二乗の平均を考える。

xが-1から1の範囲を動くが、0から1の範囲を動いたものを考え、その値を2倍すれば一次元の距離の二乗平均は求められる。

また、畳み込みをした結果確率密度関数は、x>0のとき1-x

(ブログ内にあるリンクの記事参照)

よって、距離の平均=√(2d*∫_[0,1]x^2(1-x)dx)

あとは、∫_[0,1]x^2(1-x)=1/12なので距離の平均=√(d/6)が得られる。

 

さて、d次元の場合の2点間の距離の近似値(収束値)について分かったので、今度は2点間の距離以外の量について考えたいですよね。

 

3点をランダムにとってできる三角形の面積の平均なんてどうでしょうか。

2点間の距離よりも複雑なので、2次元の場合ですら、解析的に解くことは難しいですね。(計算できた人がいたら教えてください!)

では、近似値(収束値)について考えてみましょう。

 

2点間の距離のように、1次元の積分に落とし込んで解析的に考える方法がわからなかったので、まずは数値計算に頼ってみました。

各次元において面積の平均を数値計算し、プロットします。

(注:x=0が2次元の場合です。x=1が3次元,x=2が4次元という感じ。表示の調整サボってごめんなさい。0,1次元の場合は三角形が作れないので2次元がstartです。)

 

するとあら不思議、直線に見えます。

線形回帰してみましょう。

線形回帰すると、大体y=0.721x+0.08という結果が得られました。(傾き、切片はもっとたくさんの桁ありますが上位の桁だけ取り出しています。)

この直線をさっきのプロットに重ね合わせるとこのようになります。

 

めちゃくちゃピッタリですね。このy=0.721x+0.08という回帰結果から、なんと、d次元の場合においては、0.721dに近似できることが言えそうです。

低次元の場合に線形だったからと言って、高次元の場合でも線形かはわからないので、より大きい10000次元、100000次元における数値計算を実行してましたが、それぞれ約721,7217になったので、より確信して、dが大きくなると0.721dに収束することが言えそうです!(100万次元の場合は僕のコンピュータが悲鳴をあげた)

 

なぜこうなるのでしょうか。

ここで、一辺の長さが√(d/6)の正三角形の面積を計算してみましょう。

すると、√3d/24になります。

√3/24≒0.721...

あ....

厳密な証明はわからないですが、そういうことみたいですね。

 

最後に、d次元超立方体内部に、n点をランダムにとった時の、n-1単体の体積について考えてみましょう。

まずは、d次元超立方体内部に、4点をランダムにとった時の、3-単体、つまり四面体の体積の平均。

三角形の面積の場合に、一辺の長さが√(d/6)の正三角形の面積に収束することがわかったので、同じように、一辺の長さが√(d/6)の正四面体の体積に収束しそうです。

 

この要領でいくと、d次元超立方体内部に、n点をランダムにとった時の、n-1単体の体積は、d^((n-1)/2)に比例することが言えそうです。

n=4の場合は、数値計算してその予想の妥当性が確かめられそうなので、(d^1.5の関数に回帰できるかどうか)気が向いたらやってみようと思います。

 

最後まで読んでくださりありがとうございました。

わからないことも多いですが、結構面白い性質が隠れてそうで、興味深かったのではないと思います。