역삼각함수란 삼각함수의 역함수를 의미하고,
역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다.
수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데,
C 언어나 C++ 언어에서는 asin 함수로 구현되어 있다.
아래의 소스는 Visual C++ 또는 g++ 로 컴파일되는 소스이다. 실행 결과는 같다.
/*
* Filename: testArcSine.cpp
*
* Compile: cl /EHsc testArcSine.cpp
* Execute: testArcSine
*
* Or
*
* Cpmpile: g++ -o testArcSine testArcSine.cpp
* Execute: ./testArcSine
*
* Date: 2013. 1. 1.
* Copyright (c) pkim _AT_ scripts.pe.kr
*/
#include <iostream>
#include <cmath>
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() {
std::cout.precision(10);
double x = -0.9;
double y = asin(x);
std::cout << "y = asin(" << x << ") = " << y << std::endl;
std::cout << "sin(y) = sin(" << y << ") = " << sin(y) << std::endl;
std::cout << std::endl;
x = 1.1;
double u = acosh(x);
std::cout << "u = acosh(" << x << ") = " << u << std::endl;
double v = asinh(x);
std::cout << "v = asinh(" << x << ") = " << v << std::endl;
std::cout << "cosh(u) = cosh(" << u << ") = " << cosh(u) << std::endl;
std::cout << "sinh(v) = sinh(" << v << ") = " << sinh(v) << std::endl;
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++' 카테고리의 다른 글
이진 파일을 읽어서 16진수로 보여주는 HexView 소스 with C++ (0) | 2013.08.05 |
---|---|
C++ 언어로 평방근, 입방근, n제곱근 구하는 함수를 구현하고 테스트하기 (0) | 2013.01.11 |
윈도우에 MinGW, gmp, mpfr 설치하고 테스트하기 (0) | 2012.12.31 |
C++ 언어로 GMP 라이브러리를 이용하여 30! 까지 정확하게 계산하기 (7) | 2010.08.13 |
스트링 리스트에서 스트링 찾기(find) for .NET with Visual C++/CLI (0) | 2009.04.30 |