<complex>

Определяет шаблон complex класса контейнера и его вспомогательные шаблоны.

Требования

Заголовок: <сложный>

Пространство имен: std

Замечания

Комплексное число — это упорядоченная пара реальных чисел. В чисто геометрических терминах сложная плоскость является реальной двухмерной плоскости. Отличия комплексной плоскости от вещественной состоят в том, что у нее есть дополнительная алгебраическая структура. У этой структуры есть две основные операции.

  • Добавление, определенное как (a, b) + (c, d) = (a + , b) +

  • Умножение, определенное как (a, b) * (c, d) = (ac - bd, ad + bc)

Набор сложных чисел с операциями сложного сложения и сложного умножения — это поле в стандартном алгебраическом смысле:

  • Операции сложения и умножения коммутативны и ассоциативны, а умножение распределяется над сложением точно так же, как для вещественного сложения и умножения в поле вещественных чисел.

  • Комплексное число (0, 0) представляет собой аддитивный элемент, а число (1, 0) — мультипликативный элемент.

  • Аддитивный обратный для комплексного числа (a, b) имеет значение (-a, -b), а умножение для всех таких сложных чисел, кроме (0, 0) является

    (a/(a2 + b2), -b/(a2 + b2))

Представляющее комплексное число z = (a, b) в форме z + = a bi, где i2 = -1, правила для алгебры набора реальных чисел можно применять к набору сложных чисел и к их компонентам. Например:

(1 +2 i) * (2 + 3 i) = 1 * (2+ 3 i) + 2i * (2 + 3 i) = (2 + 3i) + (4i + 6 i 2) = (2 - 6) + (3 + 4)i = -4 + 7 i

Система сложных чисел — это поле, но это не упорядоченное поле. Нет порядка сложных чисел, так как для поля реальных чисел и его подмножеств, поэтому неравенство нельзя применять к сложным числам, так как они относятся к реальным числам.

Существует три общие формы представления комплексного числа z:

  • Декартиан: z = a bi +

  • Полярный: z = r (cos p i sin p) +

  • Экспоненциальный: z = r * e ip

В этих стандартных представлениях комплексных чисел используются следующие термины.

  • Вещественный компонент арифметического представления или действительная часть a.

  • Мнимый компонент арифметического представления или мнимая часть b.

  • Модулу или абсолютное значение сложного числа r.

  • Аргумент или угол фазы p в радианах.

Если иное не указано, функции, которые могут возвращать несколько значений, требуются для возврата основного значения для аргументов больше -π и меньше или равно +π, чтобы сохранить их однозначным значением. Все угла должны быть выражены в радианах, где в круге есть 2π радиан (360 градусов).

Участники

Функции

Имя Описание
abs Вычисляет модуль комплексного числа.
acos
acosh
arg Извлекает аргумент из комплексного числа.
asin
asinh
atan
atanh
conj Возвращает комплексно-сопряженную величину комплексного числа.
cos Возвращает косинус комплексного числа.
cosh Возвращает гиперболический косинус комплексного числа.
exp Возвращает экспоненциальную функцию комплексного числа.
imag Извлекает мнимую часть комплексного числа.
log Возвращает натуральный логарифм комплексного числа.
log10 Возвращает десятичный логарифм комплексного числа.
norm Извлекает норму комплексного числа.
polar Возвращает комплексное число, соответствующее указанному модулю и аргументу, в декартовой форме.
pow Вычисляет комплексное число, получаемое в результате возведения основания (комплексное число) в степень другого комплексного числа.
proj
real Извлекает вещественную часть комплексного числа.
sin Возвращает синус комплексного числа.
sinh Возвращает гиперболический синус комплексного числа.
sqrt Возвращает квадратный корень комплексного числа.
tan Возвращает тангенс комплексного числа.
tanh Возвращает гиперболический тангенс комплексного числа.

Операторы

Имя Описание
operator!= Проверяет на неравенство два комплексных числа, по крайней мере одно из которых может принадлежать к подмножеству типа для вещественной и мнимой частей.
operator* Умножает два комплексных числа, по крайней мере одно из которых может принадлежать к подмножеству типа для вещественной и мнимой частей.
operator+ Складывает два комплексных числа, по крайней мере одно из которых может принадлежать к подмножеству типа для вещественной и мнимой частей.
operator- Вычитает два комплексных числа, по крайней мере одно из которых может принадлежать к подмножеству типа для вещественной и мнимой частей.
operator/ Делит два комплексных числа, по крайней мере одно из которых может принадлежать к подмножеству типа для вещественной и мнимой частей.
operator<< Функция шаблона, вставляющая комплексное число в поток вывода.
operator== Проверяет на равенство два комплексных числа, по крайней мере одно из которых может принадлежать к подмножеству типа для вещественной и мнимой частей.
operator>> Функция шаблона, извлекающая комплексное число из входного потока.

Классы

Имя Описание
complex<double> Явным образом специализированный шаблон класса описывает объект, который хранит упорядоченную пару объектов, оба типа double, где первый представляет реальную часть сложного числа, а второй представляет мнимую часть.
complex<float> Явным образом специализированный шаблон класса описывает объект, который хранит упорядоченную пару объектов, оба типа float, где первый представляет реальную часть сложного числа, а второй представляет мнимую часть.
complex<long double> Явным образом специализированный шаблон класса описывает объект, который хранит упорядоченную пару объектов, оба типа long double, где первый представляет реальную часть сложного числа, а второй представляет мнимую часть.
complex Шаблон класса описывает объект, используемый для представления сложной системы чисел и выполнения сложных арифметических операций.

Литералы

Сложный <> заголовок определяет следующие пользовательские литералы. Литералы создают сложное число с реальной частью нуля и мнимой частью, которая имеет значение входного параметра.

Объявление Description
constexpr complex<long double> operator""il(long double d)
constexpr complex<long double> operator""il(unsigned long long d)
Возвраты: complex<long double>{0.0L, static_cast<long double>(d)}
constexpr complex<double> operator""i(long double d)
constexpr complex<double> operator""i(unsigned long long d)
Возвращает complex<double>{0.0, static_cast<double>(d)}.
constexpr complex<float> operator""if(long double d)
constexpr complex<float> operator""if(unsigned long long d)
Возвращает complex<float>{0.0f, static_cast<float>(d)}.

См. также

Справочник по файлам заголовков
Безопасность потоков в стандартной библиотеке C++