Заголовочный файл <complex.h> на C с примерами
Большинство программ на языке 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)); } |
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)); } |
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)); } |
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)); } |
Phase Angle = 1.3 radians