C 库 - casin() 函数

❮ C 标准库 - <complex.h>


C complex 库中的 casin() 函数用于计算给定复数的反正弦值。该函数在 C99 中可用,并且适用于复数。其行为与 asin() 完全不同。asin() 函数用于计算给定数(以弧度为单位)的正弦值的反函数。

语法

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

double complex ccasin(double complex z);

参数

它仅接受一个参数 z(复数),用于执行反正弦运算。

返回值

若无错误,该函数将返回 z 的复数反正弦值。

示例 1

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

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

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

输出

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

casin(1.000000 + 2.000000i) = 0.427079 + 1.528571i

示例 2

这里,我们演示了 casin 的级数公式,使用递归方法求出项数,并借助一些现有函数(例如 creal()、cimag() 和 cimag())显示结果。

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

double complex casin_recursive(double complex z, int n) {
    if (n == 0) {
        return z;
    }
    double complex term = -(z * z) * (2 * n - 1) / (2 * n) * casin_recursive(z, n - 1);
    return term;
}

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

输出

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

`
casin(1.000000 + 2.000000i) = -1180400.258221 + -3662001.649712i (approximated with 10 terms)

❮ C 标准库 - <complex.h>