<complex>
定義容器類別範本 complex
及其支援的範本。
需求
標頭: <複雜>
命名空間:std
備註
複數是已排序的實陣列。 在純粹幾何方面, 複雜平面 是真正的二維平面。 區別複數平面和實數平面最特別的特質在於,是因為它有額外的代數結構。 此代數結構有兩種基本運算:
加法,定義為 (a, b) + (c, d) = (a + c, b + d)
乘法,定義為 (a, b) * (c, d) = (ac - bd, ad + bc)
具有複雜加法和複數乘法運算的複數集合是 標準代數意義上的字段 :
加法和乘法運算是可交換和可結合的,且乘法可分配到加法,和實數體上的實數加法與乘法如出一轍。
複數 (0, 0) 為加法單位元素,而 (1, 0) 為乘法單位元素。
複數的加法反數 (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 + 3 i) = (2 + 3 i) + (4i + 6 i 2) = (2 - 6) + (3 + 4)i = -4 + 7 i
複數系統是欄位,但不是已排序的欄位。 沒有複數的順序,因為實數的欄位及其子集沒有順序,因此不平等無法套用至複數,因為它們是實數。
有三種常用來表示複數 z 的形式:
笛卡兒: z = a + bi
極地: 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 |
傳回複數之底數為 10 的對數值。 |
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 |
類別範本描述用來表示複數系統並執行複雜算術運算的物件。 |
常值
<複雜>標頭會定義下列用戶定義的常值。 常值會建立具有零之實數的複數,以及具有輸入參數值的虛數部分。
宣告 | 描述 |
---|---|
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)} 。 |