C 库 - cproj() 函数

❮ C 标准库 - <complex.h>


C complex 库中的 cproj() 函数用于计算 z(复数)在黎曼球面上的投影。投影是指将一个点或一组点从一个空间映射到另一个空间的映射或变换。

在数学中,黎曼球面是复平面的模型。它将平面上的所有点映射到球面上的点,引入无穷大作为复函数在无穷远处行为的表示。

语法

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

double complex cproj( double complex z );

参数

此函数接受单个参数 -

  • Z - 它表示一个复数,我们需要计算其投影。

返回值

此函数返回一个复数,类型可以是 double、float 或 long double,表示 z 在黎曼球面上的投影。

示例 1

以下是一个简单的 C 程序,用于演示如何使用 cproj() 函数对复数进行计算。

#include <stdio.h>
#include <complex.h>
#include <math.h> 
int main()
{
   double complex proj1 = cproj(1 + 2*I);
   printf("cproj(1+2i) = %.1f%+.1fi", creal(proj1),cimag(proj1));
   
   double complex proj2 = cproj(INFINITY+2.0*I);
   printf("cproj(Inf+2i) = %.1f%+.1fi", creal(proj2),cimag(proj2));
}

输出

以下是输出 -

cproj(1+2i) = 1.0+2.0i
cproj(Inf+2i) = inf+0.0i

示例 2

我们来看另一个示例,我们使用 CMPLX() 创建一个复数。然后使用 cproj() 计算该复数的投影。

#include <stdio.h>
#include <complex.h>
#include <math.h>
int main()
{
    double real = 3;
    double imag = 4;
    double complex z  = CMPLX(real, imag);
    
    double proj = cproj(z);
    
    printf("复数:%.1f + %.1fi", creal(z), cimag(z));
    
    printf("复数投影 = %.1f + %.1fi", creal(proj),cimag(proj));
}

输出

以下是输出 -

复数:3.0 + 4.0i
复数投影 = 3.0 + 0.0i

示例 3

以下 c 示例计算负复数的投影。

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

int main(void) {
    double complex z = -3.0 + -4.0*I;
    
    // 求复数的投影
    double proj = cproj(z);
    
    printf("复数:%.2f + %.2fi", creal(z), cimag(z));
    printf("复数的投影:%.2f + %.2fi", creal(proj), creal(proj));
    return 0;
}

输出

以下是输出 -

复数:-3.00 + -4.00i
复数的投影:-3.00 + -3.00i

❮ C 标准库 - <complex.h>