Участники похода решили обменяться фотографиями (каждый с каждым).сколько человек учавствовали если понадобились 72 фотографии?…
Математика
Литература
Алгебра
Русский язык
Геометрия
Химия
Физика
Биология
Другие предметы
История
Обществознание
Окружающий мир
География
Українська мова
Українська література
Қазақ тiлi
Беларуская мова
Информатика
Экономика
Музыка
Право
Французский язык
Немецкий язык
МХК
ОБЖ
Психология
Физика вращения 3д тел / Хабр
Когда я раньше задумывался о вращении в 3д, мне было неуютно. Оно казалось сложным. Вспомнить, например, эффект Джанибекова с прецессией свободно вращающейся гайки. Настало время разобраться!
В статье Вас ждут математика, физика, а заодно численное моделирование и визуализация в libgdx.
Можно провести аналогии между массой тела в поступательном движении и моментом инерции. Разница только в том, что масса выражается одним-единственным числом, а момент инерции — матрицей 3х3. В большинстве примеров ограничиваются вращением в 2д, где существует только одна возможная ось вращения, либо симметричными телами типа мяча, когда момен инерции по всем осям одинаковый. Вместо этого я рассмотрю наиболее общий случай.
Математический аппарат
Скалярное произведение векторов:
Для векторов единичной длины позволяет узнать косинус угла между ними.
Векторное произведение — вектор, перпендикулярный векторам a и b, с длинной, равной произведениею длин векторов на синус угла между ними
Для векторного произведения порядок a и b важен:
При выборе системы отсчёта есть произвол, в какую из двух сторон откладывать векторное произведение. Системы координат можно разделить на «правые» и «левые». Дальнейшие рассуждения будуть работать и там и там.
Вектора и матрицы:
Я считаю, что вектор — столбик. Поэтому при умножении вектор ставится справа от матрицы, например
При умножении нескольких матриц можно смотреть как на преобразование вектора матрицей B, а потом матрицей A.
В игровых движках часто делают наоборот — вектор считается строчкой, домножается на матрицу слева, и преобразования «идут слева направо»:
Я буду использовать вектора-столбики, при желании можно транспонировать матрицы и применять то же самое к строчкам.
Представление вращения
Можно использовать углы Эйлера. Это три числа, но углы Эйлера неудобно комбинировать друг с другом. Кроме того, есть вырожденные состояния, при переходе через которые углы резко поменяются (например, направление «вверх»).
Матрицы 3х3. Из можно инвертировать, комбинировать (перемножать), но использование девяти чисел для представления трёх степеней свободы выглядит избыточным. Со временем в матрице могут копиться ошибки, и тогда кроме вращения в матрице появятся масштабирование и прочие эффекты. Существует ортогонализация Грамма-Шмидта для исправления накопившихся ошибок.
Кватернионы: на мой взгляд, очень красивая конструкция из четырёх чисел. В отличие от углов Эйлера, вырожденных состояний нет. Обычно для представления вращения используют кватернионы единичной длины, что оставляет три степени свободы. Накопившиеся при перемножении кватернионов ошибки легко убираются нормализацией. В математике их используют разными способами, нас будет интересовать возможность выразить вращение.
Компоненты кватерниона: (w, x, y, z)
Допустим, если есть ось вращения (v_x, v_y, v_z) и угол поворота a. В виде кватерниона это можно записать так:
В квантовой физике кватернионом можно описать спин частицы, и тогда между кватирнионами (1, 0, 0, 0) и (-1, 0, 0, 0) будет разница, но для нас они представляют одно и то же вращение. Это нетрудно заметить, если в предыдущей формуле увеличить угол a на 360 градусов. Вместо кватерниона (w, x, y, z) получится (-w, -x, -y, -z)
Кватернион очень легко инвертировать — поменять угол вращения на отрицательный (w, -x, -y, -z), ну или перевернуть w: (-w, x, y, z) Замена угла вращения на отрицательный выглядит как «переворот» оси вращения.
Нулевому вращению соответствуют кватернионы (1, 0, 0, 0) и (-1, 0, 0, 0)
Из кватерниона довольно легко «извлечь» ось вращения и угол поворота. Благодаря этому кватернион можно возводить в произвольную (нецелую) степень и использовать для интерполяции вращения.
Не обязательно ограничиваться чем-то одним, можно свободно преобразовывать одно представление вращения в другое и использовать то, что удобнее всего в данный момент.
Например, в игре можно:
1. Хранить и комбинировать вращения в виде кватернионов.
2. Для рисования графики преобразовывать кватернион в матрицу.
3. В логи писать углы Эйлера, как более понятные для человека.
В дальнейшем я храню ориентацию тела в виде кватерниона, а производные типа угловой скорости и ускорения — в виде векторов.
Физические обозначения
Лирическое отступление: на хабре какие-то диверсанты отключили маркдаун. Вместо этого есть «божественный» редактор, в котором формулы можно располагать только по центру страницы. Я не могу вставить формулу из пары символов прямо в текст. Статья в изначальном виде лежит на гитхабе, возможно будет удобнее читать прямо
там.Сила — F.
Аналог силы для вращения — крутящий момент:
Разница в домножении на «длину рычага».
У тела есть момент инерции I. Если тело не является шаром или кубом, то вдоль разных осей момент может быть разным. В общем случае I — тензор 3×3 с 9 чиселками. Из курса физики я помню, что с помощью поворота I всегда можно привести к диагональной форме с тремя числами вокруг трёх главных осей и остальными нулями.
Cкорость v, угловая скорость ω. Импульс:
Момент импульса:
Энергия поступательного движения
Кинетическая энергия вращения:
Линейное ускорение a, угловое ускорение ε.
Уравнения Эйлера:
Если моменты вращения тела вокруг главных осей равны, то
и уравнение упрощается до
Аналог для поступательного движения —
В общем случае:
Поэтому для свободно вращающегося тела ось вращения может меняться. Наглядной демонстрацией является эффект Джанибекова
Кроме того, нужно чётко понимать, в какой системе проводятся эти вычисления. Если тело как-то повёрнуто (допустим, матрицей R), то в глобальной системе отсчёта I преобразуется:
В виде кода у меня получилось так:
def globalI: Matrix3d = rot * objectI * rot.inverted()
def getAcceleration(torque: IVector3d): Vector3d = val I = globalI I.inverted() * (torque - omega.cross(I * omega))
и симуляция вращения:
def update(dt: Double, moment: IVector3d): Unit = val acc = body.getE(moment) val dw = Quaternion().setFromExp(body.omega * 0.5 * dt) body.rot := dw * body.rot body.omega.madd(acc, dt) t += dt
P. S. В примере была ошибка, исправил — ориентация должна обновляться на основе предыдущего значения скорости, а не нового.
Хочешь сделать хорошо — сделай сам
Так уж получилось, что в различных библиотеках для линейной алгребы были те или иные недостатки — например, не было кватернионов, или не хватало каких-то методов. Кроме того, есть произвол в определении направления вектороного произведения, в направлениях вращения и в том, считать вектора столбиками или строчками, что влияет на все дальнейшие формулы.
Спустя много лет использования разных библиотек и копирования кода туда-сюда я наконец-то собрался и написал свою библиотеку: https://github.com/Kright/ScalaGameMath
Возможно, было бы лучше написать библиотеку на java, чтобы её можно было использовать из любого jvm языка. Но тогда для scala придётся писать обёртку, чтобы вместо методов типа «`plus, minus«` и т.п. были доступны более удобные + и -.
Вектора, матрицы, кватернионы и т.п. используют double, а не float. Я не хочу бороться с ошибками округления и перспектива удвоенного количества занятых байтов меня не пугает.
По старой памяти и по аналогии с libgdx я cделал кучу изменяющих методов типа
«`+=«`, «`*=«` и т.п., а так же варианты типа «`Matrix *> vector«`, когда результат операции записывается в правый аргумент. Но потом я взял JMH), написал какие-то бенчмарки и выяснил, что JVM умеет в escape analysis. Создание временных объектов почти не влияет на производительность.
Можно писать код типа
a := b + c + d * m
Вместо менее читаемого опимизированного
a := b a += c a.madd(d, m)
Или ещё менее читаемого
((a := b) += c).madd(d. m)
Я не буду делать никаких общих утверждений, просто призываю не заниматься преждевременной оптимизацией без нужды. Простота и читаемость кода — это тоже очень важные свойства.
Кроме того, в моей библиотеке операции с кватернионами, матрицами, углами Эйлера и преобразования между ними согласованы друг с другом.
Например, можно превратить углы Эйлера в матрицы, перемножить их, превратить обратно в углы Эйлера и получить тот же самый результат, как если бы я в качестве промежуточного преставления использовал кватернионы.
Это очевидное требование, но его легко нарушить, если, допустим, добавлять кватернионы в чей-то проект с готовыми матрицами.
Я использовал property based testing и в тестах явно требовал математических свойств типа ассоциативности, обратимости и т.п.
Например, что для любых кватернионов
Как проверить корректность
По-сути, есть дифференциальное уравнение ε = f(w, R), которое можно численно решить.
Можно проверить на эффекте Джанибекова — взять тело с моментами инерции
И отправить его вращатья вокруг оси Y с каким-то возмущением.
Ось вращения будет прецессировать, а вот кинетическая энергия и момент импульса — оставаться постоянными. Если они не будут сохраняться, значит где-то есть ошибка — либо в формулах, либо в коде.
Для меня было небольшим открытием, что именно это нужно и тестировать. Получается очень просто! Взять произвольное тело с вращающимся телом и проверить, как сохраняются физические инварианты — импульс с энергия. Если что-то выглядит и крякает как утка — это она и есть 🙂 Такой тест по своей полезности оказывается важнее десятка юнит-тестов для отдельных функций.
Численное решение уравнения движения
Здесь и далее будет более прикладная часть с кодом.
Итак, вращение тела можно описать дифференциальным уравнением второго порядка. Для оценки того, насколько точное получилось решение, я буду запускать в свободный полёт «гайку» и смотреть на вращаельный импульс и энергию. Чем сильнее они отклоняются от начальных значений — тем менее точное решение.
Дальше будет сравнение четырёх численных способов решения:
Метод Эйлера первого порядка — точность ужасна, используется в качестве простейшего примера.
Улучшенный метод Эйлера, второго порядка.
Метод Рунге-Кутты второго порядка.
Метод Рунге-Кутты четвёртого порядка.
Ещё существует метод метод Верле — его часто используют в играх, вместо скорости надо хранить координаты в текущий и в предыдущий момент времени. Но для рассчёта ускорения вращающегося тела надо знать его точную скорость, а её в явном виде нет.
В защиту своей лени скажу, что метод Рунге-Кутты второго порядка очень похож на метод Верле — делается «подшаг» на половину шага вперёд, там считается ускорение и это ускорение применяется для рассчёта следующего состояния из текущего.
Для наглядности для каждого метода решения я построил графики отклонений по вращательной энергии и по кинетической энергии.
В общем виде решаем уравнение с каким-то шагом dt и известным $y_0$
Конкретно в нашем случае уравнение второго порядка, которое можно записать так:
вектор (y»,y’) можно обозвать как-нибудь типа Y и свести всё к диффуру первого порядка:
В моём коде есть вспомогательные классы типа State3d(Position3d, Velocity3d), а так же производная State3dDerivative(Velocity3d, Acceleration3d)
В этих терминах решение выражается просто и красиво.
Метод Эйлера
Именем Леонарда Эйлера названо очень много всего — и углы, и уравнение вращения, и способ численного решения дифференциальных уравнений.
Самый простой, но катастрофически неточный.
Точность линейно зависит от размера шага.
В виде кода получается так:
val k1 = getDerivative(initial, time) nextState(initial, k1, dt)
Для каждого из методов — график изменения энергии и отклонения момента импульса. Шаг рассчётов 0.01 сек, скорость вращения — порядка 1 радиана в секунду, время симуляции — 100 сек.
Синяя линяя — изменение кинетической энергии, делённое на начальную энергию для нормирования.
Красная Оранжевая линия — отклонение момента импульса L от начального, опять же делённое на начальный |L|.
Улучшенный метод Эйлера
Второй порядок точности.
Считаем ускорение в начальной точке, по нему находим «приблизительную следующую» точку (в обычном методе Эйлера мы бы тут и остановились)
Потом считаем ускорение в «приблизительно следующей» точке, усредняем его с ускорением в начальной и уже по этому ускорению находим конечную.
val k1 = getDerivative(initial, time) val k2 = getDerivative(nextState(initial, k1, dt), time + dt) val kMean = newZeroDerivative() madd(kMean, k1, 0.5) madd(kMean, k2, 0.5) nextState(initial, kMean, dt)
Советую обратить внимание на масштаб. Относительная ошибка составляет 0.0001 от L, кинетическая энергия осцилирует слабее, но решительно и неутомимо растёт.
Метод Рунге-Кутты второго порядка
Второй порядок, похоже на метод Верле.
Находим ускорение, делаем половину шага вперёд и находим ускорение там.
А потом применяем делаем шаг от _начального_ состояния с этим ускорением.
val k1 = getDerivative(initial, time) val k2 = getDerivative(nextState(initial, k1, 0.5 * dt), time + 0.5 * dt) nextState(initial, k2, dt)
Точность примерно такая же как в предыдущем методе. Энергия вращения потихоньку убывает. Я не проверял этот факт для всех возможных моментов инерции, просто забавный момент.
Метод Рунге-Кутты четвёртого порядка
Если предыдущие методы было легко представить и понять, то в этом я не могу сказать, почему коэффициенты именно такие.
Берутся аж 4 точки — начальная, пол-шага вперёд, «уточнённые» пол-шага и потом шаг вперёд. Ускорения из всех четырёх точек усредняются с какими-то весами и с этим усреднённым делается шаг.
Я не буду писать длинные формулы, напишу сразу код:
val k1 = getDerivative(initial, time) val k2 = getDerivative(nextState(initial, k1, 0.5 * dt), time + 0.5 * dt) val k3 = getDerivative(nextState(initial, k2, 0.5 * dt), time + 0.5 * dt) val k4 = getDerivative(nextState(initial, k3, dt), time + dt) val kMean = newZeroDerivative() madd(kMean, k1, 1.0 / 6.0) madd(kMean, k2, 2.0 / 6.0) madd(kMean, k3, 2.0 / 6.0) madd(kMean, k4, 1.0 / 6.0) nextState(initial, kMean, dt)
Для L ошибка меньше раза в 3, энергия вращения в среднем растёт на какую-то крохотную капелюшечку — меньше одной стотысячной. Если между методами первого и второго порядка радикальная разница в точности, то переход к четвёртмоу порядку, похоже, даёт небольшой вклад.
Возможно, я где-то ошибся и вместо четвёртого порядка точности у меня так и остался второй. Надеюсь, что нет.
Если симулировать только линейные движения тел, то толку от метода четвёртого порядка может и не быть — например свободно падающее тело двигатеся с постоянным ускорением g, производная от ускорения и последующие производные равны нулю, метод второго порядка точности даст идеально точное решение.
Для сравнения три графика — с шагом в 0.1, 0.01 и 0.001.
Предлагаю обратить внимание на левый график. За шаг модель поворачивается примерно на 0.1 радиана. Примерно 6 градусов. Точность хуже, за пару десятков оборотов ошибка успевает вырасти на 0.2%. Можно добавить в модель слабую силу трения, чтобы энергия не росла и использовать её в играх. Вряд ли игрок расстроится, если вращение будет потихоньку «затухать» с характерным временем в несколько часов.
Кроме явных схем решения дифференциальных уравнений есть ещё и неявные. Я в них не разбираюсь, поэтому ничего про них не пишу.
Код солверов в двух местах:
абстрактные функции
код для 3д тел, который их вызывает
Результаты
В репозитории лежит sbt проект. Можно запустить «`sbt run«` и выбрать один из двух вариантов:
libgdxDemo — симуляция + визуализация вращения «гайки»
precisionTest — сравнение разных солверов на разных шагах по времени. Порядок скорости вращения — единица. Вместо увеличения скорости вращения тела можно «эмулировать» это увеличением шага по времени для той же скорости. Для понимания происходящего результаты сохранятся в виде csv файлов. В репозитории их нет, надо хотя бы разок запустить precisionTest.
Рядом лежит jupyter notebook, в котором можно полюбоваться на графики изменения ошибок в зависимости от времени.
Например, для шага в 0.1 секунды методы второго порядка становятся не очень точными, за условные 100 секунд и пару десятков оборотов накапливается ошибка в два-три процента. У Рунге-Кутты четвёртого порядка точность лучше, накопленная ошибка — около одной четвёртой процента.
Графики такие же как в статье, но их больше. Для разных методов сравниваются разные шаги по времени. 7 и её, наверно, хватит всем.
Sin pi/6 — Найдите значение Sin pi/6
LearnPracticeDownload
Значение sin pi/6 равно 0,5 . Sin пи/6 радиан в градусах записывается как sin ((π/6) × 180°/π), т. е. sin (30°). В этой статье мы обсудим методы нахождения значения sin pi/6 на примерах.
- Sin пи/6: 1/2
- Sin pi/6 в десятичной системе: 0,5
- Sin (-pi/6): -0,5 или -(1/2)
- Sin pi/6 в градусах: грех (30°)
Каково значение Sin pi/6?
Значение sin pi/6 в десятичной системе равно 0,5. Sin pi/6 также можно выразить с помощью эквивалента заданного угла (pi/6) в градусах (30°).
Мы знаем, используя преобразование радиан в градусы, θ в градусах = θ в радианах × (180°/pi)
⇒ пи/6 радиан = пи/6 × (180°/пи) = 30° или 30 градусов
∴ sin pi/6 = sin π/6 = sin(30°) = 1/2 или 0,5
Объяснение:
Для sin pi/6 угол pi/6 лежит между 0 и pi/2 (первый квадрант). Поскольку функция синуса положительна в первом квадранте, значение sin pi/6 = 1/2 или 0,5
Поскольку функция синуса является периодической функцией, мы можем представить sin pi/6 как sin pi/6 = sin(pi/6 + n × 2pi), n ∈ Z.
⇒ sin pi/6 = sin 13pi/6 = sin 25pi/6 и так далее.
Примечание: Поскольку синус является нечетной функцией, значение sin(-pi/6) = -sin(pi/6).
Методы определения значения Sin пи/6
Функция синуса положительна в 1-м квадранте. Значение sin pi/6 равно 0,5. Мы можем найти значение sin pi/6 по:
- Используя тригонометрические функции
- Использование единичного круга
Sin pi/6 в терминах тригонометрических функций
Используя формулы тригонометрии, мы можем представить sin pi/6 как:
- ± √(1-cos²(pi/6))
- ± тангенс(пи/6)/√(1 + тангенс²(пи/6))
- ± 1/√(1 + раскладушка²(pi/6))
- ± √(сек²(пи/6) — 1)/сек(пи/6)
- 1/косек(пи/6)
Примечание: Поскольку pi/6 лежит в 1-м квадранте, окончательное значение sin pi/6 будет положительным.
Мы можем использовать тригонометрические тождества для представления sin pi/6 как
- sin(pi — pi/6) = sin 5pi/6
- -sin(pi + pi/6) = -sin 7pi/6
- cos(pi/2 — pi/6) = cospi/3
- -cos(pi/2 + pi/6) = -cos 2pi/3
Sin pi/6 с помощью единичной окружности
Чтобы найти значение sin π/6 с помощью единичной окружности:
- Поверните ‘r’ против часовой стрелки, чтобы образовать угол pi/6 с положительной осью x.
- Синус числа pi/6 равен координате y(0,5) точки пересечения (0,866, 0,5) единичной окружности и r.
Отсюда значение sin pi/6 = y = 0,5
☛ Также проверьте:
- cot pi/8
- кроватка 3pi/2
- грех 5pi
- грех 5pi/4
- кроватка пи/2
- рыжевато-коричневый 5pi/3
Примеры использования Sinpi/6
Пример 1. Найдите значение 5 sin(pi/6)/7 cos(pi/3).
Решение:
Используя тригонометрические тождества, мы знаем, что sin(pi/6) = cos(pi/2 — pi/6) = cos(pi/3).
⇒ sin(pi/6) = cos(pi/3)
⇒ Значение 5 sin(pi/6)/7 cos(pi/3) = 5/7Пример 2. Используя значение sin pi/6, найдите: (1-cos²(pi/6)).
Решение:
Мы знаем, (1-cos²(pi/6)) = (sin²(pi/6)) = 0,25
⇒ (1-cos²(pi/6)) = 0,25Пример 3: Упростить: 5 (sin(pi/6)/sin(13pi/6))
Решение:
Мы знаем, что sin pi/6 = sin 13pi/6
⇒ 5 sin(pi/6)/sin(13pi/6) = 5(sin(pi/6)/sin(pi/6))
= 5(1) = 5
перейти к слайдуперейти к слайдуперейти к слайду
Готовы увидеть мир глазами математика?
Математика лежит в основе всего, что мы делаем. Наслаждайтесь решением реальных математических задач на живых уроках и станьте экспертом во всем.
Забронировать бесплатный пробный урок
Часто задаваемые вопросы о Sin pi/6
Что такое Sin pi/6?
Sin pi/6 — значение тригонометрической функции синуса для угла, равного pi/6 радианам. Значение sin pi/6 равно 1/2 или 0,5.
Каково значение Sin pi/6 в пересчете на Cosec pi/6?
Поскольку функция косеканса является обратной величиной функции синуса, мы можем записать sin pi/6 как 1/cosec(pi/6). Значение cosec pi/6 равно 2.
Как найти значение Sin pi/6?
Значение sin pi/6 можно рассчитать, построив угол π/6 радиан с осью x, а затем найдя координаты соответствующей точки (0,866, 0,5) на единичной окружности. Значение sin pi/6 равно координате y (0,5). ∴ sin пи/6 = 0,5.
Каково значение Sin pi/6 в пересчете на Cot pi/6?
Мы можем представить функцию синуса в терминах функции котангенса, используя тригонометрические тождества, sin pi/6 можно записать как 1/√(1 + cot²(pi/6)). Здесь значение cot pi/6 равно 1,7321.
Как найти Sin pi/6 с точки зрения других тригонометрических функций?
Используя формулу тригонометрии, значение sin π/6 можно выразить через другие тригонометрические функции следующим образом:
- ± √(1-cos²(pi/6))
- ± тангенс(пи/6)/√(1 + тангенс²(пи/6))
- ± 1/√(1 + раскладушка²(pi/6))
- ± √(сек²(пи/6) — 1)/сек(пи/6)
- 1/косек(пи/6)
☛ Также проверьте: тригонометрическую таблицу
Скачать БЕСПЛАТНЫЕ учебные материалы
Тригонометрия
Рабочие листы по математике и
наглядная программа
1 | Найти точное значение | грех(30) | |
2 | Найти точное значение | грех(45) | |
3 | Найти точное значение 902:30 | грех(30 градусов) | |
4 | Найти точное значение | грех(60 градусов) | |
5 | Найти точное значение | загар(30 градусов) | |
6 | Найти точное значение | угловой синус(-1) | |
7 | Найти точное значение | грех(пи/6) | |
8 | Найти точное значение | cos(pi/4) | |
9 | Найти точное значение | грех(45 градусов) | |
10 | Найти точное значение | sin(pi/3) | |
11 | Найти точное значение | арктический(-1) | |
12 | Найти точное значение | cos(45 градусов) | |
13 | Найти точное значение | cos(30 градусов) | |
14 | Найти точное значение | желтовато-коричневый(60) | |
15 | Найти точное значение | csc(45 градусов) | |
16 | Найти точное значение | загар(60 градусов) | |
17 | Найти точное значение | сек(30 градусов) | |
18 | Найти точное значение | cos(60 градусов) | |
19 | Найдите точное значение | соз(150) | |
20 | Найти точное значение | грех(60) | |
21 | Найти точное значение | cos(pi/2) | |
22 | Найти точное значение | загар (45 градусов) | |
23 | Найти точное значение | arctan(- квадратный корень из 3) | |
24 | Найти точное значение | csc(60 градусов) | |
25 | Найти точное значение | сек(45 градусов) | |
26 | Найти точное значение | csc(30 градусов) | |
27 | Найти точное значение | грех(0) | |
28 | Найти точное значение | грех(120) | |
29 | Найти точное значение | соз(90) | |
30 | Преобразовать из радианов в градусы | пи/3 | |
31 | Найти точное значение | желтовато-коричневый(30) | |
35 | Преобразовать из радианов в градусы | пи/6 | |
36 | Найти точное значение | детская кроватка(30 градусов) | |
37 | Найти точное значение | арккос(-1) | |
38 | Найти точное значение | арктический(0) | |
39 | Найти точное значение | детская кроватка(60 градусов) | |
40 | Преобразование градусов в радианы | 30 | |
41 | Преобразовать из радианов в градусы | (2 шт. )/3 | |
42 | Найти точное значение | sin((5pi)/3) | |
43 | Найти точное значение | sin((3pi)/4) | |
44 | Найти точное значение | желтовато-коричневый (пи/2) | |
45 | Найти точное значение | грех(300) | |
46 | Найти точное значение | соз(30) | |
47 | Найдите точное значение | соз(60) | |
48 | Найти точное значение | соз(0) | |
49 | Найти точное значение | соз(135) | |
50 | Найти точное значение | cos((5pi)/3) | |
51 | Найти точное значение | соз(210) | |
52 | Найти точное значение | сек(60 градусов) | |
53 | Найти точное значение | грех(300 градусов) 902:30 | |
54 | Преобразование градусов в радианы | 135 | |
55 | Преобразование градусов в радианы | 150 | |
56 | Преобразовать из радианов в градусы | (5 дюймов)/6 | |
57 | Преобразовать из радианов в градусы | (5 дюймов)/3 | |
58 | Преобразование градусов в радианы | 89 градусов | |
59 | Преобразование градусов в радианы | 60 | |
60 | Найти точное значение | грех(135 градусов) | |
61 | Найти точное значение | грех(150) | |
62 | Найти точное значение | грех(240 градусов) | |
63 | Найти точное значение | детская кроватка(45 градусов) | |
64 | Преобразовать из радианов в градусы | (5 дюймов)/4 | |
65 | Найти точное значение | грех(225) | |
66 | Найдите точное значение | грех(240) | |
67 | Найти точное значение | cos(150 градусов) | |
68 | Найти точное значение | желтовато-коричневый(45) | |
69 | Оценить | грех(30 градусов) | |
70 | Найти точное значение | сек(0) | |
71 | Найти точное значение | cos((5pi)/6) | |
72 | Найти точное значение | КСК(30) | |
73 | Найти точное значение | arcsin(( квадратный корень из 2)/2) | |
74 | Найти точное значение | желтовато-коричневый ((5pi)/3) | |
75 | Найти точное значение | желтовато-коричневый(0) | |
76 | Оценить | грех(60 градусов) | |
77 | Найти точное значение | arctan(-(квадратный корень из 3)/3) | |
78 | Преобразовать из радианов в градусы | (3 шт. |