다음을 통해 공유


<complex>

컨테이너 클래스 템플릿 complex 및 해당 지원 템플릿을 정의합니다.

요구 사항

헤더: <복합>

네임스페이스: std

설명

복소수는 정렬된 실수 쌍입니다. 순전히 기하학적 측면에서 복합 평면 은 실제 2차원 평면입니다. 실제 평면과 구분되는 복합 평면의 특성은 추가 대수 구조가 있기 때문입니다. 이 대수 구조에는 두 가지 기본 작업이 있습니다.

  • 더하기, (a, b) + (c, d) = (a + c, b + d)

  • (a, b) * (c, d) = (ac - bd, ad + bc)로 정의된 곱하기

복합 더하기 및 복합 곱셈 연산이 있는 복소수 집합은 표준 대수적 의미의 필드입니다.

  • 더하기 및 곱하기 연산은 누적 및 연결되고, 실수 필드의 실제 더하기 및 곱하기와 마찬가지로 곱하기가 더하기에 배포됩니다.

  • 복소수(0, 0)는 덧셈 ID이고 (1, 0)은 곱셈 ID입니다.

  • 복소수(a, b)의 가산물 역함수는 (-a, -b)이고, (0, 0)을 제외한 모든 복소수에 대한 곱하기 역함수는 다음과 같습니다.

    (a/(a2 + b2), -b/(a2 + b2))

z + = a bi 형식에서 복소수 z = (a, b)를 나타내면, 여기서 i2 = -1은 실수 집합의 대수에 대한 규칙을 복소수 집합 및 해당 구성 요소에 적용할 수 있습니다. 예시:

(1 + 2i) * (2 + 3i) = 1 * (2 + 3i) + 2i * (2 + 3i) = (2 + 3i) + (4i + 6i2) = (2 - 6) + (3 + 4)i = -4 + 7 i

복소수 시스템은 필드이지만 순서가 지정된 필드가 아닙니다. 실수 및 하위 집합의 필드와 같이 복소수의 순서는 없으므로 실수와 마찬가지로 복소수에 불평등을 적용할 수 없습니다.

복소수 z를 나타내는 일반적인 형태로는 다음과 같이 세 가지가 있습니다.

  • 카티시안: z = a + bi

  • Polar: z = r (cos p + i sin p)

  • 지수: z = r * e ip

복소수의 이러한 표준 표현에 사용되는 용어는 다음과 같이 참조됩니다.

  • 직각좌표 실수 성분 또는 실수부 a

  • 직각좌표 허수 성분 또는 허수부 b

  • 복소수 r의 모듈러스 또는 절대값입니다.

  • 인수 또는 위상 각도 p (라디안)입니다.

달리 지정하지 않는 한 여러 값을 반환할 수 있는 함수는 -π보다 크고 +π 보다 작거나 같은 인수에 대한 보안 주체 값을 반환하여 값을 단일 값으로 유지해야 합니다. 모든 각도는 라디안으로 표현되어야 하며, 원에는 2π 라디안(360도)이 있습니다.

멤버

함수

속성 설명
abs 복소수의 모듈러스를 계산합니다.
acos
acosh
arg 복소수에서 인수를 추출합니다.
asin
asinh
atan
atanh
conj 복소수의 켤레 복소수를 반환합니다.
cos 복소수의 코사인을 반환합니다.
cosh 복소수의 쌍곡 코사인을 반환합니다.
exp 복소수의 지수 함수를 반환합니다.
imag 복소수의 허수 구성 요소를 추출합니다.
log 복소수의 자연 로그를 반환합니다.
log10 복소수의 상용 로그를 반환합니다.
norm 복소수 기준을 추출합니다.
polar 지정한 모듈러스 및 인수에 해당하는 복소수를 데카르트 형태로 반환합니다.
pow 복소수인 밑수를 다른 복소수로 거듭제곱하여 얻은 복소수를 계산합니다.
proj
real 복소수의 실수 구성 요소를 추출합니다.
sin 복소수의 사인을 반환합니다.
sinh 복소수의 쌍곡 사인을 반환합니다.
sqrt 복소수의 제곱근을 반환합니다.
tan 복소수의 탄젠트를 반환합니다.
tanh 복소수의 쌍곡 탄젠트를 반환합니다.

연산자

속성 설명
operator!= 하나 또는 둘 모두 실수 및 허수 부분에서 형식의 일부에 속할 수 있는 두 복소수를 같지 않은지 테스트합니다.
operator* 하나 또는 둘 다 실수 및 허수 부분에서 형식의 일부에 속할 수 있는 두 복소수를 곱합니다.
operator+ 하나 또는 둘 다 실수 및 허수 부분에서 형식의 일부에 속할 수 있는 두 복소수를 더합니다.
operator- 하나 또는 둘 다 실수 및 허수 부분에서 형식의 일부에 속할 수 있는 두 복소수를 뺍니다.
operator/ 하나 또는 둘 다 실수 및 허수 부분에서 형식의 일부에 속할 수 있는 두 복소수를 나눕니다.
operator<< 출력 스트림에 복소수를 삽입하는 템플릿 함수입니다.
operator== 하나 또는 둘 모두 실수 및 허수 부분에서 형식의 일부에 속할 수 있는 두 복소수를 같은지 테스트합니다.
operator>> 입력 스트림에서 복소수를 추출하는 템플릿 함수입니다.

클래스

이름 설명
complex<double> 명시적으로 특수화된 클래스 템플릿은 순서가 지정된 개체 쌍을 저장하는 개체를 설명합니다. 두 형식 double모두, 첫 번째 개체는 복소수의 실제 부분을 나타내고 두 번째는 허수 부분을 나타냅니다.
complex<float> 명시적으로 특수화된 클래스 템플릿은 순서가 지정된 개체 쌍을 저장하는 개체를 설명합니다. 두 형식 float모두, 첫 번째 개체는 복소수의 실제 부분을 나타내고 두 번째는 허수 부분을 나타냅니다.
complex<long double> 명시적으로 특수화된 클래스 템플릿은 순서가 지정된 개체 쌍을 저장하는 개체를 설명합니다. 두 형식 long double모두, 첫 번째 개체는 복소수의 실제 부분을 나타내고 두 번째는 허수 부분을 나타냅니다.
complex 클래스 템플릿은 복소수 시스템을 나타내고 복잡한 산술 연산을 수행하는 데 사용되는 개체를 설명합니다.

리터럴

복합> 헤더는 <다음 사용자 정의 리터럴을 정의합니다. 리터럴은 0의 실제 부분과 입력 매개 변수 값이 있는 허수 부분을 사용하여 복소수를 만듭니다.

선언 설명
constexpr complex<long double> operator""il(long double d)
constexpr complex<long double> operator""il(unsigned long long d)
반품: complex<long double>{0.0L, static_cast<long double>(d)}
constexpr complex<double> operator""i(long double d)
constexpr complex<double> operator""i(unsigned long long d)
complex<double>{0.0, static_cast<double>(d)}를 반환합니다.
constexpr complex<float> operator""if(long double d)
constexpr complex<float> operator""if(unsigned long long d)
complex<float>{0.0f, static_cast<float>(d)}를 반환합니다.

참고 항목

헤더 파일 참조
C++ 표준 라이브러리의 스레드 안전성