Заголовочный файл <complex.h> на C с примерами

Опубликовано: 11 Января, 2022

Большинство программ на языке C имеют дело со сложными числовыми операциями и манипуляциями с использованием заголовочного файла complex.h. Этот файл заголовка был добавлен в стандарт C99 .

Стандартная библиотека C ++ имеет заголовок, который реализует комплексные числа как класс шаблона, complex <T> , который отличается от <complex.h> в C.

Макросы, связанные с <complex.h>
Некоторые из макросов <complex.h> показаны ниже. Значения в левой части описывают макросы в complex.h, а правая часть описывает расширение этих макросов с помощью ключевых слов (_Imaginary, _Complex), добавленных в стандарте C99.

Имя макроса Расширяется до
сложный _Сложный
воображаемый _Воображаемый
_Complex_I (const float _Complex) i
_Imaginary_I (const float _Imaginary) я
я _Imaginary_I (_Complex_I, если _Imaginary_I отсутствует)

Ниже программа помогает создавать комплексные числа.

Пример 1:

Объяснение:

  • Функция cmplx () создает объекты с комплексными числами, принимая в качестве параметров действительную и мнимую части. Эта функция возвращает объект комплексных чисел.
  • Функция creal () возвращает действительную часть комплексного числа
  • Функция cimag () возвращает мнимую часть комплексного числа
  • Если наша действительная и мнимая части относятся к типу float, мы используем функцию cmplxf () для генерации комплексных чисел, а для получения действительной и мнимой частей мы используем функции crealf () , cimagf () .
  • Если наша действительная и мнимая части имеют тип long double, мы используем функцию cmplxl () для генерации комплексных чисел, а для получения действительной и мнимой частей мы используем функции creall () , cimagl () .

Example 2: We can also create complex number objects using macro I.

// C program to create a complex
// number using macro I
  
#include <complex.h>
#include <stdio.h>
  
int main(void)
{
    double complex
        z
        = 3.2 + 4.1 * I;
  
    // Creates complex number
    // with 3.2 and 4.1 as
    // real and imaginary parts
    printf(
        "z = %.1f% + .1fi ",
        creal(z), cimag(z));
}
Output:
z = 3.2+4.1i

Функции, связанные с <complex.h>
Заголовочный файл <complex.h> также предоставляет некоторые встроенные функции для работы с комплексным числом. Здесь слово «arg» означает объект комплексного числа.

Функция Описание
float cabsf (сложный аргумент float)
двойные кабины (двойные комплексные арг)
long double cabsl (длинный двойной сложный аргумент)
Возвращает абсолютное значение сложного аргумента
float complex cacosf (плавающий комплекс arg)
двойной комплексный какос (двойной комплексный арг)
длинный двойной комплексный какосл (длинный двойной комплексный арг)
Он возвращает комплексные значения арккосинуса комплексного аргумента.
float сложный cacoshf (float complex arg)
двойной комплексный какош (двойной комплексный арг)
длинный двойной комплексный какошл (длинный двойной комплексный арг)
Он возвращает значения комплексного дугового гиперболического косинуса комплексного аргумента.
float cargf (сложный аргумент с плавающей запятой)
двойной груз (двойной комплексный аргумент)
длинный двойной каргл (длинный двойной сложный арг)
Возвращает фазовый угол комплексного аргумента (в радианах).
комплексное казино с плавающей запятой (сложный аргумент с плавающей запятой)
двойное комплексное казино (двойной комплексный аргумент)
длинный двойной комплекс казино (длинный двойной комплексный аргумент)
Возвращает комплексные значения арксинуса комплексного аргумента.
float complex casinhf (сложный аргумент с плавающей запятой)
двойное комплексное казино (двойной комплексный аргумент)
длинный двойной комплекс казино (длинный двойной комплексный аргумент)
Он возвращает значения комплексного дугового гиперболического синуса комплексного аргумента.
float сложный катанф (float complex arg)
двойной комплексный катан (двойной комплексный арг)
длинный двойной комплексный катанл (длинный двойной комплексный арг)
Он возвращает комплексные значения арктангенса комплексного аргумента.
float сложный catanhf (float complex arg)
двойной комплексный катан (двойной комплексный арг)
длинный двойной комплексный катанл (длинный двойной комплексный арг)
Он возвращает значения комплексного арочного гиперболического тангенса комплексного аргумента.
float сложный ccosf (float complex arg)
двойной комплекс ccos (двойной комплексный аргумент)
длинный двойной комплекс ccosl (длинный двойной комплексный аргумент)
Возвращает комплексные значения косинуса комплексного аргумента.
комплекс с плавающей запятой cexpf (комплексный аргумент с плавающей запятой)
двойной комплексный cexp (двойной комплексный аргумент)
длинный двойной комплекс cexpl (длинный двойной комплексный аргумент)
Он возвращает комплексное значение e arg, где e - основание натурального логарифма.
float crealf (сложный аргумент float)
двойной Creal (двойной сложный аргумент)
длинный двойной крюл (длинный двойной сложный арг)
Возвращает действительную часть сложного аргумента
float cimagf (сложный аргумент с плавающей запятой)
двойной cimag (двойной комплексный аргумент)
длинный двойной cimagl (длинный двойной сложный аргумент)
Возвращает мнимую часть сложного аргумента
float complex clogf (сложный аргумент с плавающей запятой)
двойной комплексный засор (двойной комплексный аргумент)
длинный двойной комплексный цимагл (длинный двойной комплексный арг)
Возвращает мнимую часть сложного аргумента
комплексный аргумент с плавающей запятой (сложный аргумент с плавающей запятой)
двойное комплексное соединение (двойной комплексный аргумент)
длинный двойной комплексный аргумент (длинный двойной комплексный аргумент)
Возвращает сопряжение сложного аргумента
плавающий комплекс cpowf (плавающий комплекс a, длинный двойной комплекс b) Возвращает комплексное значение a b
комплексное число с плавающей запятой csqrtf (комплексный аргумент с плавающей запятой)
двойной комплексный csqrt (двойной комплексный аргумент)
длинный двойной комплекс csqrtl (длинный двойной комплексный аргумент)
Он возвращает комплексный квадратный корень из аргумента

Examples 3: Program to find Conjugate of a complex number.

#include <complex.h>
#include <stdio.h>
  
int main(void)
{
    double real = 1.3,
           imag = 4.9;
    double complex z
        = CMPLX(real, imag);
    double complex
        conj_f
        = conjf(z);
    printf("z = %.1f% + .1fi ",
           creal(conj_f),
           cimag(conj_f));
}
Output:
z = 1.3-4.9i

Examples 4: Program to find the absolute value of a complex number.

#include <complex.h>
#include <stdio.h>
  
int main(void)
{
    double real = 1.3,
           imag = 4.9;
    double complex z
        = CMPLX(real, imag);
    printf("Absolute value = %.1f",
           cabsf(z));
}
Output:
Absolute value = 5.1

Examples 4: Program to find the phase angle of a complex number.

#include <complex.h>
#include <stdio.h>
  
int main(void)
{
    double real = 1.3,
           imag = 4.9;
    double complex z
        = CMPLX(real, imag);
    printf(
        "Phase Angle = %.1f radians ",
        cargf(z));
}
Output:
Phase Angle = 1.3 radians
Want to learn from the best curated videos and practice problems, check out the C Foundation Course for Basic to Advanced C.
C