Python. Модуль math. Тригонометрические функции
Содержание
- 1. Особенности применения тригонометрических функций. Преобразование радиан в градусы и наоборот
- 2. Средства языка Python для конвертирования из градусов в радианы и наоборот. Функции math.degrees(x) и math.radians(x)
- 3. Ограничения на использование тригонометрических функций
- 4. Функция math.acos(x). Арккосинус угла
- 5. Функция math.asin(x). Арксинус
- 6. Функция math.atan(x). Арктангенс
- 7. Функция math.atan2(x, y). Арктангенс от x/y
- 8. Функция math.cos(x). Косинус угла
- 9. Функция math.sin(x)
- 10. Функция math.hypot(x, y). Евклидовая норма (Euclidean norm)
- 11. Функция math.tan(x). Тангенс угла x
- Связанные темы
Поиск на других ресурсах:
1. Особенности применения тригонометрических функций. Преобразование радиан в градусы и наоборот
Чтобы использовать тригонометрические функции в программе, нужно подключить модуль math
import math
Все тригонометрические функции оперируют радианами.
1 радиан = 180°/π = 57.2958°
Если известен угол в градусах, то для корректной работы тригонометрических функций, этот угол нужно преобразовать в радианы.
Например. Задан угол, имеющий n градусов. Найти арккосинус этого угла. В этом случае формула вычисления результата будет следующей:
... n_rad = n*3.1415/180 # получить угол в радианах ac = math.acos(n_rad) # вычислить арккосинус ...
Чтобы получить более точное значение результата, в программе можно использовать константу math.pi, которая определяет число π. В этом случае текст программы будет иметь следующий вид
n_rad = n*math.pi/180 # получить угол в радианах ac = math.acos(n_rad) # вычислить арккосинус
⇑
2. Средства языка Python для конвертирования из градусов в радианы и наоборот. Функции math.degrees(x) и math.radians(x)
В языке Python существуют функции преобразования из градусов в радианы и, наоборот, из радиан в градусы.
Функция math.degrees(x) конвертирует значение параметра x из радиан в градусы.
Функция math.radians(x) конвертирует значение параметра x из градусов в радианы.
Пример.
# Функция math.degrees(x) import math x = 1 # x - угол в радианах y = math.degrees(x) # y = 57.29577951308232 - угол в градусах x = math.pi # x = 3.1415... y = math.degrees(x) # y = 180.0 # Функция math.radians(x) x = 180.0/math.pi y = math.radians(x) # y = 1.0 x = 45 # x - угол в градусах y = math.radians(x) # y = 0.7853981633974483
⇑
3. Ограничения на использование тригонометрических функций
При использовании тригонометрических функций следует учитывать соответствующие ограничения, которые следуют из самой сущности этих функций. Например, не существует арксинуса из числа, которое больше 1.
Если при вызове функции задать неправильный аргумент, то интерпретатор выдаст соответствующее сообщение об ошибке
ValueError: math domain error
⇑
4.
Функция math.acos(x). Арккосинус углаФункция acos(x) возвращает арккосинус угла x. Аргумент x задается в радианах и может быть как целым числом, так и вещественным числом.
Пример.
# Функция math.acos(x) import math n = float(input('n = ')) # ввести n n_rad = n*math.pi/180 # получить угол в радианах ac = math.acos(n_rad) # вычислить арккосинус print('n_rad = ', n_rad) print('ac = ', ac)
Результат работы программы
n = 35 n_rad = 0.6108652381980153 ac = 0.913643357298706
⇑
5. Функция math.asin(x). Арксинус
Функция math.asin(x) вычисляет арксинус угла от аргумента x. Значение аргумента x задается в радианах.
Пример.
# Функция math.asin(x) import math n = 10 # n - угол в градусах # конвертировать из градусов в радианы n_rad = n*math.pi/180 # n_rad = 0.17453292519943295 # вычислить арксинус asn = math. asin(n_rad) # asn = 0.17543139267904395
⇑
6. Функция math.atan(x). Арктангенс
Функция math.atan(x) возвращает арктангенс аргумента x, значение которого задается в радианах. При использовании функции важно помнить допустимые значения x, которые можно задавать при вычислении арктангенса.
Пример.
# Функция math.atan(x) import math n = 60 # n - угол в градусах # конвертировать из градусов в радианы n_rad = n*math.pi/180 # n_rad = 1.0471975511965976 # вычислить арктангенс atn = math.atan(n_rad) # atn = 0.808448792630022
⇑
7. Функция math.atan2(x, y). Арктангенс от x/y
Функция math.atan2(x, y) вычисляет арктангенс угла от деления x на y. Функция возвращает результат от —π до π. Аргументы x, y определяют координаты точки, через которую проходит отрезок от начала координат. В отличие от функции atan(x), данная функция правильно вычисляет квадрант, влияющий на знак результата.
Пример.
# Функция math.atan2(x,y) import math x = -2 y = -1 res = math.atan2(x, y) # res = -2.0344439357957027
⇑
8. Функция math.cos(x). Косинус угла
Пример.
# Функция math.cos(x) import math x = 0 y = math.cos(x) # y = 1.0 x = math.pi y = math.cos(x) # y = -1.0 x = 2 # 2 радианы y = math.cos(x) # y = -0.4161468365471424
⇑
9. Функция math.sin(x)
Функция math.sin(x) возвращает синус угла от аргумента x, заданного в радианах.
Пример.
# Функция math.sin(x) import math x = math.pi y = math.sin(x) # y = 1.2246467991473532e-16 x = 0 y = math.sin(x) # y = 0.0 x = 2 # 2 радиана y = math.sin(x)
⇑
10.
Функция math.hypot(x, y). Евклидовая норма (Euclidean norm)Функция возвращает Евклидовую норму, которая равна длине вектора от начала координат до точки x, y и определяется по формуле
Пример.
# Функция math.hypot(x, y) import math x = 1.0 y = 1.0 z = math.hypot(x, y) # z = 1.4142135623730951 x = 3.0 y = 4.0 z = math.hypot(x, y) # z = 5.0
⇑
11. Функция math.tan(x). Тангенс угла x
Функция math.tan(x) возвращает тангенс от аргумента x. Аргумент x задается в радианах.
Пример.
# Функция math.tan(x, y) import math x = 1.0 y = math.tan(x) # y = 1.5574077246549023 x = 0.0 y = math.tan(x) # y = 0.0
⇑
Связанные темы
- Теоретико-числовые функции и функции представления
- Степенные и логарифмические функции
- Гиперболические функции
- Специальные функции и константы
⇑
Розв’язок нелінійних рівнянь інтерполяційними методами в середовищі програмування delphi
Перейти до вмісту
Ростислав Програми на Delphi (Методи обчислення)
Програма знаходить наближений розв’язок нелінійного рівняння на заданому інтервалі з заданою точністю і використовує для цього два методи, які відносяться до категорії інтерполяційних, а саме
- Панель інструментів: містить чотири поля типу TEdit, два з яких відповідають за значення кінців проміжоку на якому міститься корінь рівняння і два що залишилось, відповідають за точність обчислювального процесу та функцію, що міститься в лівій частині розв’язуваного рівняння; дві кнопки типу TButton одна з яких безпосередньо реалізує алгоритми інтерполяційних методів та друга — видаляє всі введені користувачем значення і готує проект до нового прикладу; один компонент типу StringGrid, у комірки якого містять заносяться точки послідовного наближення до розв’язку, та кількість ітерацій необхідних для досягнення заданої точності обох методів.
- Область графічного представлення: містить два компоненти типу TChart на кожному з яких представлено графіка функції а також вище згадувані точки послідовного наближення.
Після того, як призначення основних елементів форми проекту відомо, провіримо його роботу на конкретному прикладі, а саме знайдемо наближений розв’язок рівняння на проміжку і в якості критерію закінчення ітераційного процесу обох методів візьмемо число .
Для цього, запустимо delphi-проект «Розв’язок нелінійних рівнянь інтерполяційними методами
Зауваження: програма розуміє круглі дужки, знаки арифметичних операцій * + — /, знак піднесення до степеня ^, число pi та наступні математичні функції: sin, cos, tg, ctg, arcsin, arccos, arctg, arcctg, abs, ln, lg, log, exp.
Скачати delphi-проект Розв’язок нелінійних рівнянь інтерполяційними методами.
Ми в соціальних мережах
Delphi програмаDelphi проектінтерполяційний метод другого порядку на delphiінтерполяційний метод на delphiінтерполяційний метод першого порядку на delphiметод параболметод хордметоди обчислення на Delphiчисельні методи на Delphi
Обратный тангенс — Программирование — Chief Delphi
D.Viddy
1
Мне нужно знать, как это сделать на RC. Нам нужно найти угол джойстика только из переменных X и Y. Обычно используется арктангенс. Но RC не предоставляет эту функцию. Параметры?
n_ate_vw
2
Вы можете сделать аппроксимацию Талиора или что-то в этом роде. Об этом уже было обсуждение.
Возврат обратных триггерных функций объясняет арксинус и арккосинус.
Дамиан_Манда
3
Мы (команда 159) только что закончили программировать нашу программу трансляционного привода. Это делает именно то, что вы хотите, вычисляя угол из значений джойстика. Хотя он использует два джойстика, его можно легко адаптировать к одному. Источник будет опубликован позже сегодня вечером, в разделе 9 официальных документов.0005
ттедроу
4
Дамиан,
Просто предложение. Если вы поместите свою подпрограмму за пределы основного цикла, вы можете избавиться от GOTO.
Тим Тедроу
Райан_Меадор
5
Моя команда использует функцию арктангенса по другой причине… Мы остановились на приближенной формуле (погрешность не более 1/2 %). Мы можем или не можем решить запустить это в пользовательской схеме. Если вы мне в личку, я получу приближение. Это функция, состоящая из трех частей. Использует только четыре основные операции
система
6
sin x = 16x (p — x)/[5p2- 4x (p — x)]
x = 0 формула = 0,00000 sin x = 0,00000 ошибка = 0,00000
x = p/20 формула = 0,15800 sin x = 0,15643 ошибка = 0,00157
х = p/10 формула = 0,31034 sin x = 0,30903 ошибка = 0,00131
x = 3p/20 формула = 0,45434 sin x = 0,45399 ошибка = 0,0057 формула sin/p/0
5 90 = 0,58778 ошибка = -0,00062
x = формула p/4 = 0,70588 sin x = 0,70710 ошибка = -0,00122
x = формула p/10 = 0,80769 sin x = 0,80903 ошибка = -0,00134
x = формула 7p/20 = 0,8803,8 sin ошибка = -0,00105
x = 2p/5 формула = 0,95050 sin x = 0,95105 ошибка = -0,00055
x = 9p/20 формула = 0,98753 sin x = 0,98769 ошибка = -0,00016
x = p/00 формула sin x = 1,00000 error = 0,00000
Если найти это в Интернете, и это довольно точно . .. есть некоторые вещи с аппроксимирующими рядами, но я не мог заставить их работать правильно, но это, кажется, работает очень хорошо. Формула, которая удивительно точна, и использование формулы приводит к максимальной ошибке менее одного процента
И PS эта формула была впервые открыта этим индийским парнем по имени Бхаскара I в 629 году нашей эры.
Теперь все, что вам нужно сделать, это найти формулу для Cos и ur set lol
Cipher X
система
7
Кстати, последний пост не имеет ничего общего с арктаном, ну, может быть, но бесполезен, но я подумал, что кто-то может использовать его для чего-то, так что…
система 99)/9 = 5.000939788
Чем больше терминов вы укажете, тем точнее будет ваш ответ:
!Единственная проблема, с которой вы можете столкнуться в pbasic, это память и скорость!
Шифр X
К_Сконтрианос
9
Ха-ха. Обратный триггер — мне все слишком знакомо. Мы думали использовать его для нашего проекта роботов (см. ссылку ниже), но после поиска на форумах ChiefDelphi мы отказались от него. Это слишком сложно и сложно для BASIC, и это просто не стоило усилий для нашего проекта. Помните, что если ваша программа выполняется слишком долго, ваш робот выключается, так что это может быть небольшой проблемой. Посмотрите, нет ли более простого решения. Inverse Trig, BASIC и Binary Radian не очень хорошо сочетаются.
Джо_Росс
10
Я бы сделал таблицу поиска (в EEPROM) с любой функцией, которая вам нужна.
Чтение из EEPROM намного быстрее, чем выполнение набора сложных (или даже не очень сложных) уравнений
Adam_Krajewski
11
9-1 в паскале? Это называется обратным касанием X ..
Это не то же самое, что 1/tan(x) …
Стефан Разработчик Delphi | Пт, 16 марта 2001 г. 03:00:00 GMT Re: как написать инверсию TAN на паскале?ЦитатаВ воскресенье, 27 сентября 1998 г., 23:39:07 по Гринвичу, Филип Чонг |
Боб Шо Разработчик Delphi | 9-1 в паскале? > >Это называется обратным касанием X . . > >Это не то же самое, что 1/tan(x) … > Верно. Часто функция, которую вы ищете, также называется atan(), например Одна интересная «изюминка» заключается в том, что обратные триггерные функции являются Некоторые языки (например, Fortran) имели две функции арктангенса, одна от 0 до 2 пи или от -пи до пи. Паскаль имеет только один аргумент atan . Однако довольно просто написать функцию с двумя аргументами (которую я часто называю «функцией арктангенса (x, y : вещественное) : действительное;») для возврата значений в пределах полного диапазона 2 пи. Такая функция также может правильно обрабатывать «бесконечные» аргументы (т. е. может возвращать pi/2 или -pi/2, углы, касательные которых довольно велики…), проверяя, является ли значение x равным очень близко к 0 (строго говоря, следует также проверить, что аргумент y НЕ близок к нулю — нужно избежать неопределенного случая 0/0). Боб Шор |
Доктор Джон Стокто Разработчик Delphi | Пт, 16 марта 2001 г. 03:00:00 GMT Re: как написать инверсию TAN на паскале?JRS: В статье <360fcc30. 9-1 в паскале? >Это называется обратным касанием X .. >Это не то же самое, что 1/tan(x) … Arctan(x). Введенный виртом, должен быть во всех паскалях. В моем — |
Доктор Джон Стокто Разработчик Delphi | Пт, 16 марта 2001 г. 03:00:00 GMT Re:как написать обратный TAN на паскале? JRS: В статье <[email protected]> от понедельника, 28 сентября Цитата
Если вы знаете, что компьютер имеет FPU/сопроцессор, сравнимый с В Borland Pascal это равно (* От: Терье Матисен *) Функция atan2(y : расширенный; x : расширенный): расширенный; — |
Стефан А. Дойч Разработчик Delphi | Сб, 17 марта 2001 г. 03:00:00 GMT Re: как написать инверсию TAN на паскале?ЦитатаВ понедельник, 28 сентября 1998 г., 08:58:17 -0400, Боб Шор |
Боб Шо Разработчик Delphi | Сб, 17 марта 2001 г. 03:00:00 GMT Re: как написать инверсию TAN на паскале?ЦитатаШтефан А. Дойчер написал: Никаких возражений с моей стороны! Мой предполагаемый смысл был таков: «Фортран имел (до Паскаля) функцию atan2». Я не имел в виду, что Fortran больше не существует! У меня Боб Шор |
Сандро дель Монт Разработчик Delphi | Пн, 26 марта 2001 г. 03:00:00 GMT Re: как написать инверсию TAN на паскале?АРКТАН(Х) ОК!? ЦитатаШтефан А. Дойчер написал: |