跳转到内容

C 编程/complex.h/carg

来自 Wikibooks,开放世界中的开放书籍
double carg(double complex z);
float cargf(float complex z);
long double cargl(long double complex z);

carg 是一个标准库函数,用于计算复数的辐角(相位角)。它接受一个参数,并返回该值(如果需要转换为复数)在 [π, −π] 范围内的相位角。

此函数接受一个 complex 类型的参数,并返回一个 double 类型的结果。

复数可以表示为

  • 直角坐标系中的
  • 极坐标系中的

其中

  • A = creal(Z) 是实部
  • B = cimag(Z) 是虚部
  • r = cabs(z) 是半径
  • a = carg(z) 是相位(角度或辐角)

因此,此函数返回用于极坐标的复数 Z 的相位。返回值以弧度表示,范围为 [π, -π]。当我们使用此函数时,必须包含 <complex.h> 头文件。

[1]

#include <complex.h>
double carg(double complex z);
float cargf(float complex z);
long double cargl(long double complex z);
 /* conversion of a real number from its Cartesian to polar form */

 #include <stdio.h>
 #include <complex.h>
 
 int main() {
   double complex z = -4.4 + 3.3 * I;
   double x = creal(z);
   double y = cimag(z);
 
   double radius = cabs(z);
   double argument = carg(z);
 
   printf("cartesian(x, y): (%4.1f, %4.1f)\n", x, y);
   printf("polar(r, theta): (%4.1f, %4.1f)\n", radius, argument);
   return 0;
 }

输出:[2]

 Cartesian(x, y): (-4.4, 3.3)
 polar(r, theta): (5.5, 2.5)

参考文献

[编辑 | 编辑源代码]
华夏公益教科书