amplt,<math.h>

是C函数库中比较重要的一个库,个人收集了一些自己常用的库,并对一些难以理解的函数附带实例或说明。这里我把分成了六类,分别是:
三角函数库;
反三角函数库;
双曲函数库;
指数函数库与对数函数库;
幂函数库;
绝对值函数库以及求余函数库。
这里针对这六类分别讲解,相信你一定能很好掌握。
一、三角函数库:
double sin(double x);
double cos(double x);
double tan(double x);
没有现成的cot三角函数,可以使用tan(PI/2-x)来实现。
二、反三角函数库:
double asin(double x);取值范围在[-PI/2,PI/2]之间
double acos(double x);取值范围在[0,PI]之间
double atan(double x);取值范围在(-PI/2,PI/2)之间
double atan2(double y,double);取值范围在(-PI,PI)之间;这是一个不太常见的函数,主要用来返回y/x的反正切值。
三、双曲函数库:
double sinh(double x);计算双曲正弦
double cosh(double x);计算双曲余弦
double tanh(double x);计算双曲正切
如果你你要问我双曲是干什么的,我没法告诉你,只能告诉你可以参考《高等数学》同济大学第六版上册中有一篇专门描述。再强调一点,以上三类传参都是针对以弧度表示的数值,非角度表示的数值。
四、指数函数库与对数函数库:
double frexp(double value,int *exp);这是一个将value值拆分成小数部分f和(以2为底的)指数部分exp,并返回小数部分f,即f*2exp。其中f取值在0.5~1.0范围或者0。
例如:frexp(24,&exp); => exp=5,返回值f为0.75。
<math.h> <math.h>
double ldexp(double x,int exp);这个函数刚好跟上面那个frexp函数功能相反,它的返回值是x*2exp
double modf(double value,double *iptr);拆分value值,返回它的小数部分,iptr指向整数部分。
double log(double x);返回以e为底的自然对数。
double log10(double x);返回常用对数。
对于一般的对数求解,考虑利用数学上的对数转换来实现。例如:
<math.h>
结果:
<math.h>
五、幂函数库:
double pow(double x,double y);返回xy的值。
double exp(double x);返回ey的值。
double sqrt(double x);返回<math.h> 的值。
六、绝对值函数库以及求余函数库:
double ceil(double x);返回比x大的最小整数
double floor(doulbe x);返回比x小的最大整数
这两个函数比较容易混淆,这里我给大家介绍一种方法,ceil与floor首字母分别是c与f,取值在c与f之间,所以对于ceil函数取最小整数,对于floor函数取最大整数。
double fabs(double x);
int abs(int x);这两个函数分别对实型数据和整型数据取绝对值;其实abs函数也定义在库中。
double fmod(double y,double x);考虑到%只适用与整型数据,这里提出一个专门针对实型数据的取余运算的函数。
这里只是一些常用的函数,当然还有许多优秀的数学函数,比如说div_t div(int numer,int denom)和ldiv_t ldiv(long int numer,long int denom)等。学习函数库的过程中,必须掌握常用的函数,碰到没见过的函数知道如何去查找函数库,慢慢充实即可。


Tags:  ltbrgt amplt

延伸阅读

最新评论

发表评论