Как найти гипотенузу в экселе

Обновлено: 03.07.2024

В библиотеках различных языков программирования часто может быть включена функция для вычисления гипотенузы прямоугольного треугольника (или вы сами можете написать такую функцию для решения той или иной задачи).

На первый взгляд это может показаться тривиальной задачей, не так ли? Если сторонами треугольника являются x и y, то, формально, формулой для вычисления гипотенузы будет:

Это работает теоретически, но на практике данный подход может приводить к ошибке. Если значение x достаточно велико, то вычисление x*x может привести к переполнению типа данных (ни один тип данных от этого не застрахован, если не рассматривать длинную арифметику), и результатом вычислений будет бесконечность.

Одним из вариантов избежать вероятности переполнения является следующая последовательность действий:

Заметим, что значение подкоренного выражение лежит на интервале от 1 до 2, что никак не может привести к переполнению при вычислении квадратного корня. Единственное место в котором может случиться переполнение, это финальное умножение. Но, если переполнение и произошло, это лишь означает, что результат настолько велик, что не может быть вмещён в используемый тип данных, и это уже не проблема выбора алгоритма а проблема выбора типа данных.

Для того, чтобы увидеть как вышеприведённый алгоритм может преуспеть в то время как решение в лоб упасть, приведём небольшой пример. Пусть M — наибольшее число, которое может быть представлено выбранным типом данных. Для типа данных double, M будет порядка 10 308 . Пусть x и y эквивалентны величине 0.5 M. Алгоритм должен вернуть значение примерно равное 0.707 M, что не должно переполнить выбранный тип данных. Но решение в лоб не даст правильного ответа, в то время как предложенный алгоритм преуспеет.

Ради интереса проверил стандартную функцию (hypot или _hypot) включённую в math.h, и результат порадовал.

Вывод, который я сделал для себя: если в библиотеку включена какая-то функция, которая на первый взгляд кажется элементарной и пишется в две строчки, то есть большая вероятность, что сделано это не просто так и есть какие-то глубокие причины для такого решения.

По ссылке на оригинальный материал могут быть найдены комментарии к вопросу о том, не будет ли потеряна точность при таком способе нахождения гипотенузы.

Любой треугольник имеет шесть элементов: три стороны и три угла. На рисунке показан прямоугольный треугольник, который имеет три угла (А, В и С), а также три стороны (гипотенузу, основание и высоту). Угол С всегда равен 90 гр. (или π/2 радиан), поэтому, если известны два других элемента этого треугольника (исключая угол С), то с помощью определенных формул всегда можно вычислить остальные элементы.


Вспомните, как выглядит теорема Пифагора:

Если известны две стороны прямоугольного треугольника, всегда можно вычислить третью. Например, следующая формула вычисляет высоту прямоугольного треугольника по данным длин гипотенузы и основания:

В другой формуле, вычисляющей основание прямоугольного треугольника, используются гипотенуза и высота:

Для формулы расчета гипотенузы прямоугольного треугольника нужно задать основание и высоту:

Верны также приведенные ниже тригонометрические тождества.

SIN(А) = Высота/Гипотенуза
SIN(В) = Основание/Гипотенуза
COS(А) = Основание/Гипотенуза
COS(В) = Высота/Гипотенуза
TAN(А) = Высота/Гипотенуза

Примечание

Все тригонометрические функции Excel подразумевают, что угол, являющийся аргументом функции, представлен в радианах. Для преобразования градусов в радианы используйте функцию РАДИАНЫ. Для обратного преобразования радиан в градусы примените функцию ГРАДУСЫ.

Если известны высота и основание, следующую формулу можно использовать для вычисления угла между гипотенузой и основанием (угол А).

Формула, приведенная выше, возвращает значение угла в радианах. Для преобразования значения в градусы используйте следующую формулу:

Если известны высота и основание, следующая формула может использоваться для вычисления угла между гипотенузой и высотой (угол В):

Данная формула возвращает значение в радианах. Для преобразования значения в градусы используйте следующую формулу:

Задача простая. Нужно вычислить расстояние между двумя точками на карте, при этом известны только их географические координаты, то есть широта и долгота. Для примера вычислим расстояние между Москвой и Питером, но данная методика, конечно же, будет применима и к другим двум точкам местности. В наше время у многих людей есть такие компасы, например при смартфонах, которые показывают не только направление, но и географические координаты.

Итак, задача: вычислить расстояние между двумя городами. Известно только одно – географические координаты, то есть широта и долгота. Посмотрим эти данные в справочнике, ну или в Википедии.

Итак, что нам известно: координаты Москвы:

55,7522 град. с.ш., 37.6156 град. в.д.

59,89444 град. с.ш., 30,26417 град. в.д.

Построим с помощью Excel трапецию:

Итак, у нас есть трапеция ABCD. На ней точка D – это Москва, точка B – это Петербург. Отрезок AB проходит по меридиану Петербурга, BC – по параллели Петербурга, CD – по меридиану Москвы и AD – по параллели Москвы.

Что нам известно? Во-первых известны все географические координаты каждой из точек:

A: 55,7522, 30,26417;

B: 59,89444, 30,26417;

C: 59,89444, 37,6156;

D: 55,7522, 37,6156.

Вычислить AB и CD достаточно просто. На меридианах в градусе примерно одинаковое число километров. Это расстояние можно взять из справочных данных, и оно составляет примерно 111,1 км в каждом градусе.

Нужная нам разница в градусах – это 59,89444-55,7522, или 4,14224. А это значит, что разница в километрах – это 4,14224*111,1=460,2029 км.

Что же касается оснований трапеции, там тоже все достаточно просто. Экватор – это ноль градусов северной широты, и длина каждого градуса на экваторе около 111,3 км. Поскольку косинус ноля – это единица, то для любой параллели верна следующая формула: длина каждого градуса равна произведению 111,3 на косинус того угла, который числится в градусах северной широты (ну или южной, если это происходит южнее экватора).

Итак, с помощью Excel вычислим нужные нам косинусы:

  • cos(55.7522) = 0,562773
  • cos(59.89444) = 0,501595

Это значит, что 1 градус в верхнем основании нашей трапеции =111,3*0,501595=55,82749 км, а один градус в нижнем основании трапеции =111,3*0,562773=62,6366 км. Поскольку число градусов одинаково как в верхнем, так и в нижнем основаниях трапеции и составляет 37,6156-30,26417, то есть 7,35143 градуса. Но число километров в верхнем и нижнем основаниях трапеции не одинаковое.

Формулы тригонометрии – редкая и сложная задача для работы в Майкрософт Эксель. Тем не менее, здесь есть ряд встроенных функций, помогающих в геометрических расчетах. В этом посте мы рассмотрим основные из них, которые, в компании с учебниками и справочниками, могут решить многие математические задачи. Они участвуют в расчете площади, объема, угла наклона и т.д. Если Вы школьник, студент, или работаете, например, в сфере строительства, эта статья будет Вам очень полезна.

Для корректного расчета геометрических величин, Вам понадобятся познания в элементарных расчетах и некоторые из функций Excel. Так, функция КОРЕНЬ извлечет квадратный корень из заданного числа. Например, запишем: =КОРЕНЬ(121) , и получим результат «11». Хотя правильным решением будет «11» и «-11», программа возвращает только положительный результат в таких случаях.

Еще одна функция – ПИ() , не нуждается в аргументах и является зарезервированной константой. Ее результатом будет известное число 3,1415, описывающее соотношение длины окружности к ее диаметру. Эту функцию-константу можно активно применять в расчетах.

Тригонометрические функции Excel, до которых мы еще доберемся, используют запись угла в радианах. Эта общепринятая практика часто бывает ненаглядной, ведь нам привычнее выражать угол в градусах. Чтобы устранить эту проблему, есть две функции преобразования величин:

  • ГРУДУСЫ(Угол в радианах) – преобразует радиальные величины в градусы
  • РАДИАНЫ(Угол вградусах) – наоборот, преобразует градусы в радианы.

Пользуясь этими функциями, Вы обеспечиваете совместимость и наглядность вычислений.

Конечно, Вы знаете эти функции:

  • COS(Угол в радианах) – косинус угла, соотношение между прилежащим катетом и гипотенузой прямоугольного треугольника
  • SIN(Угол в радианах) – синус угла, отношение противолежащего катета к гипотенузе

Для удобства чтения формул, можно использовать вложенную функцию РАДИАНЫ и задать угол в градусах. Например, формула =COS(РАДИАНЫ(180)) вернет результат «-1».

Еще две функции Вам так же знакомы – это тангенс и котангенс:

  • TAN(Угол в радианах) – отношение длины противолежащего катета к прилежащему
  • COT(Угол в радианах) – обратная величина – соотношение прилежащего угла к противолежащему.

Здесь так же рекомендую использовать функции преобразования величин РАДИАНЫ и ГРАДУСЫ.

Среди прочих тригонометрических функций можно выделить секанс и косеканс:

  • SEC(Угол в радианах) – отношение гипотенузы к прилежащему катету
  • CSC(Угол в радианах) – отношение гипотенузы к противолежащему катету

Легко заметить, что секанс – обратно-пропорциональная величина к косинусу, косеканс – к синусу.

Такие функции выполняют обратный расчет по отношению к перечисленным выше:

  • Арккосинус – это угол, который образуют прилежащий катет и гипотенуза с определенным косинусом. Чтобы посчитать эту величину, используйте функцию ACOS(Значение косинуса) .
  • Арксинус – угол между противолежащим катетом и гипотенузой с определенным синусом, вычисляется так: ASIN(Значение синуса) .
  • Арктангенс – угол между противолежащим и прилежащим катетами для заданного тангенса: ATAN(Значение тангенса) .
  • Арккотангенс – угол, для которого справедливо заданное значение котангенса: ACOT(Значение котангенса).

Все перечисленные функции вернут угол в радианах. Естественно, для перевода его в градусы, используем функцию ГРАДУСЫ .

Это все о тригонометрических функциях, спасибо, что читаете мой блог и развиваетесь в своих знаниях. Следующую статью я напишу об округлении чисел и очень Вам рекомендую ее не пропустить!

Добавить комментарий Отменить ответ

5 комментариев

Максим, укажите, что именно в цитируемой фразе вы считаете неправильным.

Максим, никто не говорил, что функция КОРЕНЬ() возвращает именно арифметический корень; не арифметический корень может быть как положительным, так и отрицательным и равным нулю, главное, чтобы подкоренное выражение было положительное.

Читайте также: