Сложнейший четырехугольник. Ч 1

Такую задачу Пётр Земсков ни за что бы не решил. Даже если бы лёг на третью полку плацкартного вагона и летел бы из Москвы во Владивосток.На иллюстрации хорошо видно, что дано, а что надо найти. Формула для нахождения угла икс довольно неординарная. С таким тождеством мне очень помогли на форуме mathhelpplanet. Коллеги под никами ferma-T и revos. Вольфрам Альфа довольно легко находит положительное решение для икса в пределах от 0 до 180 градусов. Но мне  хотелось бы такое осуществить методом итерации. Я принял метод деления отрезка пополам. Программа на Yabasic выглядит так:

k=0
a=10:b=6:d=14:A=70/180*pi:B=80/180*pi
x1=0:x2=pi
for j=1 to 50
if k<>1 then
p()
if z1*z3<=0 and z3*z3>0 then x2=x3:x1=x1:fi
if z1*z3>0 and z3*z2<=0 then x1=x3:x2=x2:fi
p()
if abs(abs(x1)-abs(x2))<0.00000001 then
print x1*180/pi,x2*180/pi,x3*180/pi
y=2*pi-A-B-x3
y1=y*180/pi
c=b*cos(x3)+sqrt(d^2-b^2*sin(x3)^2)
f=a*cos(y)+sqrt(d^2-a^2*sin(y)^2)
print "y = ";:print y1
print "c = ";:print c
print "f = ";:print f
k=1:fi
fi
next j

Тестовый пример оказался правильным. Я получил следующие результаты:

 х1=124.76978  х2=124.76978  х=124.76978 град.
y = 85.2302 град.
c = 9.68205
f = 10.6647

Сделал чертеж - оказалось всё верно! Радости нет предела!

26 февраля 2023 г.


Рецензии