삼각함수
삼각함수 (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는 복소수일 수 있는데, 그러면 실수부와 허수부가 각각 변환됩니다. 출력 rad는 deg와 같은 크기·모양이고, 변환 상수 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는 복소수일 수 있는데, 그러면 실수부와 허수부가 각각 변환됩니다. 출력 deg는 rad와 같은 크기·모양이고, 변환 상수 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)¶ —y와x의 대응 요소에 대해 atan(y/x)을 계산합니다.
y와 x는 크기와 방향이 일치해야 해요. y와 x 요소의 부호로 각 결과 값의 사분면을 결정합니다. 이 함수는 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)¶ —y와x의 대응 요소에 대해 도 단위의 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 값에서 sin과 sinpi 비교
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 값에서 cos와 cospi 비교
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 매뉴얼의 삼각함수 장을 참고하세요.