> 백엔드 개발 > C#.Net 튜토리얼 > C 언어의 복소수 연산에 대한 자세한 설명

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

烟雨青岚
풀어 주다: 2020-06-19 13:30:07
원래의
6222명이 탐색했습니다.

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 받기 켤레 복소수

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

cproj

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

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

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

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
두 개의 매크로가 complex.h 헤더 파일 _Complex_II를 사용하여 복소수를 만듭니다. 이 두 매크로는 복소수(0+1i)를 나타냅니다. 이 단위 복소수를 사용하여 모든 복소수를 만들 수 있습니다.
complex.h 헤더 파일에서 복소수에 대한 기본 연산에 대한 일부 함수를 정의하세요.