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
广告