>  기사  >  백엔드 개발  >  C 언어의 복소수 연산에 대한 자세한 설명

C 언어의 복소수 연산에 대한 자세한 설명

烟雨青岚
烟雨青岚원래의
2020-06-19 13:30:076157검색

C 언어의 복소수 연산에 대한 자세한 설명

C 언어의 복소수 연산에 대한 자세한 설명

참고: 복합 유형은 c99 표준에서 도입되었지만 구체적인 구현은 표준의 일부가 아닙니다. 표준은 각 컴파일러의 구현 표준이 다를 수 있습니다. 자세한 내용은 해당 컴파일러의 구현 표준을 확인하세요. 이 글은 gcc 컴파일러에 관한 글입니다.

복소수는 수학 연산에서 매우 중요합니다. 수치 연산이나 알고리즘을 작성할 때 복소수의 개념을 사용합니다. 그렇다면 C/C++ 언어에서는 복소수를 어떻게 표현할까요? 다음에 하나씩 소개하겠습니다.

C 언어의 복소수

수학에서 복소수는 (z=a + bi) 형식으로 정의할 수 있습니다. C 언어는 ISO C99에서 복수 유형을 도입했습니다. complex.h에 정의되어 있습니다. complex , __complex__ 또는 _ComplexI 유형 기호를 사용하여 나타낼 수 있습니다. C 언어에는 float complex, double complex, long double complex라는 세 가지 복소수 유형이 있습니다. 차이점은 복소수의 실수부와 허수부를 나타내는 데이터 유형이 다르다는 것입니다. 복소수는 실제로 배열에 두 개의 요소가 있습니다. 하나는 복소수의 실수 부분을 나타내고 다른 하나는 복소수의 허수 부분을 나타냅니다. C 语言在 ISO C99 时就引入了复数类型。它是通过 complex.h 中定义的。 我们可以使用 complex , __complex__ , 或 _ComplexI 类型符号来表示。在C语言中有三种复数类型,分别为 float complex , double complex , long double complex 。他们之间 的区别就是表示复数中实部和虚步的数的数据类型不同。 complex 其实就是一个数组,数组中有两个元素,一个表示复数的实部,一个表示复数的虚部。

定义一个复数

complex.h 头文件中定义了两个宏 _Complex_II 来创建一个复数。

Macro: const float complex _Complex_I;
Macro: const float complex  I;

这两个宏表示复数 (0+1i) , 我们可是使用这个单位复数来创建任何复数。

#include <stdio.h>
#include <complex.h>

int main(int argc, char *argv[])
{
  complex  double  a = 3.0 + 4.0 * _Complex_I;
  __complex__ double b = 4.0 + 5.0 * _Complex_I;
  _Complex  double c = 5.0 + 6.0 * _Complex_I;

  printf("a=%f+%fi\n", creal(a),cimag(a));
  printf("b=%f+%fi\n", creal(b), cimag(b));
  printf("c=%f+%fi\n", creal(c), cimag(c));



  printf("the arg of a is %d", carg(a));

  return 0;
}
a=3.000000+4.000000i
b=4.000000+5.000000i
c=5.000000+6.000000i
the arg of a is 176

复数的基本操作函数

complex.h

복소수 정의
#include <stdio.h>
#include <complex.h>

int main(int argc, char *argv[])
{
  complex  double  a = 3.0 + 4.0 * _Complex_I;
  __complex__ double b = 4.0 + 5.0 * _Complex_I;
  _Complex  double c = 5.0 + 6.0 * _Complex_I;

  complex double d =a + b;
  complex double f = a *b ;
  complex double g = a/b;

  printf ("d=a+b=%f+%fi\n",creal(d),cimag(d));
  printf ("f=a*b=%f+%fi\n",creal(f),cimag(f));
  printf("g=a/b=%f+%fi\n",creal(g),cimag(g));

  return 0;
}
d=a+b=7.000000+9.000000i
f=a*b=-8.000000+31.000000i
g=a/b=0.780488+0.024390i
rrreee복소수에 대한 기본 연산 함수functionfunctioncreal 복소수의 실수부 구하기cimag복소수의 허수부 구하기conj 받기 켤레 복소수
두 개의 매크로가 complex.h 헤더 파일 _Complex_II를 사용하여 복소수를 만듭니다. 이 두 매크로는 복소수(0+1i)를 나타냅니다. 이 단위 복소수를 사용하여 모든 복소수를 만들 수 있습니다.
complex.h 헤더 파일에서 복소수에 대한 기본 연산에 대한 일부 함수를 정의하세요.

carg원점을 통과하는 복소평면 위의 직선과 복소평면 위의 복소수가 나타내는 점과 실수축이 이루는 각도를 구합니다

cproj

리만 구에 복소수의 투영을 반환합니다

🎜 복소수에 대한 수치 연산🎜🎜🎜복소수 유형은 ~int, double, long~과 같은 수치 연산을 수행하는 데 직접 사용될 수도 있습니다. , 숫자 연산 기호를 사용합니다. 🎜rreeerrreee🎜읽어주신 모든 분들께 감사드립니다. 배우셨나요? 🎜🎜이 기사는 https://blog.csdn.net/duandianR/article/details/70846638🎜🎜추천 튜토리얼: "🎜C Language🎜"🎜에서 복제되었습니다.

위 내용은 C 언어의 복소수 연산에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.