>  기사  >  백엔드 개발  >  프로그래밍을 배울 때 C 언어의 복소수 연산에 대해 알아야 할 사항

프로그래밍을 배울 때 C 언어의 복소수 연산에 대해 알아야 할 사항

烟雨青岚
烟雨青岚앞으로
2020-06-17 12:01:214139검색

프로그래밍을 배울 때 C 언어의 복소수 연산에 대해 알아야 할 사항

프로그래밍을 배울 때 C언어의 복소수 연산에 대해 알아야 할 사항

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

C 언어의 복소수

수학에서 복소수는 (z=a + bi) 형식으로 정의할 수 있습니다. C 언어는 ISO C99에서 복수형을 도입했습니다. complex.h에 정의되어 있습니다. 이를 표현하기 위해 complex , __complex__ 또는 _ComplexI 유형 기호를 사용할 수 있습니다. C 언어에는 세 가지 복소수 유형, 즉 float 복소수, 이중 복소수 및 long double 복소수가 있습니다. 차이점은 복소수의 실수부와 허수부를 나타내는 데이터 유형이 다르다는 것입니다. Complex는 실제로 배열입니다. 배열에는 두 개의 요소가 있습니다. 하나는 복소수의 실수 부분을 나타내고 다른 하나는 복소수의 허수 부분을 나타냅니다.

복소수 정의

두 개의 매크로 _Complex_I 및 I가 complex.h 헤더 파일에 정의되어 복소수를 생성합니다.

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 헤더 파일에 복소수에 대한 기본 연산에 대한 일부 함수를 정의하세요.

함수

creal 복소수의 실수부를 구합니다.

cimag 복소수의 허수부를 구합니다.

conj 복소수의 켤레를 구합니다.

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

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

복소수에 대한 수치 연산

복소수 숫자 유형은 숫자 연산을 수행하는 데 사용되는 일반 숫자 유형인 ~int, double, long~ 수치 연산 기호처럼 직접 사용할 수도 있습니다.

#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

읽어주신 모든 분들께 감사드리며, 많은 혜택 받으시길 바라겠습니다.

이 기사는 https://blog.csdn.net/duandianR/article/details/70846638

추천 튜토리얼: "C Language"

에서 복제되었습니다.

위 내용은 프로그래밍을 배울 때 C 언어의 복소수 연산에 대해 알아야 할 사항의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제