Пространства имён
Варианты
Действия

Комплексные числа

Материал из cppreference.com
< c‎ | numeric

Если макроконстанта __STDC_NO_COMPLEX__ определена реализацией, то комплексные типы, заголовочный файл <complex.h> и все имена, перечисленные здесь, не предоставляются.

(начиная с C11)

Язык программирования C, начиная с C99, поддерживает математику комплексных чисел с тремя встроенными типами double _Complex, float _Complex и longdouble _Complex (см. _Complex). При включении заголовочного файла <complex.h> три комплексных типа также доступны под именами doublecomplex, floatcomplex, longdoublecomplex.

В добавление к комплексным типам могут поддерживаться три мнимых типа: double _Imaginary, float _Imaginary и longdouble _Imaginary (см. _Imaginary). При включении заголовочного файла <complex.h> три мнимых типа также доступны под именами doubleimaginary, floatimaginary, and longdoubleimaginary.

Стандартные арифметические операторы +, -, *, / могут использоваться с действительными, комплексными и мнимыми типами в любом сочетании.

Рекомендуется использовать компилятор, который определяет __STDC_IEC_559_COMPLEX__, однако это не требуется для поддержки мнимых чисел. POSIX рекомендует проверять, определён ли макрос _Imaginary_I, чтобы идентифицировать поддержку мнимых чисел.

(начиная с C99)
(до C11)

Мнимые числа поддерживаются, если определены __STDC_IEC_559_COMPLEX__или __STDC_IEC_60559_COMPLEX__(начиная с C23).

(начиная с C11)
Определены в заголовочном файле <complex.h>

Содержание

Типы
макрос мнимого типа
(ключевое слово-макрос)[править]
(C99)
макрос комплексного типа
(ключевое слово-макрос)[править]
Мнимые константы
константа мнимая единица i
(макроконстанта)[править]
комплексная константа i
(макроконстанта)[править]
(C99)
комплексная или мнимая константа i
(макроконстанта)[править]
Обработка
(C11)(C11)(C11)
порождает комплексное число из действительной и мнимой частей
(функция-макрос)[править]
(C99)(C99)(C99)
вычисляет действительную часть комплексного числа
Оригинал:
computes the real part of a complex number
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция)[править]
(C99)(C99)(C99)
вычисляет мнимая часть комплексного числа
Оригинал:
computes the imaginary part a complex number
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция)[править]
(C99)(C99)(C99)
вычисляет величину комплексного числа
Оригинал:
computes the magnitude of a complex number
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция)[править]
(C99)(C99)(C99)
вычисляется фазовый угол комплексного числа
Оригинал:
computes the phase angle of a complex number
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция)[править]
(C99)(C99)(C99)
вычисляет комплексное сопряжение
Оригинал:
computes the complex conjugate
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция)[править]
(C99)(C99)(C99)
вычисляет проекции на сферу Римана
Оригинал:
computes the projection on Riemann sphere
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция)[править]
Показательные функции
(C99)(C99)(C99)
вычисляет базовый комплекс-е экспоненциальным
Оригинал:
computes the complex base-e exponential
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция)[править]
(C99)(C99)(C99)
вычисляет комплексный натуральный логарифм
Оригинал:
computes the complex natural logarithm
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция)[править]
Степенные функции
(C99)(C99)(C99)
вычисляет сложной степенной функции
Оригинал:
computes the complex power function
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция)[править]
(C99)(C99)(C99)
вычисляет комплексный квадратный корень
Оригинал:
computes the complex square root
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция)[править]
Тригонометрические функции
(C99)(C99)(C99)
вычисляет комплексный синус
Оригинал:
computes the complex sine
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция)[править]
(C99)(C99)(C99)
вычисляет косинус комплекса
Оригинал:
computes the complex cosine
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция)[править]
(C99)(C99)(C99)
вычисляет комплексной касательной
Оригинал:
computes the complex tangent
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция)[править]
(C99)(C99)(C99)
вычисляет комплексный синус дуги
Оригинал:
computes the complex arc sine
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция)[править]
(C99)(C99)(C99)
вычисляет комплекса арккосинус
Оригинал:
computes the complex arc cosine
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция)[править]
(C99)(C99)(C99)
вычисляет комплексной касательной дуги
Оригинал:
computes the complex arc tangent
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция)[править]
Гиперболические функции
(C99)(C99)(C99)
вычисляет комплексных гиперболических синуса
Оригинал:
computes the complex hyperbolic sine
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция)[править]
(C99)(C99)(C99)
вычисляет комплексный гиперболический косинус
Оригинал:
computes the complex hyperbolic cosine
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция)[править]
(C99)(C99)(C99)
computes the complex hyperbolic tangent
(функция)[править]
(C99)(C99)(C99)
вычисляет сложные дуги гиперболического синуса
Оригинал:
computes the complex arc hyperbolic sine
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция)[править]
(C99)(C99)(C99)
вычисляет сложные дуги гиперболический косинус
Оригинал:
computes the complex arc hyperbolic cosine
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция)[править]
(C99)(C99)(C99)
вычисляет комплексный обратный гиперболический тангенс
(функция)[править]

[править]Замечания

Следующие имена функций потенциально(начиная с C23) зарезервированы для будущего добавления в complex.h и не доступны для использования в программах, которые включают этот заголовочный файл: cerf, cerfc, cexp2, cexpm1, clog10, clog1p, clog2, clgamma, ctgamma, csinpi, ccospi, ctanpi, casinpi, cacospi, catanpi, ccompoundn, cpown, cpowr, crootn, crsqrt, cexp10m1, cexp10, cexp2m1, clog10p1, clog2p1, clogp1(начиная с C23) вместе с их -f и -l вариантами.

Хотя стандартные имена обратных гиперболических функций в C это "комплексный гиперболический арксинус" и т. д., обратные гиперболические функции это функции площади. Их аргумент это площадь гиперболического сектора, а не дуга. Правильные названия это "комплексный обратный гиперболический синус" и т. д. Некоторые авторы используют "комплексный площадной гиперболический синус" и т. д.

Комплексное или мнимое число есть бесконечность, если одна из его частей бесконечность, даже если другая часть NaN.

Комплексное или мнимое число конечно, если обе части ни бесконечности, ни NaN.

Комплексное или мнимое число есть ноль, если обе части положительные или отрицательные нули.

[править]Пример

#include <stdio.h>#include <complex.h>#include <tgmath.h>   int main(void){doublecomplex z1 = I * I;// мнимая единица в квадратеprintf("I * I = %.1f%+.1fi\n", creal(z1), cimag(z1));   doublecomplex z2 =pow(I, 2);// мнимая единица в квадратеprintf("pow(I, 2) = %.1f%+.1fi\n", creal(z2), cimag(z2));   double PI =acos(-1);doublecomplex z3 =exp(I * PI);// Формула Эйлераprintf("exp(I*PI) = %.1f%+.1fi\n", creal(z3), cimag(z3));   doublecomplex z4 =1+2*I, z5 =1-2*I;// сопряжённые числаprintf("(1+2i)*(1-2i) = %.1f%+.1fi\n", creal(z4*z5), cimag(z4*z5));}

Вывод:

I * I = -1.0+0.0i pow(I, 2) = -1.0+0.0i exp(I*PI) = -1.0+0.0i (1+2i)*(1-2i) = 5.0+0.0i

[править]Ссылки

  • Стандарт C17 (ISO/IEC 9899:2018):
  • 6.10.8.3/1/2 __STDC_NO_COMPLEX__ (стр. 128)
  • 6.10.8.3/1/2 __STDC_IEC_559_COMPLEX__ (стр. 128)
  • 7.3 Комплексные числа <complex.h> (стр. 136-144)
  • 7.25 Объединённая математика <tgmath.h> (стр. 272-273)
  • 7.31.1 Комплексные числа <complex.h> (стр. 391)
  • Приложение G (нормативное) Комплексные числа, совместимые с IEC 60559 (стр. 469-479)
  • Стандарт C11 (ISO/IEC 9899:2011):
  • 6.10.8.3/1/2 __STDC_NO_COMPLEX__ (стр. 177)
  • 6.10.8.3/1/2 __STDC_IEC_559_COMPLEX__ (стр. 177)
  • 7.3 Комплексные числа <complex.h> (стр. 188-199)
  • 7.25 Объединённая математика <tgmath.h> (стр. 373-375)
  • 7.31.1 Комплексные числа <complex.h> (стр. 455)
  • Приложение G (нормативное) Комплексные числа, совместимые с IEC 60559 (стр. 532-545)
  • Стандарт C99 (ISO/IEC 9899:1999):
  • 6.10.8/2 __STDC_IEC_559_COMPLEX__ (стр. 161)
  • 7.3 Комплексные числа <complex.h> (стр. 170-180)
  • 7.22 Объединённая математика <tgmath.h> (стр. 335-337)
  • 7.26.1 Комплексные числа <complex.h> (стр. 401)
  • Приложение G (информационное) IEC 60559-compatible complex arithmetic (стр. 467-480)

[править]См. также

Документация C++ по комплексным числам
close