<complex>

Definiuje szablon complex klasy kontenera i jego szablony pomocnicze.

Wymagania

Nagłówek: <złożony>

Przestrzeń nazw: std

Uwagi

Liczba zespolona to uporządkowana para liczb rzeczywistych. W czysto geometrycznych kategoriach złożona płaszczyzna jest rzeczywistą, dwuwymiarową płaszczyzną. Specjalne cechy złożonej płaszczyzny, które odróżniają ją od rzeczywistej płaszczyzny, są spowodowane posiadaniem dodatkowej struktury algebraicznej. Ta struktura algebraiczna ma dwie podstawowe operacje:

  • Dodawanie, zdefiniowane jako (a, b) + (c, d) = (a + c, b + d)

  • Mnożenie, zdefiniowane jako (a, b) * (c, d) = (ac - bd, ad + bc)

Zestaw liczb zespolonych z operacjami złożonego dodawania i mnożenia złożonego to pole w standardowym sensie algebraicznym:

  • Operacje dodawania i mnożenia są zmutacyjne i kojarzenie i mnożenie rozkłada się na dodanie dokładnie tak samo jak w przypadku rzeczywistego dodawania i mnożenia na polu liczb rzeczywistych.

  • Liczba zespolona (0, 0) jest tożsamością addycyjną, a (1, 0) jest tożsamością mnożenia.

  • Odwrotność dodawania dla liczby zespolonej (a, b) to (-a, -b), a odwrotność mnożenia dla wszystkich takich liczb zespolonych z wyjątkiem (0, 0) jest

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

Reprezentując liczbę zespolone z = (a, b) w postaci z + = a bi, gdzie i2 = -1, reguły algebry zestawu liczb rzeczywistych można zastosować do zestawu liczb zespolonych i ich składników. Przykład:

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

System liczb zespolonych jest polem, ale nie jest uporządkowanym polem. Nie ma kolejności liczb zespolonych, ponieważ istnieje pole liczb rzeczywistych i jego podzbiorów, więc nierówności nie mogą być stosowane do liczb zespolonych, ponieważ są to liczby rzeczywiste.

Istnieją trzy typowe formy reprezentowania liczby zespolonej z:

  • Kartezjański: z = a bi +

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

  • Wykładniczo: z = r * e ip

Terminy używane w tych standardowych reprezentacjach liczby zespolonej są określane w następujący sposób:

  • Prawdziwy składnik kartezjański lub prawdziwa część a.

  • Wyimaginowany składnik kartezjański lub wyimaginowana część b.

  • Modulo lub wartość bezwzględna liczby zespolonej r.

  • Argument lub kąt fazy p w radianach.

Jeśli nie określono inaczej, funkcje, które mogą zwracać wiele wartości, są wymagane do zwrócenia wartości głównej dla ich argumentów większych niż -π i mniejszych lub równych +π, aby zachować ich pojedynczą wartość. Wszystkie kąty muszą być wyrażone w radianach, gdzie w okręgu znajduje się 2 radiany (360 stopni).

Członkowie

Funkcje

Nazwa/nazwisko opis
abs Oblicza modulo liczby zespolonej.
acos
acosh
arg Wyodrębnia argument z liczby zespolonej.
asin
asinh
atan
atanh
conj Zwraca sprzężenie zespolone liczby zespolonej.
cos Zwraca cosinus liczby zespolonej.
cosh Zwraca cosinus hiperboliczny liczby zespolonej.
exp Zwraca funkcję wykładniczą liczby zespolonej.
imag Wyodrębnia wyimaginowany składnik liczby zespolonej.
log Zwraca logarytm naturalny liczby zespolonej.
log10 Zwraca logarytm podstawowy 10 liczby zespolonej.
norm Wyodrębnia normę liczby zespolonej.
polar Zwraca liczbę zespolonej, która odpowiada określonemu modulusowi i argumentowi w formie kartezjańskiej.
pow Oblicza liczbę zespolona uzyskaną przez podniesienie podstawy, która jest liczbą zespolona do potęgi innej liczby zespolonej.
proj
real Wyodrębnia rzeczywisty składnik liczby zespolonej.
sin Zwraca sinus liczby zespolonej.
sinh Zwraca sinus hiperboliczny liczby zespolonej.
sqrt Zwraca pierwiastek kwadratowy liczby zespolonej.
tan Zwraca tangens liczby zespolonej.
Tanh Zwraca tangens hiperboliczny liczby zespolonej.

Operatory

Nazwa/nazwisko opis
operator!= Testuje nierówność między dwiema liczbami zespolonymi, z których jedna lub obie mogą należeć do podzbioru typu dla rzeczywistych i wyimaginowanych części.
operator* Mnoży dwie liczby zespolone, z których jedna lub obie mogą należeć do podzbioru typu dla rzeczywistych i wyimaginowanych części.
operator+ Dodaje dwie liczby zespolone, z których jedna lub obie mogą należeć do podzbioru typu dla rzeczywistych i wyimaginowanych części.
operator- Odejmuje dwie liczby zespolone, z których jedna lub obie mogą należeć do podzbioru typu dla rzeczywistych i wyimaginowanych części.
operator/ Dzieli dwie liczby zespolone, z których jedna lub obie mogą należeć do podzbioru typu dla rzeczywistych i wyimaginowanych części.
operator<< Funkcja szablonu, która wstawia liczbę zespolona do strumienia wyjściowego.
operator== Testuje równość między dwiema liczbami zespolonymi, z których jedna lub obie mogą należeć do podzbioru typu dla rzeczywistych i wyimaginowanych części.
operator>> Funkcja szablonu, która wyodrębnia złożoną wartość ze strumienia wejściowego.

Klasy

Nazwa/nazwisko opis
complex<double> Jawnie wyspecjalizowany szablon klasy opisuje obiekt, który przechowuje uporządkowaną parę obiektów, zarówno typu double, gdzie pierwszy reprezentuje rzeczywistą część liczby zespolonej, a drugi reprezentuje część wyimaginowaną.
complex<float> Jawnie wyspecjalizowany szablon klasy opisuje obiekt, który przechowuje uporządkowaną parę obiektów, zarówno typu float, gdzie pierwszy reprezentuje rzeczywistą część liczby zespolonej, a drugi reprezentuje część wyimaginowaną.
complex<long double> Jawnie wyspecjalizowany szablon klasy opisuje obiekt, który przechowuje uporządkowaną parę obiektów, zarówno typu long double, gdzie pierwszy reprezentuje rzeczywistą część liczby zespolonej, a drugi reprezentuje część wyimaginowaną.
complex Szablon klasy opisuje obiekt używany do reprezentowania złożonego systemu liczb i wykonywania złożonych operacji arytmetycznych.

Literały

Nagłówek <złożony> definiuje następujące literały zdefiniowane przez użytkownika. Literały tworzą liczbę zespolona z rzeczywistą częścią zera i wyimaginowaną częścią, która ma wartość parametru wejściowego.

Deklaracji opis
constexpr complex<long double> operator""il(long double d)
constexpr complex<long double> operator""il(unsigned long long d)
Zwroty: 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)
Zwraca wartość: 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)
Zwraca wartość: complex<float>{0.0f, static_cast<float>(d)}.

Zobacz też

Odwołanie do plików nagłówka
Bezpieczeństwo wątków w standardowej bibliotece języka C++