天天看点

c++常用数学函数库

      今天在项目中涉及到了一个对图形进行一定角度的旋转的问题,这个角度需要根据相关坐标点进行计算得来,因此自然需要调用一些数学库内的一些函数,这些函数用起来并不难,但有些函数用的较少,关键时刻却想不起来,这里收藏一篇c++中常用的数学函数库的博文,此篇博文最大的亮点是对每个函数数学方面相关的知识有一个简短的说明,对于多年没用相关数学知识的童鞋是很有帮助的。

【转载自曲终】:http://rogee.cnblogs.com/

abs

原型:extern int abs(int x);

用法:#include <math.h>

功 能:求整数x的绝对值

说明:计算|x|, 当x不为负时返回x,否则返回-x

举例:

     // abs.c

     #include <syslib.h>

     #include <math.h>

     main()

     {

       int x;

       clrscr();        // clear screen

       x=-5;

       printf("|%d|=%d\n",x,abs(x));

       x=0;

       x=+5;

       getchar();

       return 0;

     }

相关函数:fabs

acos

原 型:extern float acos(float x);

功 能:求x(弧度表示)的反余弦值

说明:x的定义域为[-1.0,1.0],值域为[0,π]。

     // acos.c

       float x;

       textmode(0x00); // 6 lines per LCD screen

       x=0.32;

       printf("acos(%.2f)=%.4f",x,acos(x));

相关函数:asin,atan,atan2,sin,cos,tan

asin

原 型:extern float asin(float x);

功 能:求x(弧度表示)的反正弦值

说明:x的定义域为[-1.0,1.0],值域为[-π/2,+π/2]。

     // asin.c

       printf("asin(%.2f)=%.4f",x,asin(x));

相关函数:acos,atan,atan2,sin,cos,tan

atan

原 型:extern float atan(float x);

功 能:求x(弧度表示)的反正切值

说明:值域为(-π/2,+π/2)。

     // atan.c

       printf("atan(%.2f)=%.4f",x,atan(x));

相关函数:asin,acos,atan2,sin,cos,tan

atan2

原 型:extern float atan2(float y, float x);

功能:求y/x(弧度表示)的反正切值

举 例:

     // atan2.c

       float x,y;

       x=0.064;

       y=0.2;

       printf("atan2(%.3f,%.2f)=%.4f",y,x,atan2(y,x));

相关函 数:asin,acos,atan,sin,cos,tan

ceil

原型:extern float ceil(float x);

功能:求不小于x的最 小整数

说明:返回x的上限,如74.12的上限为75,-74.12的上限为-74。返回值为float类型。

     // ceil.c

       x=74.12;

       printf("ceil(%.2f)=%.0f\n",x,ceil(x));

       x=-74.12;

相关函数:floor

cos

原 型:extern float cos(float x);

功 能:求x(弧度表示)的余弦值

说明:返回值在[-1.0,1.0]之间。

     // cos.c

       x=PI/4.;

       printf("cos(%.4f)=%.4f\n",x,cos(x));

相关函数:asin,acos,atan,atan2,sin,tan

cosh

原 型:extern float cosh(float x);

功 能:求x的双曲余弦值

说明:cosh(x)=(e^x+e^(-x))/2

     // cosh.c

       printf("cosh(%.4f)=%.4f\n",x,cosh(x));

相关函数:sinh,tanh

exp

原 型:extern float exp(float x);

功 能:求e的x次幂

说明:e=2.718281828...

     // exp.c

       printf("e=%f\n",exp(1.0));

相关函数:无

fabs

原 型:extern float fabs(float x);

功 能:求浮点数x的绝对值

     // fabs.c

       printf("|%f|=%f\n",x,fabs(x));

相关函数:abs

floor

原 型:extern float floor(float x);

功 能:求不大于x的最达整数

说明:返回x的下限,如74.12的下限为74,-74.12的下限为-75。返回值为float类型。

     // floor.c

       printf("floor(%.2f)=%.0f\n",x,floor(x));

相关函数:ceil

fmod

原 型:extern float fmod(float x, float y);

功 能:计算x/y的余数

说明:返回x-n*y,符号同y。n=[x/y](向离开零的方向取整)

     // fmod.c

       y=6.4;

       printf("74.12/6.4: %f\n",fmod(x,y));      

       y=-6.4;

       printf("74.12/(-6.4): %f\n",fmod(x,y));      

相关函 数:无

frexp

原型:extern float frexp(float x, int *exp);

功能:把浮点数x分解成尾数和指数。

说 明:x=m*2^exp,m为规格化小数。返回尾数m,并将指数存入exp中。

     // frexp.c

       int exp;

       x=frexp(64.0,&exp);

       printf("64=%.2f*2^%d",x,exp);

相关函数:ldexp,modf

hypot

原 型:extern float hypot(float x, float y);

功能:对于给定的直角三角形的两个直角边,求其斜边的长度。

说明:返回斜边值。

     // hypot.c

       printf("3^2+4^2=%.0f^2\n",hypot(3.,4.));

       printf("3.2^2+4.3^2=%.2f^2",hypot(x,y));

相关函数:frexp,ldexp

ldexp

原 型:extern float ldexp(float x, int exp);

功能:装载浮点数。

说明:返回x*2^exp的值。

     // ldexp.c

       x=ldexp(1.0,6); // 1.0*2^6

       printf("2^6=%.2f",x);

相关函数:frexp,modf

log

原 型:extern float log(float x);

功 能:计算x的自然对数。

说明:x的值应大于零。

     // log.c

       printf("ln(e)=%f\n", log(M_E)); // M_E is 2.71828..., defined in math.h

相关函数:log10

log10

原型:extern float log10(float x);

功能:计算x的常用 对数。

     // log10.c

       printf("lg(5)=%f\n", log10(5.0));

相关函数:log

modf

原 型:extern float modf(float num, float *i);

功能:将浮点数num分解成整数部分和小数部分。

说明:返回小数部分,将整数部分存入*i 所指内存中。

     // modf.c

       float x, i;

       x=modf(-74.12,&i);

       printf("-74.12=%.0f+(%.2f)",i,x);

pow10

原 型:extern float pow10(float x);

功 能:计算10的x次幂。

说明:相当于pow(10.0,x)。

     // pow10.c

       printf("10^3.2=%f\n",pow10(3.2));

       printf("10^3.2=%f",pow(10,3.2));

相关函数:pow

pow

原 型:extern float pow(float x, float y);

功 能:计算x的y次幂。

说明:x应大于零,返回幂指数的结果。

     // pow.c

       printf("4^5=%f",pow(4.,5.));

相关函数:pow10

sin

原 型:extern float sin(float x);

功 能:计算x(弧度表示)的正弦值。

说明:x的值域为[-1.0,1.0]。

     // sin.c

       x=M_PI/2;        // M_PI=PI=3.14159265..., defined in math.h

       printf("sin(PI/2)=%f",sin(x));

相关函数:asin,acos,atan,atan2,cos,tan

sinh

原 型:extern float sinh(float x);

功 能:计算x(弧度表示)的双曲正弦值。

说明:sinh(x)=(e^x-e^(-x))/2。

     // sinh.c

       printf("sinh(%.4f)=%.4f\n",x,sinh(x));

相关函数:cosh,tanh

sqrt

原 型:extern float sqrt(float x);

功 能:计算x的平方根。

说明:x应大于等于零。

     // sqrt.c

       printf("sqrt(2000)=%f",sqrt(2000.0));

tan

原 型:extern float tan(float x);

功 能:计算x(弧度表示)的正切值。

说明:返回x的正切值。

     // tan.c

       x=M_PI/4;        // M_PI=PI=3.14159265..., defined in math.h

       printf("tan(PI/4)=%f",tan(x));

相关函 数:asin,acos,atan,atan2,sin,cos

tanh

原型:extern float tanh(float x);

功能:求x的双曲正切 值

说明:tanh(x)=(e^x-e^(-x))/(e^2+e^(-x))

     // tanh.c

       printf("tanh(%.4f)=%.4f\n",x,tanh(x));