<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++