Sdílet prostřednictvím


<complex>

Definuje šablonu complex třídy kontejneru a její podpůrné šablony.

Požadavky

Hlavička: <komplexní>

Namespace: std

Poznámky

Komplexní číslo je seřazený pár skutečných čísel. V čistě geometrických pojmech je složitá rovina skutečnou dvourozměrnou rovinou. Zvláštní vlastnosti komplexní roviny, které ji odlišují od skutečné roviny, jsou způsobeny jeho další algebraickou strukturou. Tato algebraická struktura má dvě základní operace:

  • Sčítání definované jako (a, b) + (c, d) = (a + c, b + d)

  • Násobení definované jako (a, b) * (c, d) = (ac - bd, ad bc) +

Sada komplexních čísel s operacemi komplexního sčítání a komplexního násobení jsou pole ve standardním algebraickém smyslu:

  • Operace sčítání a násobení jsou kommutativní a asociativní a násobení distribuují přes sčítání přesně tak, jak to dělá s reálným sčítáním a násobením v poli skutečných čísel.

  • Komplexní číslo (0, 0) je přídatná identita a (1, 0) je multiplikativní identita.

  • Přídavná inverzní funkce pro komplexní číslo (a, b) je (-a, -b) a násobení inverzní pro všechna taková komplexní čísla s výjimkou (0, 0) je

    (a/(a 2 + b 2);-b/(a2 + b2))

Při reprezentaci komplexního čísla z = (a, b) ve tvaru z = a + bi, kde i2 = -1 lze pravidla pro algebru sady reálných čísel použít na množinu komplexních čísel a na jejich součásti. Příklad:

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

Systém komplexních čísel je pole, ale nejedná se o uspořádané pole. Neexistuje žádné řazení komplexních čísel, protože pole skutečných čísel a jejích podmnožina není možné použít, takže nerovnosti se nedají použít na komplexní čísla, protože se jedná o reálná čísla.

Existují tři běžné formy reprezentace komplexního čísla z:

  • Kartézský: z = a bi +

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

  • Exponenciální hodnota: z = r * e ip

Termíny používané v těchto standardních reprezentacích komplexního čísla se označují takto:

  • Skutečná kartézská komponenta nebo skutečná část a.

  • Imaginární kartézská součást nebo imaginární část b.

  • Moduly nebo absolutní hodnota komplexního čísla r.

  • Argument nebo úhel fáze p v radiánech.

Pokud není uvedeno jinak, funkce, které můžou vrátit více hodnot, musí vrátit hodnotu objektu zabezpečení pro své argumenty větší než -π a menší než nebo rovno +π, aby měly jednu hodnotu. Všechny úhly musí být vyjádřeny v radiánech, kde jsou v kruhu 2π radiány (360 stupňů).

Členové

Funkce

Název Popis
abs Vypočítá moduly komplexního čísla.
acos
acosh
arg Extrahuje argument ze komplexního čísla.
asin
asinh
atan
atanh
conj Vrátí komplexní konjugování komplexního čísla.
cos Vrátí kosinus komplexního čísla.
cosh Vrátí hyperbolický kosinus komplexního čísla.
exp Vrátí exponenciální funkci komplexního čísla.
imag Extrahuje imaginární komponentu komplexního čísla.
log Vrátí přirozený logaritmus komplexního čísla.
log10 Vrátí logaritmus komplexního čísla o základu 10.
norm Extrahuje normu komplexního čísla.
polar Vrátí komplexní číslo, které odpovídá zadanému modulu a argumentu v kartézské podobě.
pow Vyhodnotí komplexní číslo získané zvýšením základu, který je komplexním číslem na mocninu jiného komplexního čísla.
proj
real Extrahuje skutečnou komponentu komplexního čísla.
sin Vrátí sinus komplexního čísla.
sinh Vrátí hyperbolický sinus komplexního čísla.
sqrt Vrátí druhou odmocninu komplexního čísla.
tan Vrátí tangens komplexního čísla.
tanh Vrátí hyperbolický tangens komplexního čísla.

Operátory

Název Popis
operator!= Testy nerovnosti mezi dvěma komplexními čísly, jedno nebo obojí, které mohou patřit podmnožině typu pro skutečné a imaginární části.
operator* Vynásobí dvě komplexní čísla, jedno nebo obojí, které mohou patřit do podmnožina typu pro skutečné a imaginární části.
operator+ Sečte dvě komplexní čísla, jedno nebo obojí, které mohou patřit do podmnožině typu pro skutečné a imaginární části.
operator- Odečte dvě komplexní čísla, jedno nebo obojí, které mohou patřit do podmnožina typu pro skutečné a imaginární části.
operator/ Rozdělí dvě složitá čísla, jedno nebo obě, které mohou patřit do podmnožina typu pro skutečné a imaginární části.
operator<< Funkce šablony, která vloží komplexní číslo do výstupního datového proudu.
operator== Testuje rovnost mezi dvěma komplexními čísly, jedním nebo oběma, z nichž může patřit podmnožině typu pro skutečné a imaginární části.
operator>> Funkce šablony, která extrahuje komplexní hodnotu ze vstupního datového proudu.

Třídy

Název Popis
complex<double> Explicitně specializovaná šablona třídy popisuje objekt, který ukládá seřazený pár objektů, oba typy double, kde první představuje skutečnou část komplexního čísla a druhá představuje imaginární část.
complex<float> Explicitně specializovaná šablona třídy popisuje objekt, který ukládá seřazený pár objektů, oba typy float, kde první představuje skutečnou část komplexního čísla a druhá představuje imaginární část.
complex<long double> Explicitně specializovaná šablona třídy popisuje objekt, který ukládá seřazený pár objektů, oba typy long double, kde první představuje skutečnou část komplexního čísla a druhá představuje imaginární část.
complex Šablona třídy popisuje objekt použitý k reprezentaci komplexního číselného systému a provádění složitých aritmetických operací.

Literály

Komplexní <> hlavička definuje následující uživatelsky definované literály. Literály vytvoří komplexní číslo se skutečnou částí nuly a imaginární částí, která má hodnotu vstupního parametru.

Deklarace Popis
constexpr complex<long double> operator""il(long double d)
constexpr complex<long double> operator""il(unsigned long long d)
Vrací: 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)
Vrátí: 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)
Vrátí: complex<float>{0.0f, static_cast<float>(d)}.

Viz také

Referenční informace k souborům hlaviček
Zabezpečení vláken ve standardní knihovně jazyka C++