gsl 复数
一、复数的表示
复数的两种表示:
gsl复数结构的声明和部分宏在gsl_complex.h中,方法的声明和另一部分宏在gsl_complex_math.h。复数的表示(结构)有三种,即float型、double型和long double型。dat[0]表示实部,dat[1]表示虚部。应注意的是,在gsl_complex_math.h中,所有的方法都是关于gsl_complex和double的。
1 typedef struct 2 { 3 long double dat[2]; 4 } 5 gsl_complex_long_double; 6 7 typedef struct 8 { 9 double dat[2]; 10 } 11 gsl_complex; 12 13 typedef struct 14 { 15 float dat[2]; 16 } 17 gsl_complex_float;
二、复数的创建
1 gsl_complex gsl_complex_polar (double r, double theta); /* r= r e^(i theta) */ 2 gsl_complex gsl_complex_rect (double x, double y); /* r= real+i*imag */
两个函数对应两种不同的表示方法,但返回的结构是一样的。在gsl_complex.h中定义了用于获取实部、获取虚部的宏,在gsl_complex_math.h声明了获取模和弧度的函数。
用于判断复数是否相等、设置复数、设置实部、设置虚部的宏定义在gsl_complex.h中。
#define GSL_REAL(z) ((z).dat[0]) #define GSL_IMAG(z) ((z).dat[1]) double gsl_complex_arg (gsl_complex z); /* return arg(z), -pi< arg(z) <=+pi */ double gsl_complex_abs (gsl_complex z); /* return |z| */
三、复数的运算
- 1个求弧函数
- 3个取模运算(|z|,|z|^2,log |z|)
- 12个四则运算(复数与复数,复数与实数,复数与虚数)
- 共轭
- 复数倒数
- -z(“复数相反数”)
- 2个开方运算(被开方数为复数或实数,结果都是复数)
- 2个乘方运算(指数为复数或实数)
- exp()
- 3个对数运算(底数为e、10、z)
- 三角函数反三角函数
- 双曲函数反双函数
2018-01-02