Мозговой штурм Одиозного Деда Ч. 2

Подробно расскажу о примененном методе Монте Карло.
Дано: равнобедренный треугольник ABC, угол при вершине B и такая точка внутри треугольника M, что расстояния от нее до вершин равны m, n, k. На рисунке эти исходные параметры показаны красным шрифтом.
Нужно найти угол "икс". Сама идея поиска решений довольно ясно показана на рисунке. Программа расчета совсем оказалась простой:

m=3:n=4:k=5
for B0=60 to 60 step 5
s=10^10
z=0.1
B=B0/180*pi
y0=1
x0=2
for i=1 to 15000000
x=x0+z*(ran()-.5)
y=y0+z*(ran()-.5)
c1=sqrt(m^2+k^2-2*m*k*cos(y))
c2=sqrt(k^2+n^2-2*k*n*cos(2*pi-x-y))
b1=sqrt(2*c1^2*(1-cos(B)))
b2=sqrt(m^2+n^2-2*m*n*cos(x))
f=abs(c1-c2)+abs(b1-b2)
if f<s and x>0 then
s=f:y0=y:x0=x
z1=(2*pi-x-y)*180/pi
xk=x*180/pi:yk=y*180/pi:zk=z1:ck=c1:bk=b2:fk=f
if f<0.001 then z=0.000001:fi
if f<0.00000001 then z=0.000000001:fi
fi
next i
C=asin(sin(xk/180*pi)*m/bk)
A=pi-C-xk/180*pi
xM=m*cos(A)
yM=m*sin(A)
h=ck*sin((pi-B)/2)
print B0,m,n,k,xk,yk,zk,ck,b,bk/2,h,xM,yM,fk
next B0

Результаты расчета покажу в третьей части и затем разберем конкретные примеры.

2 сентября 2022 г.


Рецензии