Thursday, March 01, 2007
C언어/수학] 지수 함수 exp() 사용, 로그(Log)의 역함수; Exponential Function
exp() 함수는, 자연로그의 밑인 e(=2.71828182845904523536)의 x 제곱을 구합니다.
예를 들어 exp(8.0) 의 경우, e의 8승을 2980.957987 이렇게 반환합니다.
로그의 역함수이기에,
log(exp(x))
이렇게 하면, 원래의 x 값이 나옵니다. 따라서 로그 함수로 축소시킨 숫자의 규모를, 다시 원래로 확장시킬 수 있습니다.
소스 파일명: example.cpp
컴파일 및 실행 결과 화면:
▶▶ C언어] log2 (밑이 2인 로그 함수), log (ln), log10(상용 로그) 구하기
예를 들어 exp(8.0) 의 경우, e의 8승을 2980.957987 이렇게 반환합니다.
로그의 역함수이기에,
log(exp(x))
이렇게 하면, 원래의 x 값이 나옵니다. 따라서 로그 함수로 축소시킨 숫자의 규모를, 다시 원래로 확장시킬 수 있습니다.
지수 함수 사용 예제
소스 파일명: example.cpp
#include <stdio.h>
#include <math.h>
int main(void) {
for (double x = 1.0; x <= 20.0; x++) {
printf("exp(%.1f) = %f : log(exp(%.1f)) = %.1f\n", x, exp(x), log(exp(x)));
}
return 0;
}
#include <math.h>
int main(void) {
for (double x = 1.0; x <= 20.0; x++) {
printf("exp(%.1f) = %f : log(exp(%.1f)) = %.1f\n", x, exp(x), log(exp(x)));
}
return 0;
}
컴파일 및 실행 결과 화면:
D:\Z>cl example.cpp && example.exe
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
example.cpp
Microsoft (R) Incremental Linker Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
/out:example.exe
example.obj
exp(1.0) = 2.718282 : log(exp(1.0)) = 1.0
exp(2.0) = 7.389056 : log(exp(2.0)) = 2.0
exp(3.0) = 20.085537 : log(exp(3.0)) = 3.0
exp(4.0) = 54.598150 : log(exp(4.0)) = 4.0
exp(5.0) = 148.413159 : log(exp(5.0)) = 5.0
exp(6.0) = 403.428793 : log(exp(6.0)) = 6.0
exp(7.0) = 1096.633158 : log(exp(7.0)) = 7.0
exp(8.0) = 2980.957987 : log(exp(8.0)) = 8.0
exp(9.0) = 8103.083928 : log(exp(9.0)) = 9.0
exp(10.0) = 22026.465795 : log(exp(10.0)) = 10.0
exp(11.0) = 59874.141715 : log(exp(11.0)) = 11.0
exp(12.0) = 162754.791419 : log(exp(12.0)) = 12.0
exp(13.0) = 442413.392009 : log(exp(13.0)) = 13.0
exp(14.0) = 1202604.284165 : log(exp(14.0)) = 14.0
exp(15.0) = 3269017.372472 : log(exp(15.0)) = 15.0
exp(16.0) = 8886110.520508 : log(exp(16.0)) = 16.0
exp(17.0) = 24154952.753575 : log(exp(17.0)) = 17.0
exp(18.0) = 65659969.137331 : log(exp(18.0)) = 18.0
exp(19.0) = 178482300.963187 : log(exp(19.0)) = 19.0
exp(20.0) = 485165195.409791 : log(exp(20.0)) = 20.0
D:\Z>
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
example.cpp
Microsoft (R) Incremental Linker Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
/out:example.exe
example.obj
exp(1.0) = 2.718282 : log(exp(1.0)) = 1.0
exp(2.0) = 7.389056 : log(exp(2.0)) = 2.0
exp(3.0) = 20.085537 : log(exp(3.0)) = 3.0
exp(4.0) = 54.598150 : log(exp(4.0)) = 4.0
exp(5.0) = 148.413159 : log(exp(5.0)) = 5.0
exp(6.0) = 403.428793 : log(exp(6.0)) = 6.0
exp(7.0) = 1096.633158 : log(exp(7.0)) = 7.0
exp(8.0) = 2980.957987 : log(exp(8.0)) = 8.0
exp(9.0) = 8103.083928 : log(exp(9.0)) = 9.0
exp(10.0) = 22026.465795 : log(exp(10.0)) = 10.0
exp(11.0) = 59874.141715 : log(exp(11.0)) = 11.0
exp(12.0) = 162754.791419 : log(exp(12.0)) = 12.0
exp(13.0) = 442413.392009 : log(exp(13.0)) = 13.0
exp(14.0) = 1202604.284165 : log(exp(14.0)) = 14.0
exp(15.0) = 3269017.372472 : log(exp(15.0)) = 15.0
exp(16.0) = 8886110.520508 : log(exp(16.0)) = 16.0
exp(17.0) = 24154952.753575 : log(exp(17.0)) = 17.0
exp(18.0) = 65659969.137331 : log(exp(18.0)) = 18.0
exp(19.0) = 178482300.963187 : log(exp(19.0)) = 19.0
exp(20.0) = 485165195.409791 : log(exp(20.0)) = 20.0
D:\Z>
▶▶ C언어] log2 (밑이 2인 로그 함수), log (ln), log10(상용 로그) 구하기
tag: cpp
C언어 | C/C++ (Visual C++) 프로그래밍
<< Home