C 库 - carg() 函数

❮ C 标准库 - <complex.h>


C complex 库中的 carg() 函数用于计算复数的幅角(相位角)。复数 (z = x + jy) 的相位角是正实轴与复平面中表示复数的直线之间的夹角。它用 π 或 θ 表示。

此函数取决于 z(复数)的类型。如果 z 是"float"类型或浮点虚数,我们可以使用 cargf() 来计算相位角。对于 long double 类型,请使用 cargl();对于 double 类型,请使用 carg()

语法

以下是 carg() 函数的 C 库语法 -

double carg( double complex z );

参数

此函数接受单个参数 -

  • Z - 它表示一个复数,我们需要计算其相位角。

返回值

如果没有错误,此函数将返回区间 [-π, π] 内 z 的相位角。

示例 1

以下是一个简单的 C 程序,演示如何使用 carg() 计算 z 的相位角。

#include <stdio.h>
#include <complex.h>

int main(void) {
    double complex z = 1.0 + 1.0 * I;
    printf("%.1f + %.1fi 的相位角为 %.6f", creal(z), cimag(z), carg(z));
    return 0;
}

输出

以下是输出 -

1.0 + 1.0i 的相位角为 0.785398

示例 2

我们来看另一个示例,我们使用 carg() 函数计算负复数的相位角(幅角)。

#include <stdio.h>
#include <complex.h>

int main(void) {
    double complex z = -3.0 + 4.0*I;
    
    // 使用 carg() 计算相位角
    double phase_angle = carg(z);
    
    printf("复数:%.1f + %.1fi", creal(z), cimag(z));
    printf("相位角:%.6f 弧度", phase_angle);
    
    return 0;
}

输出

以下是输出 -

复数:-3.0 + 4.0i
相位角:2.214297 弧度

示例 3

以下示例计算位于第三象限的复数的相位角。

#include <stdio.h>
#include <complex.h>

int main(void) {
    double complex z = -3.0 + -4.0*I;
    
    //使用 carg() 计算相位角
    double phase_angle = carg(z);
    
    printf("复数:%.1f + %.1fi", creal(z), cimag(z));
    printf("相位角:%.6f 弧度", phase_angle);
    return 0;
}

输出

输出结果如下,表明相位角位于第三象限,范围为 [-π, π]。

复数:-3.0 + -4.0i
相位角:-2.214297 弧度

❮ C 标准库 - <complex.h>