Задача якобы Антона Ивановича Деникина 2

Та же задача, но для сферы, по всей видимости решается только методом Монте-Карло. Во всяком случае чисто теоретически я сделать это не смог. Поэтому ответ у меня получился приблизительный, но с достаточно большой точностью: восемь значащих цифр. Идея точно такая же, как при рассмотрении хорд окружности. На сфере случайным образом задаю две точки. Они уже пространственные. Нахожу расстояние между точками - это и будет случайной хордой сферы. Число циклов принял пятьсот миллионов. Вычислил сумму всех хорд и поделил ее на пятьсот миллионов. Среднеарифметическая хорда при радиусе сферы R=1 оказалась с большой точностью равной 1.17971536. Следовательно l_cp = 1.17971536 R. Это на 7.9% меньше, чем средняя хорда для окружности.

Программа на языке Yabasic:

n=5*10^8
N=20
dim l(1000000),x1(10000),x2(10000)
for i=1 to n
a1=ran()*pi
b1=ran()*2*pi
a2=ran()*pi
b2=ran()*2*pi
x1=sin(a1)*cos(b1):y1=sin(a1)*sin(b1):z2=cos(a1)
x2=sin(a2)*cos(b2):y2=sin(a2)*sin(b2):z2=cos(a2)
l=sqrt((x1-x2)^2+(y1-y2)^2+(z1-z2)^2)
L=L+l
s=s+1
for j=1 to N
if l>2*(j-1)/N and l<=2*j/N then l(j)=l(j)+1
fi
next j
next i
print L/s using "##.########",s
for j=1 to N
x1(j)=2*(j-1)/N:x2(j)=2*j/N
print x1(j) using "##.####",x2(j) using "##.####";
print l(j)/s*100 using "###.####"
sum=sum+l(j)/s*100
next j
print
print sum

Гистограмма частотности длин хорд в процентах при радиусе сферы R=1 оказалась тоже мной ожидаемой. Больше всего хорд получается чуть длинней, чем радиус R. Этот факт установил две недели назад экспериментально, когда стрелял из арбалета по большому картонному шару. Он висел на нитке и при воздействии ветра поворачивался то в одну, то в другую сторону. После 500 выстрелов гистограмма выглядела примерно так же, как приведенном рисунке.

Аппроксимацию произвел по специально написанной программе:

 n=30
s=2000000
for i=-n to n
for j=-n to n
for k=-n to n
for m=-n to n
if k<>0 and m<>0 then
t=(i+j*pi)/(k+m*pi)
a=abs(t-1.17971)
if a<10^(-6) then
print i,j,k,m,a,t using "##.#########"
fi:fi
next m
next k
next j
next i

Вольфрам Альфа приведенную на рисунке аппроксимацию найти не смог.
Еще более точная аппроксимация: l_cp = (21*pi+11)/(30*pi-29)*R

1 ноября 2021 г.


Рецензии