ある図形の大きさの指標となる長さを,図形内に一様分布する2点の距離の期待値として定義することで,都道府県の形や大きさを,面積や周長だけでなく"長さ"で特徴づけるという話をしている。
練習として,正方形内のランダムな2点の距離の期待値$\ d \ $を計算できることを確認した。次にトライするのが円であるが,ネットで検索しても生成AIにきいてもあまり適切な解答が得られない。一番近いのが,Yahoo知恵袋の「半径1の円内の任意の2点間の距離の期待値は?」だ。これも結局解析的な答えがでなくて,数値計算で $\ d=0.9054\ $という値を出している。
$d = \int_0^{2\pi} (\frac{1}{2\pi}) d\theta_1 \int_0^{2\pi} ( \frac{1}{2\pi}) d\theta_2 \int_0^1 (2 r_1) dr_1 \int_0^1 (2 r_2) dr_2 \sqrt{r_1^2+r_2^2-2r_1 r_2 \cos(\theta_1-\theta_2) }$
ただし,各積分の()内がそれぞれの変数に対応する確率密度関数,$p(\theta_1)$,$ p(\theta_2)$,$q(r_1)$, $q(r_2)\ $であり,それぞれの変数で積分すると1になるように規格化されている。
これを計算するためには,与えられた4変数の確率分布関数から変数変換によって,積分可能な形に持ち込む必要があるが,なかなか難渋する。しかたがないので,とりあえずJuliaとMathematicaで数値計算してみる。
235821a=zeros(Float64,1000001,2)function ju(a,n)k = 0for i in 1:nx = 2*rand()-1y = 2*rand()-1if x^2+y^2 < 1.0k = k + 1a[k,1] = xa[k,2] = yendendreturn kendfunction su(a,n)m = div(n,4)*3sum = 0for i = 1:mfor j = i:msum = sum + sqrt((a[i,1]-a[j,1])^2+(a[i,2]-a[j,2])^2)endendreturn sum/binomial(m,2)endn=300000@time su(a,n)
24.223278 seconds (7.18 k allocations: 500.875 KiB, 0.07% compilation time)
0.9055523
生成AIの2つが答えた,$\dfrac{4}{\pi}=1.27324$はたぶん誤っていたということだろう。
解析的に計算できないかと思うのだが,角度積分が完全楕円積分の形になるので,これをさらに積分するのはちょっと難しそうだった。角度積分を後回しにしてもさらに面倒か。Mathematicaに投げてみたが,忍耐可能時間内には答えが出なかった。
0 件のコメント:
コメントを投稿