Friday, September 19, 2014

[C언어] C언어에서 log exp ln 관계

요번에도 이전에 한번 올렸던 자료를 재탕해보겠다!! 
바로 log, exp ln 의 관게에 대해서 정리했던 것인데 재밌음.

-----------------------------------------------------

retinex 알고리즘을 공부하면서 
지금 c언어로 거의 다 짜고 보니 갑자기 떠오르는게...
'자연로그' '상용로그' !!!!!
상용로그는 우리가 흔히하는 밑이 10인 로그를 상용로그라고 하고
자연로그는 밑이 e인 로그를 자연로그라고한다.
따라서 알고리즘에서 log로 표현했던 차원을 
다시 exp을 이용하여 차원 변경을 하는데.....

C언어로 짜면서 나는 그냥 log() exp() 이런식으로 썻다는것!!!
아직 감이 안오는가?~
이게 무슨소리냐 하면은... 
밑이 e인 경우 우리는 ln이라고 표현하는데 
밑이 e인 로그2의 경우 값은 ln2 = 0.69314718056 이다.
따라서 exp(0.69314718056) = 2  된다.

그런데 밑이 10인 로그2의 경우에는 log2 = 0.30102999566 이고
exp(0.30102999566) = 1.35124987256 이므로 복원이 안된다. ㅠ

순간 많이 당황했다. 
그러나 인터넷으로 검색해본 뒤에야 안심할 수 있었는데.....

C언어에서 표현은 
지수함수 e^x 는 exp(x) 로 표현하고 
ln x는 log(x) 로 표현이다!!! ㅋㅋㅋㅋㅋ 
log x는 log10(x) 로 표현한다.

기억하길 바람!!! ㅋㅋ :)

No comments :

Post a Comment