연재 완료/프로그래밍용 수학 공부

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

라이피 (Lypi) 2018. 11. 24. 15:03
반응형



각도의 표현 : 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++에서 <cmath> 헤더를 포함하고, 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)를 사용한다.


반응형