2013/01 62

Python 언어로 평방근, 입방근, n제곱근 구하는 함수를 구현하고 테스트하기

음이 아닌 실수 A 의 평방근 sqrt(A) 를 구하는 Heron 의 방법: 반복함수 g(x) = (x + A/x) / 2 를 이용 실수 A 의 n제곱근 root(n, A) 를 구하는 Newton-Raphson 의 방법 반복함수 g(x) = ((n-1)*x + A/(x**(n - 1))) / n 를 이용 n = 2 인 경우에는 Newton-Raphson 의 방법이 Heron 의 방법과 동일하다. (참조. http://en.wikipedia.org/wiki/Newton's_method ) Python 언어에는 지수 연산자 ** 를 (밑수)**(지수) 의 형식으로 언어 자체에서 지원하고 있다. 하지만 차후 필요한 데가 있을 것 같아서 이와 유사한 n 제곱 함수와 n 제곱근 함수를 구현해 보았다. 지수가 정수..

C# 언어로 평방근, 입방근, n제곱근 구하는 함수를 구현하고 테스트하기

음이 아닌 실수 A 의 평방근 sqrt(A) 를 구하는 Heron 의 방법: 반복함수 g(x) = (x + A/x) / 2 를 이용 실수 A 의 n제곱근 root(n, A) 를 구하는 Newton-Raphson 의 방법 반복함수 g(x) = ((n-1)*x + A/(x**(n - 1))) / n 를 이용 n = 2 인 경우에는 Newton-Raphson 의 방법이 Heron 의 방법과 동일하다. (참조. http://en.wikipedia.org/wiki/Newton's_method ) C# 언어에는 System 모듈에 지수 계산 함수 Math.Pow(double, double) 가 이미 구현되어 있다. 하지만 차후 필요한 데가 있을 것 같아서 이와 유사한 n 제곱 함수와 n 제곱근 함수를 구현해 보았다..

프로그래밍/C# 2013.01.11

Java 언어로 평방근, 입방근, n제곱근 구하는 함수를 구현하고 테스트하기

음이 아닌 실수 A 의 평방근 sqrt(A) 를 구하는 Heron 의 방법: 반복함수 g(x) = (x + A/x) / 2 를 이용 실수 A 의 n제곱근 root(n, A) 를 구하는 Newton-Raphson 의 방법 반복함수 g(x) = ((n-1)*x + A/(x**(n - 1))) / n 를 이용 n = 2 인 경우에는 Newton-Raphson 의 방법이 Heron 의 방법과 동일하다. (참조. http://en.wikipedia.org/wiki/Newton's_method ) Java 언어에는 math.lang 패키지에 지수 계산 함수 Math.pow(double, double) 가 이미 구현되어 있다. 하지만 차후 필요한 데가 있을 것 같아서 이와 유사한 n 제곱 함수와 n 제곱근 함수를 구..

C++ 언어로 평방근, 입방근, n제곱근 구하는 함수를 구현하고 테스트하기

음이 아닌 실수 A 의 평방근 sqrt(A) 를 구하는 Heron 의 방법: 반복함수 g(x) = (x + A/x) / 2 를 이용 실수 A 의 n제곱근 root(n, A) 를 구하는 Newton-Raphson 의 방법 반복함수 g(x) = ((n-1)*x + A/(x**(n - 1))) / n 를 이용 n = 2 인 경우에는 Newton-Raphson 의 방법이 Heron 의 방법과 동일하다. (참조. http://en.wikipedia.org/wiki/Newton's_method ) C 언어와 C++ 언어에는 (math.h 를 인클루드하여 사용하는) 표준 수학 라이브러리에 지수 계산 함수 pow() 가 이미 구현되어 있다. 하지만 차후 필요한 데가 있을 것 같아서 이와 유사한 n 제곱 함수와 n 제곱..

프로그래밍/C++ 2013.01.11

C 언어와 GSL 라이브러리로 역삼각함수, 역쌍곡선함수 값을 구하는 예제

역삼각함수란 삼각함수의 역함수를 의미하고, 역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다. 수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데, C 언어나 C++ 언어에서는 asin 함수로 구현되어 있다. 를 인클루드하면 gsl_math.h 가 자체적으로 를 또 인클루드하므로, 를 별도로 인크루드할 필요가 없다. sinh 와 cosh 의 역함수로 그냥 C 언어의 에서 정의된 asinh 와 acosh 를 써도 되지만. 여기서는 에서 정의된 gsl_asinh 와 gsl_acosh 를 써 보았다. 참고로 gsl 이라 함은 GNU Scientific Library 의 줄임글이다. 아래의 소스는 Visual C++ 또는 gcc 로 컴파일되는 소스이다. 실행 결과는 같다. /* * Filename: test..

프로그래밍/C 2013.01.10

Python 언어로 scipy, numpy, mpmath 모듈을 이용하여 역삼각함수, 역쌍곡선함수 값을 구하는 예제

역삼각함수란 삼각함수의 역함수를 의미하고, 역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다. 수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데, Python 언어에서는 math.asin() 함수로 이미 구현되어 있다. 이를 사용하기 위해서는 import 구문 import math 가 있으면 된다. 그러나 scipy 나 numpy 모듈을 사용할 때는 얘기가 달라진다. sin 함수의 역함수가 scipy 모듈에서는 scipy.arcsin 으로, numpy 모듈에서는 numpy.arcsin 으로 구현되어 있다. (asin 이 아니라 arcsin 임에 주의하자.) 한편 mpmath 모듈에서는 mpmath.asin 으로 구현되어 았다. 이들 이용하기 위해서는 import 구문 import scipy 또는 i..

Maxima 언어로 역삼각함수, 역쌍곡선함수 값을 구하는 예제

역삼각함수란 삼각함수의 역함수를 의미하고, 역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다. 수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데, Maxima 언어에서는 asin 함수로 구현되어 있다. 또한 Maxima 언어에는 쌍곡선함수 sinh 와 cosh 의 역함수가 각각 asinh 와 acosh 라는 이름으로 구현되어 있다. 첨고로 Maxima 의 Input 에서 ; 로 끝나는 명령은 명령의 수행 결과가 Output 으로 출력되고, $ 로 끝나는 줄은 Output 으로의 출력을 보류한다. 이 때는 disp() 나 printf() 등에 의한 명시적인 출력만 출력된다. 아래는 wxMaxima 를 이용하여 역삼각함수와 역쌍곡함수의 값을 계산하고 검증한 것이다. Maxima 에서 다음 몇 줄만 입력..

Mathematica 언어로 역삼각함수, 역쌍곡선함수 값을 구하는 예제

역삼각함수란 삼각함수의 역함수를 의미하고, 역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다. 수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데, Mathematica 언어에서는 ArcSin 함수로 구현되어 있다. 또한 Mathematica 언어에는 쌍곡선함수 sinh 와 cosh 의 역함수로 각각 ArcSinh 와 ArcCosh 가 구현되어 있다. Mathematica Notebook 에서 다음 몇 줄만 입력하여 각 cell 마다 Shift + Enter 키를 눌러 실행하면 된다. SetPrecision 은 계산 과정과 출력에서 정확도의 유효수자 개수릉 지정하기 위해 사용되었다. x = -0.9 y = SetPrecision[ArcSin[x], 10] Sin[y] x = 1.1 u = SetPre..

Gnuplot 언어로 역삼각함수, 역쌍곡선함수 값을 구하는 예제

역삼각함수란 삼각함수의 역함수를 의미하고, 역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다. 수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데, Octave 언어에서는 asin 함수로 구현되어 있다. 또한 Gnuplot 언어에는 쌍곡선함수 sinh 와 cosh 의 역함수로 각각 asinh 와 acosh 가 구현되어 있지만, 비교를 위해 arcsinh 와 arccosh 라는 이름의 함수로 아래의 소스에 구현해 보았다. 소스 파일을 저장할 때 확장명을 plt 로 해도 되고 dem 으로 해도 된다. Gnuplot 에서 저정된 소스 파일을 load 하면 실행결과가 출력된다. # Filename: estArcSine.plt # # Execute: load '저장경로/testArcSine.plt' # # D..