삼각함수

삼각함수 (Trigonometry)

Octave는 라디안으로 각도를 지정하는 삼각함수들을 제공해요. 도(degree)에서 라디안으로 변환하려면 pi/180을 곱하거나 deg2rad 함수를 쓰면 됩니다. 예를 들어 sin (30 * pi/180)은 30도의 사인값을 돌려줘요. 대안으로 Octave는 도 단위로 직접 동작하는 삼각함수들도 제공하는데, 이 함수들은 기본 삼각함수의 이름에 d 접미사를 붙인 이름을 가져요. 예를 들어 sin은 라디안 각도를, sind는 도 각도를 기대합니다.

출처: Trigonometry

본문

Octave는 C 라이브러리 삼각함수를 사용해요. 이 함수들은 ISO/IEC 9899 표준으로 정의될 것으로 기대됩니다. 이 표준은 http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf 에서 볼 수 있는데, F.9.1절이 삼각함수를 다룹니다. 대부분의 함수 동작은 비교적 단순해요. 하지만 표준 동작과 다른 예외들도 있습니다. 많은 예외가 -0에 대한 동작과 관련돼 있어요. 가장 복잡한 경우는 atan2입니다. Octave는 표준에 주어진 동작을 정확히 구현하며, atan2(+- 0, 0)+- pi를 돌려줍니다.

MATLAB은 -0을 구분하지 않는 다른 정의를 쓴다는 점을 알아 두세요.

  • rad = deg2rad (deg) ¶ — 도를 라디안으로 변환합니다.

입력 deg는 double 또는 single 부동소수점 값의 스칼라, 벡터, N차원 배열이어야 해요. deg는 복소수일 수 있는데, 그러면 실수부와 허수부가 각각 변환됩니다. 출력 raddeg와 같은 크기·모양이고, 변환 상수 pi/180으로 도를 라디안으로 바꾼 값이에요.

예:

deg2rad ([0, 90, 180, 270, 360])
  ⇒   0.00000   1.57080   3.14159   4.71239   6.28319

참고: rad2deg.

  • deg = rad2deg (rad) ¶ — 라디안을 도로 변환합니다.

입력 rad는 double 또는 single 부동소수점 값의 스칼라, 벡터, N차원 배열이어야 해요. rad는 복소수일 수 있는데, 그러면 실수부와 허수부가 각각 변환됩니다. 출력 degrad와 같은 크기·모양이고, 변환 상수 180/pi으로 라디안을 도로 바꾼 값이에요.

예:

rad2deg ([0, pi/2, pi, 3/2*pi, 2*pi])
  ⇒   0    90   180   270   360

참고: deg2rad.

  • y = sin (x) ¶ — x의 각 요소에 대해 라디안 단위의 사인을 계산합니다.

참고: asin, sind, sinh.

  • y = cos (x) ¶ — x의 각 요소에 대해 라디안 단위의 코사인을 계산합니다.

참고: acos, cosd, cosh.

  • y = tan (z) ¶ — x의 각 요소에 대해 라디안 단위의 탄젠트를 계산합니다.

참고: atan, tand, tanh.

  • y = sec (x) ¶ — x의 각 요소에 대해 라디안 단위의 시컨트를 계산합니다.

참고: asec, secd, sech.

  • y = csc (x) ¶ — x의 각 요소에 대해 라디안 단위의 코시컨트를 계산합니다.

참고: acsc, cscd, csch.

  • y = cot (x) ¶ — x의 각 요소에 대해 라디안 단위의 코탄젠트를 계산합니다.

참고: acot, cotd, coth.

  • y = asin (x) ¶ — x의 각 요소에 대해 라디안 단위의 역사인을 계산합니다.

참고: sin, asind.

  • y = acos (x) ¶ — x의 각 요소에 대해 라디안 단위의 역코사인을 계산합니다.

참고: cos, acosd.

  • y = atan (x) ¶ — x의 각 요소에 대해 라디안 단위의 역탄젠트를 계산합니다.

참고: tan, atand.

  • y = asec (x) ¶ — x의 각 요소에 대해 라디안 단위의 역시컨트를 계산합니다.

참고: sec, asecd.

  • y = acsc (x) ¶ — x의 각 요소에 대해 라디안 단위의 역코시컨트를 계산합니다.

참고: csc, acscd.

  • y = acot (x) ¶ — x의 각 요소에 대해 라디안 단위의 역코탄젠트를 계산합니다.

참고: cot, acotd.

  • y = sinh (x) ¶ — x의 각 요소에 대해 쌍곡 사인을 계산합니다.

참고: asinh, cosh, tanh.

  • y = cosh (x) ¶ — x의 각 요소에 대해 쌍곡 코사인을 계산합니다.

참고: acosh, sinh, tanh.

  • y = tanh (x) ¶ — x의 각 요소에 대해 쌍곡 탄젠트를 계산합니다.

참고: atanh, sinh, cosh.

  • y = sech (x) ¶ — x의 각 요소에 대해 쌍곡 시컨트를 계산합니다.

참고: asech.

  • y = csch (x) ¶ — x의 각 요소에 대해 쌍곡 코시컨트를 계산합니다.

참고: acsch.

  • y = coth (x) ¶ — x의 각 요소에 대해 쌍곡 코탄젠트를 계산합니다.

참고: acoth.

  • y = asinh (x) ¶ — x의 각 요소에 대해 역쌍곡 사인을 계산합니다.

참고: sinh.

  • y = acosh (x) ¶ — x의 각 요소에 대해 역쌍곡 코사인을 계산합니다.

참고: cosh.

  • y = atanh (x) ¶ — x의 각 요소에 대해 역쌍곡 탄젠트를 계산합니다.

참고: tanh.

  • y = asech (x) ¶ — x의 각 요소에 대해 역쌍곡 시컨트를 계산합니다.

참고: sech.

  • y = acsch (x) ¶ — x의 각 요소에 대해 역쌍곡 코시컨트를 계산합니다.

참고: csch.

  • y = acoth (x) ¶ — x의 각 요소에 대해 역쌍곡 코탄젠트를 계산합니다.

참고: coth.

  • angle = atan2 (y, x) ¶ — yx의 대응 요소에 대해 atan(y / x)을 계산합니다.

yx는 크기와 방향이 일치해야 해요. yx 요소의 부호로 각 결과 값의 사분면을 결정합니다. 이 함수는 arg (complex (x, y))와 동일해요.

참고: tan, tand, tanh, atanh.

Octave는 각도를 도 단위로 지정하는 다음 삼각함수들도 제공해요. 이 함수들은 라디안을 쓸 때 생기는 작은 반올림 오차 대신, 적절한 구간에서 진짜 0을 만들어 냅니다. 예:

cosd (90)
     ⇒  0
cos (pi/2)
     ⇒  6.1230e-17
  • y = sind (x) ¶ — x의 각 요소에 대해 도 단위의 사인을 계산합니다.

x 값과 180도의 배수(x/180이 정수)인 경우 sin보다 정확해요. 그런 곳에서 sind는 eps 정도의 작은 값 대신 0을 돌려줍니다.

참고: asind, sin.

  • y = cosd (x) ¶ — x의 각 요소에 대해 도 단위의 코사인을 계산합니다.

x 값과 90도의 배수(x = 90 + 180*n, n은 정수)인 경우 cos보다 정확해요. 그런 곳에서 cosd는 eps 정도의 작은 값 대신 0을 돌려줍니다.

참고: acosd, cos.

  • y = tand (x) ¶ — x의 각 요소에 대해 도 단위의 탄젠트를 계산합니다.

x/180이 정수인 요소에서는 0을, (x-90)/180이 정수인 요소에서는 Inf를 돌려줘요.

참고: atand, tan.

  • y = secd (x) ¶ — x의 각 요소에 대해 도 단위의 시컨트를 계산합니다.

참고: asecd, sec.

  • y = cscd (x) ¶ — x의 각 요소에 대해 도 단위의 코시컨트를 계산합니다.

참고: acscd, csc.

  • y = cotd (x) ¶ — x의 각 요소에 대해 도 단위의 코탄젠트를 계산합니다.

참고: acotd, cot.

  • y = asind (x) ¶ — x의 각 요소에 대해 도 단위의 역사인을 계산합니다.

참고: sind, asin.

  • y = acosd (x) ¶ — x의 각 요소에 대해 도 단위의 역코사인을 계산합니다.

참고: cosd, acos.

  • y = atand (x) ¶ — x의 각 요소에 대해 도 단위의 역탄젠트를 계산합니다.

참고: tand, atan.

  • d = atan2d (y, x) ¶ — yx의 대응 요소에 대해 도 단위의 atan(y / x)을 계산합니다.

참고: tand, atan2.

  • y = asecd (x) ¶ — x의 각 요소에 대해 도 단위의 역시컨트를 계산합니다.

참고: secd, asec.

  • y = acscd (x) ¶ — x의 각 요소에 대해 도 단위의 역코시컨트를 계산합니다.

참고: cscd, acsc.

  • y = acotd (x) ¶ — x의 각 요소에 대해 도 단위의 역코탄젠트를 계산합니다.

참고: cotd, acot.

마지막으로, 특수한 인자를 정확도 높게 계산하는 삼각함수 두 개가 있어요.

  • y = sinpi (x) ¶ — x의 각 요소에 대해 사인(x * pi)을 정확하게 계산합니다.

일반 sin 함수는 IEEE 754 부동소수점 숫자를 사용하므로 올바른 값에 매우 가깝지만(몇 eps 이내) 정확하지는 않은 결과를 낼 수 있어요. sinpi 함수는 더 정확해서 x가 정수인 값에서는 정확히 0을, 반정수 값(예: …, -3/2, -1/2, 1/2, 3/2, …)에서는 +1/-1을 돌려줍니다.

예: 정수 x 값에서 sinsinpi 비교

sin ([0, 1, 2, 3] * pi)
⇒
     0   1.2246e-16  -2.4493e-16   3.6739e-16

sinpi ([0, 1, 2, 3])
⇒
       0   0   0   0

참고: cospi, sin.

  • y = cospi (x) ¶ — x의 각 요소에 대해 코사인(x * pi)을 정확하게 계산합니다.

일반 cos 함수는 IEEE 754 부동소수점 숫자를 사용하므로 올바른 값에 매우 가깝지만 정확하지는 않은 결과를 낼 수 있어요. cospi 함수는 더 정확해서 x가 반정수 값(예: …, -3/2, -1/2, 1/2, 3/2, …)에서는 정확히 0을, 정수 값에서는 +1/-1을 돌려줍니다.

예: 반정수 x 값에서 coscospi 비교

cos ([-3/2, -1/2, 1/2, 3/2] * pi)
⇒
     -1.8370e-16   6.1232e-17   6.1232e-17  -1.8370e-16

cospi ([-3/2, -1/2, 1/2, 3/2])
⇒
       0   0   0   0

참고: sinpi, cos.

더 알아보기

각도 변환과 더정밀한 삼각 계산이 필요하다면 deg2rad/rad2deg, sinpi/cospi를 함께 활용할 수 있어요. Octave 매뉴얼의 삼각함수 장을 참고하세요.