본문 바로가기
Programming/Python

파이썬 math 패키지 (삼각함수, 상수, 로그 사용)

by whitele 2021. 11. 6.
반응형

 

 

math 패키지

고급 수학 함수나 과학 관련 함수가 필요할 때 사용하는 패키지입니다. 파이썬이 설치될 때 같이 설치되어 따로 설치할 필요 없이 바로 사용 가능합니다. pi나 e 같은 특수한 상수 값도 제공합니다.

 

math 패키지 카테고리

  • 삼각함수 : sin, cos, tan 등 기본 삼각함수
  • 역삼각함수 : asin, acos, atan 등 역삼각 함수
  • 하이퍼 삼각함수(쌍곡선) : sinh, cosh, tanh와 asinh 등 쌍곡선 형태의 삼각함수
  • 각도와 라디안 : 흔히 쓰는 각도(º)와 π 같은 라디안 값으로의 변환 각도가 친근할 수 있으나 삼각함수에서는 라디안 값을 사용하므로 라디안으로 변환이 필수적임
  • 로그 : 밑이 2와 10, e 등의 로그를 지원
  • 정수 변환 및 기타 : floor와 ceil 같은 정수 변환 제공
  • 상수 : 정밀한 계산된 pi나 e 같은 상수 값 제공

 

삼각함수의 사용

 삼각함수의 기본 이해

직각삼각형

 삼각함수의 계산은 직각삼각형을 기준으로 계산합니다. 직각삼각형에서 각도 $θ$ 값에 따라

$sinθ=\frac {c} {a}$

$cosθ=\frac {b} {a}$

$tanθ=\frac {c} {b}$

 보통의 실제 컴퓨터에서는 sin cos tan 계산기가 아닌 근사 다항식인 테일러급수를 통해 계산합니다. 

빗변의 길이가 5이고 $θ$ 각도가 30 º 일 때 c를 구하는 코드입니다. 계산식은 $c=\frac {a} {sin30 º}$이므로 다음과 같이 코드를 작성합니다.

import math

a=5
angle=math.radians(30)
print('c={:.2f}'.format(math.sin(angle)*a))

 

역삼각 함수

 삼각함수의 역함수입니다. 다음과 같은 식이 성립합니다.

$asin\frac {c} {a}=θ$

$acos\frac {b} {a}=θ$

$atan\frac {c} {b}=θ$

import math

a=5
c=2.5
angle=math.asin(c/a)
print('radians={:.6f}'.format(angle))
print('degrees={:.6f}'.format(math.degrees(angle)))

이전과 같은 직각삼각형을 이용한 역함수 구하는 코드입니다. 각도의 값을 구하기 위한 식입니다.

결과

 

 

로그함수

 math 패키지에서는 상용로그, 자연로그, 이진 로그를 제공하며 기타 밑이 다른 로그도 사용 가능합니다.

log10(x) 밑이 10인 상용로그

log2(x) 밑이 2인 이진 로그

log(x, base=e) 밑이 e 혹은 base 값인 로그, 기본값은 e인 자연로그

기본적으로 log(x)는 자연로그입니다.

import math

math.log10(5)#
math.log2(5)#
math.log(2)#

 

정수 변환

올림 혹은 내림하는 함수

ceil(a) 올림 함수

floor(a) 내림 함수

 

import math

print(math.ceil(-2.5))
print(math.ceil(3.1))
print(math.floor(-2.5))
print(math.ceil(3.1))

실행 결과

 

math 모듈에 있는 유용한 함수들

  • math.factorial(a) : 팩토리얼 함수 1부터 a까지의 모든 정수를 곱한 수 예를 들어 factorial(4)는 24
  • math. sqrt(a) : 제곱근 계산
  • math.pow(a) : a의 제곱 계산
  • math.trunc(f) : 소수점을 자르는 함수 0으로 가는 내림이라고 할 수 있으나 정확히는 잘라 정수로 변환하는 것이다. truncate의 약자입니다.
  • math.gcd(a, b) : 입력받은 두 수의 최대공약수를 구합니다. 
  • math.radians(t) : 각도를 라디안 값으로 변환합니다.
  • math.degrees(t) : 라디안 값을 각도로 변환합니다.
  • math.fabs(x) : x의 절댓값을 반환합니다. 내장된 abs와 달리 실수도 가능합니다.
  • math.exp(x) : $e^{x}$을 나타냅니다.

 

728x90
반응형

댓글