Coding Log

005. mathematics

2016.10.10 22:57 - NamhoonKim NE_Leader

math 모듈

C언어 표준에 의해 정의된 수학 함수에 대하여 접근할 수 있게 해준다
복잡한 숫자에 대한 지원 도한 cmath와 동일한 이름으로 제공된다

상수

  • math.pi : 원주율
  • math.e : 자연상수

소스코드

import math
math.pi
math.e

실행결과

3.141592653589793
2.718281828459045

수치연산

  • math.ceil(x) : x 보다 큰 정수 중 가장 작은 정수 N을 반환한다 (올림연산)
  • math.copysign(x,y) : y의 '부호'만 복사해서 x에 대입한다
  • math.fabs(x) : x의 절대값을 반환한다
  • math.factorial(x) : x의 계승값을 반환한다
  • math.floor(x) : x 보다 작은 정수 중 가장 큰 정수 N을 반환한다(내림연산)
  • math.fmod(x,y) : c의 fmod() 호출, %연산과 동일하다
    • 정수 연산에서는 %, 실수연산에는 fmod를 권장한다
    • 피제수와 몫의 차이, 부동소수점 연산의 정확도 차이 때문이다
  • math.frexp(x) : x == m * (2 ** e)의 값을 튜플 (m, e)로 되돌려준다
    • 가수 mantissa는 실수형, 지수 exponent는 정수형
    • 가수 m은 x가 0일 때 0, 나머지 경우엔 0.5 < m < 1.0
  • math.fsum(iterable) : 입력받은 값의 합계를 반환한다
    • 중간 부분의 합계 또한 계산하여 정밀도의 손실을 방지한다
  • math.isinf(x) : x가 무한대인지 검사한다(양의 무한대, 음의 무한대)
  • math.isnan(x) : x가 Not-A-Number인지 검사한다
  • math.ldexp(x, i) : x * (2 ** i)를 반환한다
    • math.frexp의 역이다
  • math.modf(x) : x의 정수부, 소수부를 반환한다
  • math.trunc(x) : x의 정수값만 반환한다

소스코드

import math
math.ceil(3.14)
math.copysign(3-0.0)
math.fabs(-1234)
math.factorial(5)
math.floor(3.14)
math.fmod(3.143)
3.14 % 3
math.fmod(-3.143)
-3.14 % 3
math.frexp(0)
math.frexp(3.782)
math.fsum([1, 2, 3, 4])
sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1])
math.fsum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1])
math.isinf(9)
math.isnan(9)
math.ldexp(0.00)
math.ldexp(0.94552)
math.modf(3.141592)
math.trunc(3.14)

실행결과

4                           # math.ceil(3.14) 
-3.0                        # math.copysign(3, -0.0) 
1234.0                      # math.fabs(-1234) 
120                         # math.factorial(5) 
3.0                         # math.floor(3.14) 
0.14000000000000012         # math.fmod(3.14, 3) 
0.14000000000000012         # 3.14 % 3 
-0.14000000000000012        # math.fmod(-3.14, 3) 
2.86                        # -3.14 % 3 
(0.00)                    # math.frexp(0) 
(0.94552)                 # math.frexp(3.782) 
10.0                        # math.fsum([1, 2, 3, 4]) 
0.9999999999999999          # sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1]) 
1.0                         # math.fsum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1]) 
False                       # math.isinf(9) 
False                       # math.isnan(9) 
0                           # math.ldexp(0.0, 0) 
3.782                       # math.ldexp(0.9455, 2) 
(0.141592000000000163.0)  # math.modf(3.141592) 
3                           # math.trunc(3.14) 

지수와 로그함수

  • math.exp(x) : x의 자연 지수(exponential)를 반환한다
  • math.expm1(x) : 0 근처의 x값에 대한 자연 지수에서 1을 뺀 값을 반환한다
  • math.log(x[, base]) : x의 자연로그를 반환한다
    • base값을 넣으면 base를 밑으로하는 x의 자연로그를 반환한다
  • math.log1p(x) : 0 근처의 x값에 대한 정확한 log(1+x)값을 반환한다
  • math.log10(x) : 10을 밑으로하는 x의 log값 즉, 상용로그값을 반환한다
  • math.pow(x, y) : x를 y번 제곱한 결과를 반환한다
  • math.sqrt(x) : x의 제곱근을 반환한다

소스코드

import math
math.exp(3)
math.expm1(3)
math.log(3)
math.log(33)
math.log1p(3)
math.log10(3)
math.pow(32)
math.sqrt(3)

실행결과

20.085536923187668  # math.exp(3)
19.085536923187668  # math.expm1(3)
1.0986122886681098  # math.log(3)
1.0                 # math.log(3, 3)
1.3862943611198906  # math.log1p(3)
0.47712125471966244 # math.log10(3)
9.0                 # math.pow(3, 2)
1.7320508075688772  # math.sqrt(3)

삼각함수

  • math.sin(x) : Sine함수의 x radian의 값을 반환한다
  • math.cos(x) : Cosine함수의 x radian의 값을 반환한다
  • math.tan(x) : Tangent함수의 x radian의 값을 반환한다
  • math.asin(x) : Arcsine 함수의 x radian의 값을 반환한다 즉, Sine함수의 역
  • math.acos(x) : Arccosine 함수의 x radian의 값을 반환한다 즉, Cosine함수의 역
  • math.atan(x) : Arctangent 함수의 x radian의 값을 반환한다 즉, Tangent함수의 역
  • math.atan2(y, x) : x축과 (x, y) 좌표간의 각도를 radian 단위로 반환한다
  • math.hypot(x, y) : 유클리드 노름에서 sqrt(x * x + y * y)의 값을 반환한다

소스코드

import math
math.sin(3)
math.cos(3)
math.tan(3)
math.asin(0)
math.acos(0)
math.atan(3)
math.atan2(23)
math.hypot(23)

실행결과

0.1411200080598672    # math.sin(3)
-0.9899924966004454   # math.cos(3)
-0.1425465430742778   # math.tan(3)
0.0                   # math.asin(0)
1.5707963267948966    # math.acos(0)
1.2490457723982544    # math.atan(3)
0.5880026035475675    # math.atan2(2, 3)
3.605551275463989     # math.hypot(2, 3)

각도변환

  • math.degrees(x) : radian 값 x를 각도로 변환한다
  • math.radians(x) : 각도 값 x를 radian으로 변환한다

소스코드

import math
math.degrees(3)
math.radians(171.88733853924697)

실행결과

171.88733853924697  # math.degrees(3)
3.0                 # math.radians(171.88733853924697)

쌍곡선함수

  • math.sinh(x) : x의 쌍곡선 Sine함수 값을 반환한다
  • math.cosh(x) : x의 쌍곡선 Cosine함수 값을 반환한다
  • math.tanh(x) : x의 쌍곡선 Tangent함수 값을 반환한다
  • math.asinh(x) : x의 쌍곡선 Sine역함수 값을 반환한다
  • math.acosh(x) : x의 쌍곡선 Cosine역함수 값을 반환한다
  • math.atanh(x) : x의 쌍곡선 Tangent역함수 값을 반환한다

참고 : 위키피디아 - 쌍곡선함수

소스코드

import math
math.sinh(3)
math.cosh(3)
math.tanh(3)
math.asinh(3)
math.acosh(3)
math.atanh(0.5)

실행결과

10.017874927409903  # math.sinh(3)
10.067661995777765  # math.cosh(3)
0.9950547536867305  # math.tanh(3)
1.8184464592320668  # math.asinh(3)
1.762747174039086   # math.acosh(3)
0.5493061443340549  # math.atanh(0.5)
DISQUS 로드 중…
댓글 로드 중…

트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다