C 库 - catan() 函数



C 的complexcatan() 函数执行给定复数的反正切(反正切)任务。此函数在头文件 <complex.h> 中定义,自 C99 起可用。

语法

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

double complex catan(double complex z);

参数

此函数仅接受一个参数 (z),该参数被识别为复数。

返回值

此函数返回 z 的复反正切。

示例 1

以下是演示 catan() 函数用法的 C 库程序。

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

int main() {
   double complex z = 1.0 + 2.0 * I; 
   double complex result = catan(z);
   printf("catan(%lf + %lfi) = %lf + %lfi\n", creal(z), cimag(z), creal(result), cimag(result));
   return 0;
}

输出

执行以上代码后,我们得到以下结果 -

catan(1.000000 + 2.000000i) = 1.338973 + 0.402359i

示例 2

下面的程序创建一个自定义函数 catan_fun(),该函数通过接受两个参数来执行级数公式的任务 - z(复数)和 n(项数)。这些参数会影响复数的近似值。

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

double complex catan_fun(double complex z, int n) {
   double complex sum = z;
   double complex term = z;

   for (int i = 1; i <= n; ++i) {
      term *= -(z * z) / (2 * i + 1);
      sum += term;
   }

   return sum;
}

int main() {
   double complex z = 1.0 + 2.0 * I;
   int terms = 10; 
   double complex result = catan_fun(z, terms);
   printf("catan(%lf + %lfi) = %lf + %lfi (approximated with %d terms)\n", creal(z), cimag(z), creal(result), cimag(result), terms);
   return 0;
}

输出

执行以上代码后,我们得到以下结果 -

catan(1.000000 + 2.000000i) = 5.249622 + -2.709977i (approximated with 10 terms)

示例 3

在这里,我们将再次使用名为递归的相同原理。通过使用此过程,用户可以控制不同精度级别的项参数。我们观察到参数 z 表示输入复数,并返回结果作为项值。

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

double complex catan_recursive(double complex z, int n) {
   if (n == 0) {
      return z;
   }
   double complex term = -(z * z) / (2 * n + 1) * catan_recursive(z, n - 1);
   return term;
}
 
int main() {
   double complex z = 1.0 + 2.0 * I; 
   
   // input value of no. of terms in recursion
   int terms = 10; 
   double complex result = catan_recursive(z, terms);
   printf("catan(%lf + %lfi) = %lf + %lfi (approximated with %d terms)\n", creal(z), cimag(z), creal(result), cimag(result), terms);
   return 0;
}

输出

以上代码产生以下结果 -

catan(1.000000 + 2.000000i) = -0.000487 + -0.001512i (approximated with 10 terms)
c_library_complex_h.htm
广告