Octave 언어로 역삼각함수, 역쌍곡선함수 값을 구하는 예제
역삼각함수란 삼각함수의 역함수를 의미하고,
역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다.
수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데, Octave 언어에서는 asin 함수로 구현되어 있다.
또한 Octave 언어에는 쌍곡선함수 sinh 와 cosh 의 역함수로 각각 asinh 와 acosh 가 구현되어 있지만, 비교를 위해 arcsinh 와 arccosh 라는 이름의 함수로 아래의 소스에 구현해 보았다.
% Filename: testArcSine.m
%
% Execute: octave -qf testArcSine.m
%
% Date: 2013. 1. 8.
% Copyright (c) pkim _AT_ scripts.pe.kr
%}
function y = arcsinh(x)
y = log(x + sqrt(x*x + 1));
endfunction
function y = arccosh(x)
y = log(x + sqrt(x*x - 1));
endfunction
x = -0.9;
y = asin(x);
printf("y = asin(%g) = %.9f\n", x, y);
printf("sin(y) = sin(%.9f) = %g\n", y, sin(y));
printf("\n");
x = 1.1;
u = acosh(x);
printf("u = acosh(%g) = %.10f\n", x, u);
v = asinh(x);
printf("v = asinh(%g) = %.10f\n", x, v);
printf("cosh(u) = cosh(%.10f) = %g\n", u, cosh(u));
printf("sinh(v) = sinh(%.10f) = %g\n", v, sinh(v));
printf("\n");
printf("arccosh(%g) = %.10f\n", x, arccosh(x));
printf("arcsinh(%g) = %.10f\n", x, arcsinh(x));
#{
Output:
y = asin(-0.9) = -1.119769515
sin(y) = sin(-1.119769515) = -0.9
u = acosh(1.1) = 0.4435682544
v = asinh(1.1) = 0.9503469298
cosh(u) = cosh(0.4435682544) = 1.1
sinh(v) = sinh(0.9503469298) = 1.1
arccosh(1.1) = 0.4435682544
arcsinh(1.1) = 0.9503469298
#}