수학기초

삼각함수 (1) - 정의와 기하학적 의미

건실한청년 2019. 11. 21. 09:29

각도의 표현 : degree vs radian

# 주로 n˚(n도)로 표시하는 degree각은 원의 각도를 360도로 나누는 60분법에서 쓰이는 각도이다.

# 주로 nπ로 표시하는 라디안각은 각을 호의 길이와 반지름의 비율로 나타내는 호도법에서 쓰이는 각도이다.

 

 

# 특수각의 변환

degree

30˚

45˚

60˚

90˚

120˚

135˚

150˚

180˚

270˚

360˚

radian

0

1/6*π

1/4*π

1/3

1/2

2/3π

4/3*π

5/6*π

π

3/2*π

 

# degree를 radian으로 변환 : n˚ * π/180˚ = nπ

# radian을 degree로 변환 : nπ * 180˚/π = n˚

 

# 그런데 프로그래밍시에는 결국 파이값을 근사치의 상수로 정의해서 쓰기 때문에

# degree를 radian으로 변환 : n˚ * DtR = n (DtR = 0.017453293f)

# radian을 degree로 변환 : n * RtD = n˚ (RtD = 57.29577951f)

 

 

삼각함수 (직각삼각형을 이용한 정의)

a = 높이 [기준각에 대한 대변(對邊)], b = 밑변 [기준각과 직각 사이의 변], h = 빗변 [직각에 대한 대변(對邊)]

주의! 기준각이 A일때는 변a가 높이, 변b가 밑변이 되지만, 기준각이 B라면 변b가 높이, 변a가 밑변이 된다.

그러므로 sinA = a/h, cosA = b/h, tanA = a/b 는 기준각이 A일때 이야기다.

 

기본 삼각함수 : [사인(sine)] sin = 높이/빗변, [코사인(cosine)] cos = 밑변/빗변, [탄젠트(tangent)] tan = 높이/밑변

삼각함수의 역 : [코시컨트(cosecant)] csc = 1/sin, [시컨트(secant)] sec = 1/cos, [코탄젠트(cotangent)] cot = 1/tan

# 기본 삼각함수는 C++에서 헤더를 포함하고, sin(x), cos(x), tan(x) 함수로 사용할 수 있다. 이때 x값은 라디안 값이다.

# 삼각비의 역에 대해서는 C++에서 따로 함수로 제공하지 않는다.

 

 

삼각함수 (단위원을 이용한 정의)

중요! 아래 두개가 가장 중요함. (|AB|는 선분AB를 의미)
sinA = |BC|/|AB| = |BC|/1 ∴ |BC| = sinA

cosA = |AC|/|AB| = |AC|/1 ∴ |AC| = cosA

 

삼각형BAC와 삼각형DAE는 한 각을 공유하는 두개의 직각삼각형이므로 두 각이 같은 AA닮음.

∴ 두삼각형의 변끼리의 비가 서로 같다.

 

|AC| : |BC| = |AE| : |DE| ⇒ cosA : sinA = 1 : |DE| ⇒ sinA = |DE|*cosA ⇒ |DE| = sinA/cosA = tanA ∴ |DE| = tanA

|AB| : |AC| = |AD| : |AE| ⇒ 1 : cosA = |AD| : 1 ⇒ |AD|*cosA = 1 ⇒ |AD| = 1/cosA = secA ∴ |AD| = secA

 

 

 

삼각함수의 기하학적 의미

 

그림 1

그림 2



 

중요! 이 이미지는 각AEC가 직각이어야 성립한다.

(cosα와 sinα에 대한 증명은 생략한다.)

1_ 각β는 90º-각α이다. 그러므로 그림 1의 모든 삼각형이 닮음임을 확인할 수 있다.

2_ 새로 구해야하는 4각(tanα, cscα, secα, cotα) 중

tanα와 cscα는 파란삼각형(CFE)과 초록삼각형(AEC)이 닮음임을 이용하고,

cotα와 secα는 파란삼각형(CFE)과 노란삼각형(CEB)이 닮음임을 이용한다.

 

|AE| : |CE| = |CF| : |EF| ⇒ |AE| : 1 = cosα : sinα ⇒ |AE| = cosα / sinα = tanα ∴ |AE| = tanα

|AC| : |CE| = |CE| : |EF| ⇒ |AC| : 1 = 1 : sinα ⇒ |AC| = 1 / sinα = cscα ∴ |AC| = cscα

|BE| : |CE| = |CF| : |EF| ⇒ |BE| : 1 = sinα : cosα ⇒ |BE| = sinα / cosα = cotα ∴ |BE| = cotα

|CB| : |CE| = |CE| : |CF| ⇒ |CB| : 1 = 1 : cosα ⇒ |CB| = 1 / sinα = secα ∴ |CB| = secα

 

 

 

 

각에 따른 삼각함수의 부호

2사분면

sin : +

cos : -

tan : -

1사분면

sin : +

cos : +

tan : +

3사분면

sin : -

cos : -

tan : +

4사분면

sin : -

cos : +

tan : -

 

 

 

 

 

 

 

 

 

특수각의 삼각함수 값

A(degree)

0

30

45

60

90

120(180-60)

135(180-45)

150(180-30)

180

270

360

sinA

0

0.5

0.7071

0.8660

1

0.8660

0.7071

0.5

0

-1

0

cosA

1

0.8660

0.7071

0.5

0

-0.5

-0.7071

-0.8660

-1

0

1

tanA

0

0.5774

1

1.7321

X

-1.7321

-1

-0.5774

0

X

0

# 프로그래밍을 할 때는 결국 근사값을 넘겨줘야 하므로 자주 쓰는 값을 참조테이블이나 매크로로 지정해서 저장해두는 것이 빠르게 처리된다.

 

삼각함수의 역함수

# 각을 가지고 값을 구하는 것이 아니라 값을 가지고 각을 구해야할 때는 삼각함수의 역함수를 사용해야 한다.

# 삼각함수는 단사함수가 아니기 때문에 역함수에서는 정의역에 제한을 주어야 한다.

# C++함수는 실수값을 입력하면 라디안 각도를 반환한다.

삼각함수

역함수 명칭

정의역

C++함수

sin

arcsin

-1 ~ +1

asin(x)

cos

arccos

-1 ~ +1

acos(x)

tan

arctan

모든 실수

atan(x), atan2(x,y)

# atan(x) 함수는 어느 사분면의 각도인지 정확히 판단할 수 없으므로 주로 atan2(x,y)를 사용한다.



출처: https://lypicfa.tistory.com/314?category=805276 [Lypi의 공부하는 블로그 시즌2 - 사연잡지]