역삼각함수란 삼각함수의 역함수를 의미하고,
역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다.
수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데,
C 언어나 C++ 언어에서는 asin 함수로 구현되어 있다.
아래의 소스는 Visual C++ 또는 gcc 로 컴파일되는 소스이다. 실행 결과는 같다.
* Filename: testArcSine.c
*
* Compile: cl testArcSine.c
* Execute: testArcSine
*
* Or
*
* Cpmpile: gcc -o testArcSine testArcSine.c
* Execute: ./testArcSine
*
* Date: 2013. 1. 1.
* Copyright (c) pkim _AT_ scripts.pe.kr
*/
#include <stdio.h>
#include <math.h>
double asinh(double x) {
double y = log(x + sqrt(x*x + 1));
return y;
}
double acosh(double x) {
double y = log(x + sqrt(x*x - 1));
return y;
}
int main() {
double u, v;
double x = -0.9;
double 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));
return 0;
}
/*
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
*/
'프로그래밍 > C' 카테고리의 다른 글
C 언어로 평방근, 입방근, n제곱근 구하는 함수를 구현하고 테스트하기 (0) | 2013.01.12 |
---|---|
C 언어와 GSL 라이브러리로 역삼각함수, 역쌍곡선함수 값을 구하는 예제 (0) | 2013.01.10 |
감마함수(gamma function)의 값을 (유효수자 15자리 까지 정밀하게) 계산하는 C 언어 소스 (0) | 2012.12.12 |
리눅스 환경에 MPFR 설치와 테스트 (0) | 2012.04.30 |
long long 타입의 정수 계산을 100경 까지 테스트하는 C 소스 (0) | 2012.04.28 |