Задача по геометрии

  Один студент обратился к своим друзьям с просьбой, помочь ему решить некую задачу. Все с энтузиазмом принялись за дело, но... И задача-то вроде понятная и простая, и решали уже такие задачи много раз, но...
  Короче говоря, попросили меня.
 
  О, сказал я, люблю задачи по геометрии. И начал бодро расписывать углы. В конце составил уравнение - сейчас решу. Но...
  Из уравнения выходило, что неизвестный угол Х равен неизвестному углу Х.
  Кто бы сомневался ...
  Немного подумал, составил другое уравнение, потом третье... Из всех выходило "кто бы сомневался", но неизвестное Х так и оставалось неизвестным.

  На этом я литературную часть заканчиваю, и обращаюсь к "тяжёлой артиллерии", то есть, к Турбо Бейсику.
  Нет, если Вы, мой уважаемый читатель, любознательны, буду Вам очень признателен, если Вы сумеете решить эту задачу по-другому, то есть тем способом, которого студенты, и, возможно, их преподаватель, ожидают.
  Но хочу заметить, что неплохо было бы, если бы студентов обучали не только изворотливости ума, но и обшим методам решения подобных задач.
  Тем более, что студенты не очень-то понимают возможностей программирования, для них математика - отдельно, а компьютер - отдельно. Хотя, первоначально, компьютер для нужд математики предназначался, а не для игр, и не для "сидения" в Контакте.
  Так, общие мысли...


  РЕШЕНИЕ ЗАДАЧИ

  Посмотрите на рисунок.
  Выберем удобную систему координат ХУ. Напишем уравнение прямой, образующей левую сторону треугольника, и уравнение той наклонной к основанию, которая идёт к нему под углом 60 градусов.

  y = ( x + 1 ) * tg80
  y = -( x - 1 ) * tg60

  Решая систему уравнений, найдём координаты Х и У точки D -

  D(x,y)= D(-(t8-t6)/(t8+t6), 2*t6*t8/(t6+t8))

  где обозначения t6 и t8 заменяют значения тангенсов 60-ти и 80-ти градусов.
  Поступим аналогично с правой стороной треугольника и наклонной к основанию под углом 50 градусов

  y = -( x - 1 ) * tg80
  y = ( x + 1 ) * tg50

  решая систему, найдём для точки E -

  E(x,y)= E((t8-t5)/(t8+t5), 2*t5*t8/(t5+t8))

  Теперь найдём угол наклона Q прямой ME к оси Х (взяв, чтобы не перепутать знак, положительное значение этого угла). Тангенс угла Q равен -

  tg(Q) = (Dy-Ey)/(Ex-Dx)

  искомый угол X = 60 - Q  ( см. рисунок)

  Не будем вычислять всё это вручную, составим программу на Турбо Бейсике, а заодно, вместо того, чтобы взять просто значение угла 50 градусов для левой наклонной, пройдём-ка диапазон возможных значений для этого угла от 0 до 80-ти градусов.
  Интересно же - вдруг эту задачу с другими параметрами перед студентами поставить можно (ну, студент, держись!).


  ВОТ ЭТА ПРОГРАММА

DEFDBL p,t,D,E,Q
  'указывается на переменные с двойной точностью
pi=3.1415926535898
B=20 : A=50 : C=60
OPEN "T.TXT" FOR OUTPUT AS #1
 t8=TAN((180-B)*pi/2/180)
 t6=TAN(C*pi/180)
 FOR A=0 TO 80
      t5=TAN(A*pi/180)
   DX=-(t8-t6)/(t8+t6)
   DY=2*t6*t8/(t6+t8)
   EX=(t8-t5)/(t8+t5)
   EY=2*t5*t8/(t5+t8)
      Qt=(DY-EY)/(EX-DX)
      Q=ATN(Qt)*180/pi
      X=C-Q
   PRINT #1, "A=";A;"X=";X
 NEXT A : CLOSE #1
stop

результаты с точностью 13 знаков (!) после запятой выводятся в текстовый файл.
  И, что удивительно, для некоторых значений А значения углов Х оказались не дробными, а целыми (я думаю, что будь ты математик, хоть семи пядей во лбу, именно такого результата ты предсказать не смог бы) - 

Кроме тривиальных  A=0 X=0, A=60 X=60  и A=80 X=140
интерес представляют

 A=30 X= 10
 A=50 X= 30 - это и есть решение нашей задачи
 A=65 X= 85
 A=70 X= 110 

  Предлагаю задачу с A=65 преподавателю дать. Пусть помучается. ))
  Вместе с тем, я считаю решение подобных геометрических задач, с привлечением возможностей программирования, очень полезным для школьников и студентов. А то очень они к аналитическим формулам приучены. Привычка эта может стать недостатком в их дальнейшей деятельности.
________________

продолжение решения задачи здесь - http://www.proza.ru/2019/02/27/926


Рецензии
Здравствуйте, Дмитрий!
Я по образованию тоже физик, кончал НГУ. И программированием пришлось много заниматься, но программировал в 60-х - 70-х сначала на языка Альфа (русский Алгол) для машин М-220 и БЭСМ-6. Разработан был на ВЦ СОАН в Новосибирском Академгородке. Язык был очень продвинутый, позволял работать с многомерными массивами данных, границы массивом могли быть отрицательными. Библиотека программ была очень развитая, позволяла в одно действие перемножать многомерные матрицы и разного рода сечения (часть строк или несколько столбцов матриц. После вредительского свёртывания отечественного программирования и перехода на явно отсталую серию ЕС (копия IBM) встал вопрос на какой язык переходить? В науке тогда использовался фортран-60. По сравнению с Альфа - это было убожество. Массивы с размерностью не более 3-х, нижняя граница массивов начинается с 0. (Проекция момента L изменяется от -L до +L). Единственное достоинство - фортран имел развитые библиотеки линейной алгебры. Тогда появился более развитый язык PL-1. Перевёл свои программы на PL-1, но он вскоре умер. И пришлось опять переводить теперь уже на фортран-77, а потом уже на фортран-90.

Извините за долгое введение, нашёл в Вас родственную душу...
Возвращаюсь к Вашей задаче.
Хотел привести своё решение здесь, но понял, что невозможно включить рисунок, поэтому вынужден был опубликовал его на своей странице.
Загляните, сравните. А я буду читать Ваше продолжение решения...

С уважением,

Сергей Рубанкин   29.01.2023 18:43     Заявить о нарушении
На Фортране я работал. Но очень своеобразно. Для жены нужно было провести расчёт электрических полей для различных конфигураций электродов. Задача обычно была цилиндрически симметрична. В то время я доступа к ЭВМ был лишён, поэтому просил об этом свою знакомую, которая считала что-то в централизованном для этого месте (приносишь текст программы - набивают перфокарты, запускают на счёт, результат в распечатанном виде возвращают, то есть, путь не особенно скорый). Цепочка от жены, ко мне, к знакомой, к ЭВМ и по той же цепочке обратно, это вообще, так соскучится можно.
Поэтому я придумал для своих расчётов специальный мнемонический язык, чтобы вначале как бы рисовать электроды, а затем рассчитывать поля. И всё это во многих вариантах и за один подход к машине.
Знакомая приносила мне целый рулон - поля, заполненные цифрами, которые я потом рассматривал.

Дмитрий Маштаков   30.01.2023 03:55   Заявить о нарушении
Верно, тогда ввод был на перфокартах, кодировка для Альфа была специфическая, без специальной "читалки", накладываемой на перфокарту и не прочитаешь. Ошибки в отдельных символах исправлялись путём "заклеивания" ошибочных дырок в перфокарте и последующим дублирование исправленной п/карты на дубляторе, который позволял дублировать карты. По-первости транслятора с Альфа на БЭСМ не было, программа на п/картах вводилась в М-220, которая с помощью программы Алгибр переводил программу в коды БЭСМ-6. Потом появился язык Альфа-6 и трансляор (компилятор) на БЭСМ-6.
У меня доступ к БЭСМ-6 был, на на неё была очередь. Чтобы ускорить процесс отладки программы приходилось идти на хитрость. В текст программы вводился кусок с командами, которые не влияли на решение, но резервировали место в кодах (и памяти) БЭСМ-6. При обнаружении ошибки, она не всегда могла быть исправлена путём замены команд на месте - могло не хватить места, в таких случаях ошибка исправлялось следующим образом. В командных кодах БЭСМ-6 находилось место ошибки и перед ней вставлялась команда перехода в то место программы, где начинались "пустые" команды, далее вставлялись исправленные команды, и затем команда возврата на место после ошибочных команд. Это позволяло сократить путь п/карты - М-220 - БЭСМ-6. Потом появились бобины с магнитными лентами, и программа и результаты копировались на неё.

Сергей Рубанкин   30.01.2023 06:44   Заявить о нарушении
На это произведение написано 5 рецензий, здесь отображается последняя, остальные - в полном списке.