2012/12/12 4

감마함수(gamma function)의 값을 (유효수자 15자리 까지 정밀하게) 계산하는 C 언어 소스

Lanczos 알고리즘은 Stirling 공식에 의한 알고리즘 보다 정밀하며, 십진수로 유효숫자 약 15자리 까지는 정확하게 계산해 준다. 단지 exp 함수를 이용하는 부분에서는 exp, sin, pow 함수들의 구현에 따라 오차가 더 있을 수 있다. 소스를 보면 (조금이라도 유효수자의 개수가 더 많은 계산을 하기 위해) double 타입이 아니라 long double 타입으로 처리하고 있음을 알 수 있다. long double frac(long double x) long double gamma2(long double y) Unix/Linux의 C 컴파일러 gcc 를 사용하면 math 라이브러리에 tgamma 라는 함수가 이미 있다. 이 함수와 (자체 구현된) gamma2 함수에 의한 계산 결과를 비교하..

프로그래밍/C 2012.12.12

감마함수(gamma function)의 값을 (유효수자 15자리 까지 정밀하게) 계산하는 Python 언어 소스

Lanczos 알고리즘은 Stirlng 공식에 의한 알고리즘 보다 정밀하며, 십진수로 유효숫자 약 15자리 까지는 정확하게 계산해 준다. 단지 exp 함수를 이용하는 부분에서는 exp 함수의 구현에 따라 오차가 더 있을 수 있다. #!/usr/bin/env python # -*- encoding:utf-8 -*- # Filename: testLanczos-01.py # # An approximation for the gamma function by using the Lanczos algorithm # # Execute: python testLanczos-01.py # or # Execute: ./testLanczos-01.py # # See: http://en.wikipedia.org/wiki/Lancz..

Ubuntu에서 gnuplot 을 이용하여 그린 감마함수(gamma function)의 그래프

감마함수 Γ(x)의 정의 (i) \textrm{$\alpha > 0$일 때는} \Gamma (\alpha) = \int_0^\infty e^{-t} t^{\alpha - 1} \ dt (ii) \textrm{$\alpha 0$ 이 되는 최소의 양의 정수 $k$를 찾아서} \Gamma (\alpha) = \dfrac{\Gamma(\alpha + k)}{\alpha (\alpha + 1) \cdots (\alpha +k - 1)} [감마함수 Γ(x)의 특징] (1) \Gamma (\alpha + 1) = \alpha \cdot \Gamma(\alpha) (2) \textrm{특히 $n$이 양의 정수일 때는 \ } \Ga..

학습/수학 2012.12.12

Ubuntu 에 설치된 KmPlot 을 이용하여 그린 감마함수(gamma function)의 그래프

감마함수 Γ(x)의 정의 (i) \textrm{$\alpha > 0$일 때는} \Gamma (\alpha) = \int_0^\infty e^{-t} t^{\alpha - 1} \ dt (ii) \textrm{$\alpha 0$ 이 되는 최소의 양의 정수 $k$를 찾아서} \Gamma (\alpha) = \dfrac{\Gamma(\alpha + k)}{\alpha (\alpha + 1) \cdots (\alpha +k - 1)} [감마함수 Γ(x)의 특징] (1) \Gamma (\alpha + 1) = \alpha \cdot \Gamma(\alpha) (2) \textrm{특히 $n$이 양의 정수일 때는 \ } \Ga..

학습/수학 2012.12.12