Math.sin: примеры (PYTHON)
math.sin(x: float): floatОписание функции math.sin
Функция math.sin(x) является частью модуля math в Python и вычисляет синус угла x, заданного в радианах.
Применяется в научных вычислениях, компьютерной графике, обработке сигналов и физическом моделировании.
Аргумент x может быть целым или вещественным числом. Если передать нечисловой тип, возникнет TypeError.
Возвращаемое значение - вещественное число в диапазоне от -1 до 1, представляющее синус угла.
Для работы с комплексными числами используется модуль cmath.
Базовые примеры использования
Пример вычисления синуса для различных углов:
import math
# Синус нуля
print(math.sin(0))
0.0
# Синус пи/2
print(math.sin(math.pi / 2))
1.0
# Синус пи
print(math.sin(math.pi))
1.2246467991473532e-16
# Отрицательный угол
print(math.sin(-math.pi / 4))
-0.7071067811865475
Похожие функции в Python
math.cos - вычисляет косинус угла в радианах.
math.tan - возвращает тангенс угла в радианах.
cmath.sin - работает с комплексными числами.
numpy.sin - оптимизирован для массивов, применяется в научных вычислениях.
Функцию math.sin выбирают для одиночных вычислений, а numpy.sin - для обработки массивов данных.
Аналоги функции в других языках
JavaScript: Math.sin(x), угол в радианах.
console.log(Math.sin(Math.PI / 2));
1
Java: Math.sin(double a), возвращает double.
System.out.println(Math.sin(Math.PI / 2));
1.0
PHP: sin($x), аргумент в радианах.
echo sin(M_PI / 2);
1
C#: Math.Sin(double a), угол в радианах.
Console.WriteLine(Math.Sin(Math.PI / 2));
1
Go: math.Sin(x float64) float64.
import "math"
fmt.Println(math.Sin(math.Pi / 2))
1
Во всех языках функция принимает угол в радианах, аналогично Python.
Распространенные ошибки
Передача угла в градусах без преобразования в радианы.
import math
# Неверно: синус 90 градусов
print(math.sin(90))
0.8939966636005579
Правильный вариант:
print(math.sin(math.radians(90)))
1.0
Передача нечислового аргумента.
print(math.sin("90"))
TypeError: must be real number, not str
Большие значения аргумента, приводящие к потере точности.
print(math.sin(1e100))
-0.3723761236612767
Изменения в последних версиях Python
В Python 3.11 улучшена производительность математических функций, включая math.sin, за счет оптимизаций в интерпретаторе.
Семантика и возвращаемые значения остались без изменений.
Расширенные примеры применения
Генерация синусоидального сигнала:
import math
freq = 440 # Частота в Гц
sampling_rate = 44100
duration = 1.0 # Длительность в секундах
samples = []
for i in range(int(sampling_rate * duration)):
value = math.sin(2 * math.pi * freq * i / sampling_rate)
samples.append(value)
print(samples[:5])
[0.0, 0.06264832, 0.12505052, 0.18696144, 0.24813787]
Использование в векторных вычислениях с NumPy:
import numpy as np
angles = np.array([0, np.pi/2, np.pi])
print(np.sin(angles))
[0.0000000e+00 1.0000000e+00 1.2246468e-16]
Решение уравнения для нахождения угла по значению синуса:
import math
value = 0.5
angle = math.asin(value) # Обратная функция
print(f"Угол: {angle} радиан, {math.degrees(angle)} градусов")
Угол: 0.5235987755982988 радиан, 30.0 градусов
Применение в анимации для плавного изменения:
import math
time = 0.0
amplitude = 100
while time < 2 * math.pi:
y = amplitude * math.sin(time)
print(f"Time: {time:.2f}, Y: {y:.2f}")
time += 0.5
Time: 0.00, Y: 0.00 Time: 0.50, Y: 47.94 Time: 1.00, Y: 84.15 Time: 1.50, Y: 99.75 Time: 2.00, Y: 90.93 Time: 2.50, Y: 59.82 Time: 3.00, Y: 14.11 Time: 3.50, Y: -35.08 Time: 4.00, Y: -75.68 Time: 4.50, Y: -97.50 Time: 5.00, Y: -95.89 Time: 5.50, Y: -71.97