C 库 - clog() 函数



C 的complexclog()函数用于计算 z(复数)的复自然(以 e 为底)对数,分支切割沿负实轴。

此函数取决于 z(复数)的类型。如果 z 为“float”类型,我们可以使用clogf()计算复对数,对于 long double 类型,使用clogl(),对于 double 类型,使用clog()

注意:复数 z 的自然对数可以使用其极坐标 (r,θ) 表示,其中 r 是 z 的大小(或模数),θ 是幅角(或相位角)。根据这些极坐标,自然对数 ln(z) 由下式给出:ln(z)=ln(r)+i(θ+2nπ)

语法

以下是 clog() 函数的 C 库语法:

double complex clog( double complex z )

参数

此函数接受一个参数:

  • Z - 它表示我们要计算自然对数的复数。

返回值

此函数返回 z(复数)的复自然对数,范围在沿虚轴的区间 [−iπ, +iπ] 中的条带内,并在实轴上数学上无界。

示例 1

以下是一个基本的 c 程序,用于演示如何在复数上使用 clog()

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

int main() {
   double complex z = 3.0 + 4.0*I; 
   
   // Compute ln(z)
   double complex result = clog(z);
   printf("clog(%f + %fi) = %f + %fi\n", creal(z), cimag(z), creal(result), cimag(result));
   return 0;
}

输出

以下是输出:

clog(3.000000 + 4.000000i) = 1.609438 + 0.927295i

示例 2

计算具有负实部的自然对数。

让我们看另一个例子,我们使用 clog() 计算自然(以 e 为底)对数。

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

int main() {
   double complex z = -3.0 + 4.0*I; 
   
   // Compute ln(z)
   double complex result = clog(z);
   printf("clog(%f + %fi) = %f + %fi\n", creal(z), cimag(z), creal(result), cimag(result));
   return 0;
}

输出

以下是输出:

clog(-3.000000 + 4.000000i) = 1.609438 + 2.214297i

示例 3

计算具有负实部和负虚部的自然对数

现在,让我们计算 (-3.0 + -4.0*I) 的自然(以 e 为底)对数。

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

int main() {
   double complex z = -3.0 + -4.0*I; 
   
   // Compute ln(z)
   double complex result = clog(z);
   printf("clog(%f + %fi) = %f + %fi\n", creal(z), cimag(z), creal(result), cimag(result));
   return 0;
}

输出

以下是输出:

clog(-3.000000 + -4.000000i) = 1.609438 + -2.214297i
c_library_complex_h.htm
广告