Содержание страницы
cmath – математические функции для комплексных чисел¶cmath – Mathematical functions for complex numbers
Этот модуль всегда доступен. Он предоставляет доступ к математическим функциям для комплексных чисел. Функции этого модуля принимают целые числа, числа с плавающей запятой или комплексные числа в качестве аргументов. Они также примут любой объект Python, у которого есть метод __complex__() или __float__(): эти методы используются для преобразования объекта в комплексное число или число с плавающей запятой соответственно, после чего функция применяется к результату преобразования.
Примечание
На платформах с аппаратной и системной поддержкой знакового нуля функции, использующие разрезы ветвей, непрерывны по обе стороны разреза: знак нуля отличает одну сторону от другой. На платформах без поддержки знакового нуля непрерывность описывается ниже.
Комплексные координаты¶Complex coordinates
Комплексные числа можно выразить с помощью двух важных систем координат. Тип complex в Python использует прямоугольные координаты, где число на комплексной плоскости определяется двумя числами с плавающей запятой: действительной и мнимой частями.
Определение:
z = x + 1j * y
x := real(z)
y := imag(z)
В технике для комплексных чисел популярна полярная система координат. В полярных координатах комплексное число определяется радиусом r и фазовым углом phi. Радиус r – это абсолютное значение комплексного числа, которое можно рассматривать как расстояние от точки (0, 0). Радиус r всегда равен 0 или положительному числу с плавающей запятой. Фазовый угол phi – это угол против часовой стрелки от положительной оси X, например, 1 имеет угол 0, 1j имеет угол π/2, а -1 – угол -π.
Примечание
Хотя phase() и func:polar возвращают +π для отрицательного действительного числа, они могут вернуть -π для комплексного числа с очень малой отрицательной мнимой частью, например, -1-1E-300j.
Определение:
z = r * exp(1j * phi)
z = r * cis(phi)
r := abs(z) := sqrt(real(z)**2 + imag(z)**2)
phi := phase(z) := atan2(imag(z), real(z))
cis(phi) := cos(phi) + 1j * sin(phi)
- cmath.phase(x)¶
- Возвращает фазу (также называемую аргументом) комплексного числа.
Функции модуля cmath¶cmath functions
- cmath.acos(x)¶
- Возвращает арккосинус x. Имеются два разреза ветвей: один простирается вправо от 1 вдоль вещественной оси до ∞, непрерывный снизу. Другой простирается влево от -1 вдоль вещественной оси до -∞, непрерывный сверху.
- cmath.acosh(x)¶
- Возвращает гиперболический арккосинус x. Имеется один разрез ветвей, идущий влево\nот 1 вдоль вещественной оси до -∞, непрерывный сверху.
- cmath.asinh(x)¶
- Возвращает гиперболический арксинус x. Имеется два разреза ветвей:\nОдин простирается от 1j вдоль мнимой оси до ∞j,\nнепрерывный справа. Другой простирается от -1j вдоль\nмнимой оси до -∞j, непрерывный слева.
- cmath.atan(x)¶
- Возвращает арктангенс x. Есть два разреза ветвей: один простирается от 1j вдоль мнимой оси до ∞j, непрерывно справа. Другой простирается от -1j вдоль мнимой оси до -∞j, непрерывно слева.
- cmath.atanh(x)¶
- Возвращает гиперболический арктангенс x. Имеется два разреза ветвей: Один\nпростирается от 1 вдоль вещественной оси до ∞, непрерывный снизу. Другой\nпростирается от -1 вдоль вещественной оси до -∞, непрерывный\nсверху.
- cmath.cos(x)¶
- Возвращает косинус x.
- cmath.cosh(x)¶
- Возвращает гиперболический косинус x.
- cmath.exp(x)¶
- Возвращает экспоненциальное значение e**x.
- cmath.isinf(x)¶
- Возвращает True, если действительная или мнимая часть x положительна или отрицательная бесконечность.
- cmath.isnan(x)¶
- Возвращает True, если действительная или мнимая часть x не является числом (NaN).
- cmath.log(x[, base])¶
- Возвращает логарифм x по заданному основанию. Если основание не указано, возвращает натуральный логарифм x. Имеется один разрез ветви: от 0 вдоль отрицательной вещественной оси до -∞, непрерывный сверху.
- cmath.sin(x)¶
- Возвращает синус x.
- cmath.sinh(x)¶
- Возвращает гиперболический синус x.
- cmath.tan(x)¶
- Возвращает тангенс x.
- cmath.tanh(x)¶
- Возвращает гиперболический тангенс x.
Модуль также определяет две математические константы:
- cmath.pi¶
- Математическая константа pi в виде числа с плавающей запятой.
- cmath.e¶
- Математическая константа e, в виде числа с плавающей запятой.
Обратите внимание: набор функций похож, но не идентичен набору из модуля math. Причина существования двух модулей в том, что некоторые пользователи не интересуются комплексными числами и, возможно, даже не знают, что это такое. Они предпочли бы, чтобы math.sqrt(-1) вызывал исключение, а не возвращал комплексное число. Также обратите внимание: функции, определённые в cmath, всегда возвращают комплексное число, даже если ответ можно выразить действительным числом (в этом случае комплексное число имеет нулевую мнимую часть).
Примечание о разрезах ветвей: это кривые, вдоль которых данная функция перестаёт быть непрерывной. Они являются необходимым свойством многих комплексных функций. Предполагается, что если вам нужно вычислять комплексные функции, вы разбираетесь в разрезах ветвей. Для понимания обратитесь к любой (не слишком элементарной) книге по комплексному анализу. Для получения информации о правильном выборе разрезов ветвей для численных расчётов хорошим справочником может служить следующее издание:
См. также
Кахан, У: Разрезы ветвей для комплексных элементарных функций; или Много шума из-за знакового бита. В книге Изерлеса, А. и Пауэлла, М. (ред.), Современное состояние численного анализа. Clarendon Press (1987) стр. 165-211.