C言語のexp関数の使い方についてわかりやすく解説

C言語において、指数関数を計算するためにはexp関数を使用します。
この記事では、C言語のexp関数の基本的な使い方から応用までをサンプルコードを交えて解説します。
exp関数の使い方
exp関数は、C言語の標準ライブラリに含まれる関数で、自然対数の底eを引数として受け取り、その値を返します。
引数と戻り値
exp関数は、以下の形式で使用します。
double exp(double x);
この関数は、引数xに自然対数の底eを累乗した値を返します。
つまり、exp(x)はe^xと同じです。
戻り値はdouble型であり、計算結果がオーバーフローする場合にはHUGE_VAL(正の無限大)が返されます。また、引数xがNaN(非数)である場合にはNaNが返されます。
exp関数の使用例
以下は、exp関数を使用したサンプルコードです。
#include <stdio.h>
#include <math.h>
int main() {
double result = exp(1.0);
printf("exp(1.0) = %f\n", result);
return 0;
}
上記のコードを実行すると、「exp(1.0) = 2.718282」という結果が表示されます。これは、自然対数の底e(約2.71828)を1.0乗した値と同じです。
exp関数の応用例
指数関数のグラフ
exp関数は、底が自然対数の e である指数関数です。
以下のコードを実行することで、exp 関数によって生成される指数関数のグラフを描画することができます。
#include <stdio.h>
#include <math.h>
int main() {
double x, y;
for (x = -2.0; x <= 2.0; x += 0.1) {
y = exp(x);
printf("%f %f\n", x, y);
}
return 0;
}
このコードでは、-2から2までの範囲を0.1刻みで変化させたxに対して、exp(x)を計算し、その結果を出力しています。これをグラフ化した場合、以下のようになります。

確率分布関数
exp 関数は確率論や統計学でも頻繁に使用されます。例えば、ポアソン分布や指数分布などの確率分布においては、exp 関数が確率密度関数(PDF)や累積分布関数(CDF)として現れます。
以下はポアソン分布における確率質量関数(PMF)を計算するために exp 関数を使用したサンプルコードです。
#include <stdio.h>
#include <math.h>
double poisson_pmf(int k, double lambda) {
return pow(lambda, k) * exp(-lambda) / tgamma(k + 1);
}
int main() {
int k;
double lambda = 2.5;
for (k = 0; k <= 10; k++) {
printf("P(X=%d) = %f\n", k, poisson_pmf(k, lambda));
}
return 0;
}
このコードではポアソン分布における確率質量関数(PMF)を計算するために exp 関 数 を 使用しました。λ=2.5 の場合の PMF を出力することが目的です。tgamma() 関 数 を 使用して階乗を計算しています。
その他の応用例
exp 関 数 の 応用例は多岐にわたります。例えば音声処理や画像処理など高度なアルゴリズムでも使用されます。また機械学習やデータマイニングなどでも頻繁に使用されています。
終わりに
以上、C言語のexp関数について、基本的な使い方から応用例までを解説しました。
exp関数は指数関数を計算するための便利な関数であり、様々な分野で活用されています。ぜひこの記事を参考にして、自分自身のプログラミングスキル向上に役立ててください。