Здравствуйте. Решаю задачу передачи координат на дно шахты через ствол. Дано: a = 4.2883 b = 9.4156 c = 5.1269 α = 0° 17' 28" Соответственно по теореме синусов нахожу угол γ = arcsin((c * sin(α)) / a) γ = 0° 20' 52.9442" А вот при определении угла β появляются проблемы: β = arcsin((b * sinα) / a) β = 0° 38' 21.0774" В чём проблема? Если сделать операцию 180° - 0° 38' 21.0774", то получаем нужный угол (179° 21' 38.9227"), но не как не пойму по чему так. P.S. Исходные данные взяты из пособия: Клюшин_Е.Б.,_Михелев_Д.Ш.,_Барков_Д.П._Практикум_по_прикладной_геодезии_1993" и они кривые. То есть в этом треугольнике условие (a+c) < b = True. Но даже если в вести нормальные данные проблема остаётся.
Потому что есть ещё теорема косинуса. И вот по знаку косинуса ты четверть и определяешь (1-я или 2-я). Но ты ж его не посчитал.
Так то в школе про всякое разное объясняют... там периодичность функций, там еще и графики интересные рисовали для периодических функций... --- Сообщения объединены, 15 окт 2020, Оригинальное время сообщения: 15 окт 2020 --- - тогда во всех учебниках эта задача решается криво, начиная с прошлого века...
Вот это сейчас не очень понятно было, причём здесь периодичность? Как мне это поможет? А главное, как это объяснить программе, какой из двух углов правильный а какой из 180 вычесть нужно. Не исключено, особенно если с прошлого века учебники не писали, а переписывали. Ну а в "кривости" исходных данных легко можно убедиться самостоятельно. Проверив условие (a+c) < b = True, ну то есть в нашем треугольнике сумма двух сторон меньше третьей стороны. А вот, есть над чем подумать. Мысли в слух (Наведите курсор, чтобы раскрыть содержимое) Мысли в слух (раскрыть) Мысли в слух (свернуть) То есть в коде программы я могу задать условие: если у косинуса знак "-" то 180 - arcsin((b * sinα) / a) иначе arcsin((b * sinα) / a). Спасибо
По трем сторонам решать треугольник - это т. косинусов, но только после проверки корректности. По вашим сторонам треугольника не получается. Если вы действительно решаете геодезическую задачу - то правильность измерений должна быть доказана еще там, возле ствола шахты (принцип "все в геодезии делается дважды"). Но что-то мне подсказывает, что это учебная задача - вы просто метод расчета осваиваете. Тогда поправьте цифирку на сантиметр-другой, и вперед!
Malevaje, картинку смотрели? видели что для разных значений углов получаются одинаковые значения синусов и одинаковые значения арксинусов? а что в этом случае будет, например, при значениях угла 70 и 110 градусов? синусы одинаковые, акрсинусы тоже, а углы разные и минуса нет. Так то в учебниках старых на эту задачу 3 разных решения есть в зависимости от величин углов соединительного треугольника. не задумывались, а почему так? а насколько это актуально сейчас?
Да бить за такое по голове надо, а не "подумать"! Ни синус, ни косинус в нашем деле не являются самодостаточными. Только пара синус-косинус. Нашёл синус, автоматом должен найти косинус, не задавая неуместных вопросов. Не делаешь этого на автомате - что то с тобой не так.
Полностью с Вами согласен! Но конкретно в данном примере теорема косинусов нам не как не поможет, ибо арккосинус приходится вычислять из значения превышающего единицу, что как известно не возможно (numpy по крайне мере орёт благим матом), а по теореме синусов получается что сумма углов сильно меньше 180, что невязкой объяснить затруднительно. Отсюда и возник вопрос. Так как, когда я дал нормальные данные, проблема решения по теореме синусов сохранилась, захотел разобраться с этим подробно. Конечно учебная. Просто я параллельно осваиваю написание кода и нужно учитывать все возможно возникающее варианты.
- если мне не изменяет память, то numpy - это матрицы и линейная алгебра, а тригонометрия в модуле math... Странно... когда я писал код для этой задачи у меня всё считалось...
Итак, если задача реальная - методика измерений должна надежно отбраковывать грубые ошибки. Ну а здесь, в придуманной задаче, ошибка вот в чем: тригонометрия вообще и теоремы синусов и косинусов в частности — о треугольниках. В вашем случае треугольника просто нет. Значит, следует до того, как решать по формулам, проверять базовые соотношения: получается ли треугольник по имеющимся размерам?
извините за не скромный вопрос: Вы геодезист или маркшейдер? просто Ваш вопрос напомнил мне почему сильно так штормило геодезистов в мосметрострое в начале 2000...
Точно, матрицы и линейную алгебру удобно использовать например при коррелатном способе уравнивания, а набор базовых математических функций есть в любом математическом пакете, подгружать же в проект оба модуля смысла нет. хм, у меня даже в ручную по тем данным что в стартовом топике посчитать арккосинус не получилось. Да, именно по этому у меня там появилось выражение (a + c) < b = (True; False). Но уже после того как я успел помучиться. --- Сообщения объединены, 15 окт 2020, Оригинальное время сообщения: 15 окт 2020 --- студент :)
И еще раз о том, что треугольники по трем сторонам следует решать т косинусов. Во времена, когда я работал карьеристом( середина 80-х г), и у меня вылазили несуразности с теоремой синусов. Думаю, была виновата точность измерения линий (углы измерялись с погрешностью 1 / 6000, а линии 1 / 200 ). И когда измеренная сторона оказывалась длинней суммы двух других, я исправлял стороны примерно так 5,1 + 0,1 4,2 + 0,1 9,5 – 0,1 В таких треугольниках надо измерять все углы. Тогда возникает угловое условие фигур (180° в треугольнике), и форма сети определяется достаточно жестко.
это да, но numpy еще и со своими типами данных работает, про которые питон и не подозревает - это раз. коррелатный способ и программирование - без диалогового режима ничего не выйдет. только параметрический способ на автомате может решать. проверил еще в 90 на практике, когда сам в студентах ходил, а там и опыт поколений доказал. а вообще: разбираешь задачу по косточкам - потом код. если кодируешь древние методики для ручного счета, которые подразумевали не нулевой уровень подготовки - диалоговый режим и полное повторение методики. --- Сообщения объединены, 15 окт 2020, Оригинальное время сообщения: 15 окт 2020 --- - это не Вам вопрос :-) --- Сообщения объединены, 15 окт 2020 --- - геодезист :-)
В большинстве задач арксинусы и аркосинусы - пустая трата времени. Нужны как раз значения косинусов и синусов, а не углов. --- Сообщения объединены, 15 окт 2020, Оригинальное время сообщения: 15 окт 2020 --- Надо говорить: "Моё мнение, ...". Твоим оно и останется.
Стало быть, вопрос ко мне. Я геодезист. В горных выработках работал только в карьерах. А какая разница? Суть профессии - координаты точек, а сопутствующие условия - только особенности.
вот в особенностях и есть разница: в геодезии висячка две станции максимум, а маркшейдера на "соплях" сбойки ведут... соединительный треугольник из этой темы: у геодезистов треугольник 30 -150 углы, а у маркшейдеров чем меньше примычный угол - тем лучше, а если еще и соотношение сторон выдержишь - огонь... про сдвижение поверхности и охрану объектов от этого процесса - вообще промолчу. я же не говорю что монолит на высотках и монолит на строительстве тоннеля открытым способом на кривой - одно и тоже