Cライブラリ関数 -log()
説明
Cライブラリ関数double log(double x)返すxの自然対数(底が e の対数)。
log()は C 標準ライブラリ<math.h>内の関数で、浮動小数点数の自然対数(底を e とする)を計算するために使われる。これは一般的な数学関数であり、科学計算、金融、工学などの分野で広く利用されている。
宣言
以下は log() 関数の宣言です。
#include <math.h> double log(double x); float logf(float x); long double logl(long double x);
パラメータ
x:入力される浮動小数点数。正の数(0より大きい)でなければなりません。
戻り値
- 返す
xの自然対数。もしxが負の数またはゼロの場合、数学ドメインエラーまたは範囲エラーが発生します。
エラー処理
- もし
xが負の数の場合、log()関数は NaN を返し、設定しますerrnoためにEDOM。 - もし
xがゼロの場合、log()関数は-HUGE_VAL(負の無限大)を返し、設定しますerrnoためにERANGE。
例
以下の例は log() 関数の使い方を示しています。
例
#include <stdio.h>
#include <math.h>
int main ()
{
double x, ret;
x = 2.7;
/* log(2.7) を計算 */
ret = log(x);
printf("log(%lf) = %lf", x, ret);
return(0);
}
#include <math.h>
int main ()
{
double x, ret;
x = 2.7;
/* log(2.7) を計算 */
ret = log(x);
printf("log(%lf) = %lf", x, ret);
return(0);
}
上記のプログラムをコンパイルして実行すると、次の結果が得られます:
log(2.700000) = 0.993252
複数の値の対数を扱う
以下の例は、複数の値の対数を処理する方法を示しています:
例
#include <stdio.h>
#include <math.h>
#include <errno.h>
int main() {
double values[] = {1.0, 2.718281828, 10.0, -1.0, 0.0};
int num_values = sizeof(values) / sizeof(values[0]);
for (int i = 0; i < num_values; i++) {
double x = values[i];
errno = 0; // errno をリセット
double result = log(x);
if (errno == EDOM) {
printf("Domain error: log(%f) is not defined\n", x);
} else if (errno == ERANGE) {
printf("Range error: log(%f) results in an overflow or underflow\n", x);
} else {
printf("log(%f) = %f\n", x, result);
}
}
return 0;
}
#include <math.h>
#include <errno.h>
int main() {
double values[] = {1.0, 2.718281828, 10.0, -1.0, 0.0};
int num_values = sizeof(values) / sizeof(values[0]);
for (int i = 0; i < num_values; i++) {
double x = values[i];
errno = 0; // errno をリセット
double result = log(x);
if (errno == EDOM) {
printf("Domain error: log(%f) is not defined\n", x);
} else if (errno == ERANGE) {
printf("Range error: log(%f) results in an overflow or underflow\n", x);
} else {
printf("log(%f) = %f\n", x, result);
}
}
return 0;
}
コード解析
- 複数の浮動小数点数を含む配列を定義します
values。 - を使用して
forループで各値を反復処理し、呼び出し、log(x)計算を行います。 - リセットして
errno0 にし、可能性のあるエラーを確認します。 - 各値の対数の計算結果、またはエラーメッセージを出力します。
上記のプログラムをコンパイルして実行すると、次の結果が得られます:
log(1.000000) = 0.000000 log(2.718282) = 1.000000 log(10.000000) = 2.302585 log(-1.000000) = nan log(0.000000) = -inf
使用シーン
log()この関数は多くのアプリケーションで幅広く使用されており、以下に限定されません:
- 指数関数的な増加または減衰の計算。
- 確率と統計における対数確率の処理。
- 対数方程式を含む数学的問題の解決。
- 金融における対数収益率の計算。
まとめ
log()この関数は浮動小数点数の自然対数を計算するために使われ、対数演算を処理するための重要なツールです。適切に使用することで、log()科学計算、金融、工学アプリケーションで対数演算を実装でき、起こり得るエラー状態を適切に処理できます。
C標準ライブラリ - <math.h>