天天看點

C/C++ 數學庫檔案 (math.h)

目錄

1、三角函數 Trigonometric functions

1.1、 cos() 函數

1.2 sin() 正弦函數

1.3、 tan() 正切函數

1.4、 acos() 反餘弦函數

1.5、asin() 反正弦函數

1.6、atan() 反正切函數

1.7、atan2() 帶兩個參數的反正切函數

2、雙曲函數 Hyperbolic functions

2.1、雙曲餘弦函數

2.2、雙曲正弦函數

2.3、雙曲正切函數

3、指數函數與對數函數 Exponential and logarithmic functions

3.1、exp () 指數函數,以 e 為底數

3.2、frexp(param,n) 二進制浮點數表示方法 x=param*2^n

3.3、log(x) x的自然對數 (Natural logarithm of x)

3.4、log10() 常用對數,以10為底 ( Common logarithm of x )

3.5、modf() 傳回x的小數部分,其符号與x相同 ,但是參數中可以添加整數部分的變量( The fractional part of x, with the same sign)

3.6、exp2() 傳回2的x次方,2 raised to the power of x.

3.7、log2() x的二進制對數( The binary logarithm of x)

4、幂函數 Power functions

4.1、pow(base, power) 幂函數 The result of raising base to the power exponent

4.2、sqrt(x) 計算x的平方根

4.3、cbrt(x) 計算x的立方根

4.4、hypot(x,y) 計算直角三角形的斜邊 ( The square root of (x^2+y^2) )

5、誤差與伽馬函數 Error and gamma functions

5.1、誤差函數erf(x) ​

5.2、餘差函數erfc(x) erfc(x) = 1-erf(x) 誤差函數的補函數 ​

5.3、tgamma(x) 伽馬函數 ( the gamma function ) ​

5.4、lgamma(x) log伽馬函數 ( log-gamma function ) ​

6、四舍五入與餘數函數Rounding and remainder functions

6.1、ceil(x) x上取整函數

6.2、floor(x) x的下取整函數

6.3、fmod(y, x) y/x的餘數

6.4、round(x) x的四舍五入值 ​

7、絕對值、最小、最大 Absolute、Minimum, maximum

7.1、fabs(x) x的絕對值函數

7.2、abs(x) x的絕對值

7.3、fmax(x, y) 兩個參數中的最大值 (The maximum numeric value of its arguments. Values among which the function selects a maximum )

7.4、fmin(x, y) 兩個參數中的最小值

1、三角函數 Trigonometric functions

1.1、 cos() 函數

/* cos example */
#include <stdio.h>      /* printf */
#include <math.h>       /* cos */
#define PI 3.14159265
int main ()
{
  double param, result;
  param = 60.0;
  result = cos ( param * PI / 180.0 );
  printf ("The cosine of %f degrees is %f.\n", param, result );
  return 0;
}
           

1.2 sin() 正弦函數

/* sin example */
#include <stdio.h>      /* printf */
#include <math.h>       /* sin */

#define PI 3.14159265

int main ()
{
  double param, result;
  param = 30.0;
  result = sin (param*PI/180);
  printf ("The sine of %f degrees is %f.\n", param, result );
  return 0;
}
           

1.3、 tan() 正切函數

/* tan example */
#include <stdio.h>      /* printf */
#include <math.h>       /* tan */

#define PI 3.14159265

int main ()
{
  double param, result;
  param = 45.0;
  result = tan ( param * PI / 180.0 );
  printf ("The tangent of %f degrees is %f.\n", param, result );
  return 0;
}
           

1.4、 acos() 反餘弦函數

/* acos example */
#include <stdio.h>      /* printf */
#include <math.h>       /* acos */

#define PI 3.14159265

int main ()
{
  double param, result;
  param = 0.5;
  result = acos (param) * 180.0 / PI;
  printf ("The arc cosine of %f is %f degrees.\n", param, result);
  return 0;
}
           

1.5、asin() 反正弦函數

/* asin example */
#include <stdio.h>      /* printf */
#include <math.h>       /* asin */

#define PI 3.14159265

int main ()
{
  double param, result;
  param = 0.5;
  result = asin (param) * 180.0 / PI;
  printf ("The arc sine of %f is %f degrees\n", param, result);
  return 0;
}
           

1.6、atan() 反正切函數

/* atan example */
#include <stdio.h>      /* printf */
#include <math.h>       /* atan */

#define PI 3.14159265

int main ()
{
  double param, result;
  param = 1.0;
  result = atan (param) * 180 / PI;
  printf ("The arc tangent of %f is %f degrees\n", param, result );
  return 0;
}
           

1.7、atan2() 帶兩個參數的反正切函數

/* atan2 example */
#include <stdio.h>      /* printf */
#include <math.h>       /* atan2 */

#define PI 3.14159265

int main ()
{
  double x, y, result;
  x = -10.0;
  y = 10.0;
  result = atan2 (y,x) * 180 / PI;
  printf ("The arc tangent for (x=%f, y=%f) is %f degrees\n", x, y, result );
  return 0;
}
           

2、雙曲函數 Hyperbolic functions

2.1、雙曲餘弦函數

/* cosh example */
#include <stdio.h>      /* printf */
#include <math.h>       /* cosh, log */

int main ()
{
  double param, result;
  param = log(2.0);
  result = cosh (param);
  printf ("The hyperbolic cosine of %f is %f.\n", param, result );
  return 0;
}
           

2.2、雙曲正弦函數

/* sinh example */
#include <stdio.h>      /* printf */
#include <math.h>       /* sinh, log */

int main ()
{
  double param, result;
  param = log(2.0);
  result = sinh (param);
  printf ("The hyperbolic sine of %f is %f.\n", param, result );
  return 0;
}
           

2.3、雙曲正切函數

/* tanh example */
#include <stdio.h>      /* printf */
#include <math.h>       /* tanh, log */

int main ()
{
  double param, result;
  param = log(2.0);
  result = tanh (param);
  printf ("The hyperbolic tangent of %f is %f.\n", param, result);
  return 0;
}
           

3、指數函數與對數函數 Exponential and logarithmic functions

3.1、exp () 指數函數,以 e 為底數

/* exp example */
#include <stdio.h>      /* printf */
#include <math.h>       /* exp */

int main ()
{
  double param, result;
  param = 5.0;
  result = exp (param);
  printf ("The exponential value of %f is %f.\n", param, result );
  return 0;
}
           

3.2、frexp(param,n) 二進制浮點數表示方法 x=param*2^n

/* frexp example */
#include <stdio.h>      /* printf */
#include <math.h>       /* frexp */

int main ()
{
  double param, result;
  int n;

  param = 8.0;
  result = frexp (param , &n);
  printf ("%f = %f * 2^%d\n", param, result, n);
  return 0;
}
           

3.3、log(x) x的自然對數 (Natural logarithm of x)

/* log example */
#include <stdio.h>      /* printf */
#include <math.h>       /* log */

int main ()
{
  double param, result;
  param = 5.5;
  result = log (param);
  printf ("log(%f) = %f\n", param, result );
  return 0;
}
           

3.4、log10() 常用對數,以10為底 ( Common logarithm of x )

/* log10 example */
#include <stdio.h>      /* printf */
#include <math.h>       /* log10 */

int main ()
{
  double param, result;
  param = 1000.0;
  result = log10 (param);
  printf ("log10(%f) = %f\n", param, result );
  return 0;
}
           

3.5、modf() 傳回x的小數部分,其符号與x相同 ,但是參數中可以添加整數部分的變量( The fractional part of x, with the same sign)

/* modf example */
#include <stdio.h>      /* printf */
#include <math.h>       /* modf */

int main ()
{
  double param, fractpart, intpart;

  param = 3.14159265;
  fractpart = modf (param , &intpart);
  printf ("%f = %f + %f \n", param, intpart, fractpart);
  return 0;
}
           

3.6、exp2() 傳回2的x次方,2 raised to the power of x.

/* exp2 example */
#include <stdio.h>      /* printf */
#include <math.h>       /* exp2 */

int main ()
{
  double param, result;
  param = 8.0;
  result = exp2 (param);
  printf ("2 ^ %f = %f.\n", param, result );
  return 0;
}
           

3.7、log2() x的二進制對數( The binary logarithm of x)

/* log2 example */
#include <stdio.h>      /* printf */
#include <math.h>       /* log2 */

int main ()
{
  double param, result;
  param = 1024.0;
  result = log2 (param);
  printf ("log2 (%f) = %f.\n", param, result );
  return 0;
}
           

4、幂函數 Power functions

4.1、pow(base, power) 幂函數 The result of raising base to the power exponent

/* pow example */
#include <stdio.h>      /* printf */
#include <math.h>       /* pow */

int main ()
{
  printf ("7 ^ 3 = %f\n", pow (7.0, 3.0) );
  printf ("4.73 ^ 12 = %f\n", pow (4.73, 12.0) );
  printf ("32.01 ^ 1.54 = %f\n", pow (32.01, 1.54) );
  return 0;
}
           

4.2、sqrt(x) 計算x的平方根

/* sqrt example */
#include <stdio.h>      /* printf */
#include <math.h>       /* sqrt */

int main ()
{
  double param, result;
  param = 1024.0;
  result = sqrt (param);
  printf ("sqrt(%f) = %f\n", param, result );
  return 0;
}
           

4.3、cbrt(x) 計算x的立方根

/* cbrt example */
#include <stdio.h>      /* printf */
#include <math.h>       /* cbrt */

int main ()
{
  double param, result;
  param = 27.0;
  result = cbrt (param);
  printf ("cbrt (%f) = %f\n", param, result);
  return 0;
}
           

4.4、hypot(x,y) 計算直角三角形的斜邊 ( The square root of (x^2+y^2) )

/* hypot example */
#include <stdio.h>      /* printf */
#include <math.h>       /* hypot */

int main ()
{
  double leg_x, leg_y, result;
  leg_x = 3;
  leg_y = 4;
  result = hypot (leg_x, leg_y);
  printf ("%f, %f and %f form a right-angled triangle.\n",leg_x,leg_y,result);
  return 0;
}
           

5、誤差與伽馬函數 Error and gamma functions

5.1、誤差函數erf(x) 
C/C++ 數學庫檔案 (math.h)

/* erf example */
#include <stdio.h>      /* printf */
#include <math.h>       /* erf */

int main ()
{
  double param, result;
  param = 1.0;
  result = erf (param);
  printf ("erf (%f) = %f\n", param, result );
  return 0;
}
           

5.2、餘差函數erfc(x) erfc(x) = 1-erf(x) 誤差函數的補函數 
C/C++ 數學庫檔案 (math.h)

/* erfc example */
#include <stdio.h>      /* printf */
#include <math.h>       /* erfc */

int main ()
{
  double param, result;
  param = 1.0;
  result = erfc (param);
  printf ("erfc(%f) = %f\n", param, result );
  return 0;
}
           

5.3、tgamma(x) 伽馬函數 ( the gamma function ) 
C/C++ 數學庫檔案 (math.h)

/* tgamma example */
#include <stdio.h>      /* printf */
#include <math.h>       /* tgamma */

int main ()
{
  double param, result;
  param = 0.5;
  result = tgamma (param);
  printf ("tgamma(%f) = %f\n", param, result );
  return 0;
}
           

5.4、lgamma(x) log伽馬函數 ( log-gamma function ) 
C/C++ 數學庫檔案 (math.h)

/* lgamma example */
#include <stdio.h>      /* printf */
#include <math.h>       /* lgamma */

int main ()
{
  double param, result;
  param = 0.5;
  result = lgamma (param);
  printf ("lgamma(%f) = %f\n", param, result );
  return 0;
}
           

6、四舍五入與餘數函數Rounding and remainder functions

6.1、ceil(x) x上取整函數

/* ceil example */
#include <stdio.h>      /* printf */
#include <math.h>       /* ceil */

int main ()
{
  printf ( "ceil of 2.3 is %.1f\n", ceil(2.3) );
  printf ( "ceil of 3.8 is %.1f\n", ceil(3.8) );
  printf ( "ceil of -2.3 is %.1f\n", ceil(-2.3) );
  printf ( "ceil of -3.8 is %.1f\n", ceil(-3.8) );
  return 0;
}
           

6.2、floor(x) x的下取整函數

/* floor example */
#include <stdio.h>      /* printf */
#include <math.h>       /* floor */

int main ()
{
  printf ( "floor of 2.3 is %.1lf\n", floor (2.3) );
  printf ( "floor of 3.8 is %.1lf\n", floor (3.8) );
  printf ( "floor of -2.3 is %.1lf\n", floor (-2.3) );
  printf ( "floor of -3.8 is %.1lf\n", floor (-3.8) );
  return 0;
}
           

6.3、fmod(y, x) y/x的餘數

/* fmod example */
#include <stdio.h>      /* printf */
#include <math.h>       /* fmod */

int main ()
{
  printf ( "fmod of 5.3 / 2 is %f\n", fmod (5.3,2) );
  printf ( "fmod of 18.5 / 4.2 is %f\n", fmod (18.5,4.2) );
  return 0;
}
           

6.4、round(x) x的四舍五入值 
C/C++ 數學庫檔案 (math.h)

/* round vs floor vs ceil vs trunc */
#include <stdio.h>      /* printf */
#include <math.h>       /* round, floor, ceil, trunc */

int main ()
{
  const char * format = "%.1f \t%.1f \t%.1f \t%.1f \t%.1f\n";
  printf ("value\tround\tfloor\tceil\ttrunc\n");
  printf ("-----\t-----\t-----\t----\t-----\n");
  printf (format, 2.3,round( 2.3),floor( 2.3),ceil( 2.3),trunc( 2.3));
  printf (format, 3.8,round( 3.8),floor( 3.8),ceil( 3.8),trunc( 3.8));
  printf (format, 5.5,round( 5.5),floor( 5.5),ceil( 5.5),trunc( 5.5));
  printf (format,-2.3,round(-2.3),floor(-2.3),ceil(-2.3),trunc(-2.3));
  printf (format,-3.8,round(-3.8),floor(-3.8),ceil(-3.8),trunc(-3.8));
  printf (format,-5.5,round(-5.5),floor(-5.5),ceil(-5.5),trunc(-5.5));
  return 0;
}
           

7、絕對值、最小、最大 Absolute、Minimum, maximum

7.1、fabs(x) x的絕對值函數

/* fabs example */
#include <stdio.h>      /* printf */
#include <math.h>       /* fabs */

int main ()
{
  printf ("The absolute value of 3.1416 is %f\n", fabs (3.1416) );
  printf ("The absolute value of -10.6 is %f\n", fabs (-10.6) );
  return 0;
}
           

7.2、abs(x) x的絕對值

// cmath's abs example
#include <iostream>     // std::cout
#include <cmath>        // std::abs

int main ()
{
  std::cout << "abs (3.1416) = " << std::abs (3.1416) << '\n';
  std::cout << "abs (-10.6)  = " << std::abs (-10.6) << '\n';
  return 0;
}
           

7.3、fmax(x, y) 兩個參數中的最大值 (The maximum numeric value of its arguments. Values among which the function selects a maximum )

/* fmax example */
#include <stdio.h>      /* printf */
#include <math.h>       /* fmax */

int main ()
{
  printf ("fmax (100.0, 1.0) = %f\n", fmax(100.0,1.0));
  printf ("fmax (-100.0, 1.0) = %f\n", fmax(-100.0,1.0));
  printf ("fmax (-100.0, -1.0) = %f\n", fmax(-100.0,-1.0));
  return 0;
}
           

7.4、fmin(x, y) 兩個參數中的最小值

/* fmin example */
#include <stdio.h>      /* printf */
#include <math.h>       /* fmin */

int main ()
{
  printf ("fmin (100.0, 1.0) = %f\n", fmin(100.0,1.0));
  printf ("fmin (-100.0, 1.0) = %f\n", fmin(-100.0,1.0));
  printf ("fmin (-100.0, -1.0) = %f\n", fmin(-100.0,-1.0));
  return 0;
}
           
上一篇: math.h