C++ 庫 - <ccomplex>



<ccomplex> 標頭檔案(在 C++ 中更常見的是 <complex>)提供了用於處理複數的函式。它實現了複數類,以笛卡爾形式包含複數,以及一些用於操作它們的函式和過載。

此標頭檔案提供了一些用於處理複數的函式和宏,並定義了 float _Complex、double _Complex 和 long double _Complex 型別。

包含 <ccomplex> 標頭檔案

要在 C++ 程式中包含 <ccomplex> 標頭檔案,可以使用以下語法。

#include <ccomplex>

<ccomplex> 標頭檔案的函式

以下是 <ccomplex> 標頭檔案中所有函式的列表。

複數運算

<ccomplex> 標頭檔案中的基本複數運算提供了用於處理複數的函式,並允許我們處理實部和虛部,並根據極座標建立複數。

序號 函式和描述
1 real(x)

此函式返回複數 x 的實部。

2 imag(x)

此函式返回複數 x 的虛部。

3 abs(x)

此函式返回複數 x 的絕對值。

4 arg(x)

此函式返回複數 x 的相位角(或角度分量),以弧度表示。

5 norm(x)

此函式返回複數 x 的模值。

6 conj(x)

此函式返回複數 x 的共軛複數。

7 polar(magnitude, angle)

此函式返回一個對應於使用幅度和角度(以弧度表示)的複數的複數物件(笛卡爾格式)。

8 proj(x)

此函式返回複數 x 在黎曼球面上的投影。

複數的基本操作

在下面的示例中,我們將使用 real() 和 imag() 來執行復數的基本操作。

#include <iostream>
#include <complex>

int main() {
    std::complex<double> z(3.0, 4.0);
    double real_part = real(z);
    double imag_part = imag(z);
    
    std::cout << "Real part: " << real_part << std::endl;
    std::cout << "Imaginary part: " << imag_part << std::endl;
    return 0;
}

輸出

如果我們執行上面的程式碼,它將生成以下輸出:

Real part: 3
Imaginary part: 4

超越函式過載

<ccomplex> 標頭檔案提供各種超越函式及其過載,這些函式專門用於處理複數。提供與指數、對數、冪和反三角/雙曲函式相關的函式。

序號 函式和描述
1 cos(x)

此函式返回複數 x 的餘弦值。

2 cosh(x)

此函式返回複數的雙曲餘弦值。

3 exp(x)

此函式計算複數 x 的自然對數(以 e 為底)的指數。

4 log10(x)

此函式計算複數的以 10 為底的對數。

5 pow(x,y)

此函式返回底數 x 的 y 次冪的複數值。

6 sin(x)

此函式返回複數 x 的正弦值。

7 sinh(x)

此函式返回複數 x 的雙曲正弦值。

8 sqrt(x)

此函式返回複數的平方根。

9 tan(x)

此函式返回複數 x 的正切值。

10 cosh(x)

此函式返回複數的雙曲餘弦值。

11 tanh(x)

此函式返回複數的雙曲正切值。

12 acos(x)

此函式返回複數 x 的反餘弦值。

13 acosh(x)

此函式返回複數 x 的反雙曲餘弦值。

14 asinh(x)

此函式返回複數 x 的反正弦值。

15 atan(x)

此函式返回複數 x 的反正切值。

16 atanh(x)

此函式返回複數 x 的反雙曲正切值。

使用超越函式

在下面的示例中,我們將對複數使用超越函式 (cos()、exp() 和 sqrt())。

#include <iostream>
#include <complex>
#include <cmath>
int main() {
    std::complex<double> z(1.0, 2.0);

    std::complex<double> cos_z = cos(z);     
    std::complex<double> exp_z = exp(z);     
    std::complex<double> sqrt_z = sqrt(z);   

    std::cout << "cos(z) = " << cos_z << std::endl;
    std::cout << "exp(z) = " << exp_z << std::endl;
    std::cout << "sqrt(z) = " << sqrt_z << std::endl;
    return 0;
}

輸出

如果我們執行上面的程式碼,它將生成以下輸出:

cos(z) = (2.03272,-3.0519)
exp(z) = (-1.1312,2.47173)
sqrt(z) = (1.27202,0.786151
廣告