【C言語】指数関数・対数関数の計算とグラフ表示
math.hライブラリの紹介
C言語で指数関数や対数関数を扱うには、標準ライブラリ math.h
を使用します。このライブラリには、数学的な計算を行うための関数が多数含まれています。
主に使用する関数は以下のとおりです:
exp(x)
: 指数関数 e^x を計算log(x)
: 自然対数 ln(x) を計算log10(x)
: 常用対数 log10(x) を計算pow(x, y)
: x^y の計算
これらの関数を使うには、#include <math.h>
をコードの先頭に追加します。
指数関数の計算
指数関数とは、e(ネイピア数 2.718…)を底とする関数 e^x のことです。C言語では exp()
関数を使って計算できます。
例1: 指数関数 e^x の計算
#include <stdio.h>
#include <math.h>
int main() {
double x = 2.0;
double result = exp(x);
printf("e^%.2f = %.5f\n", x, result);
return 0;
}
例2: 任意の底を持つ指数関数の計算
任意の底 a
を持つ指数関数 a^x は、pow()
を使って計算できます。
#include <stdio.h>
#include <math.h>
int main() {
double a = 3.0;
double x = 2.0;
double result = pow(a, x);
printf("%.2f^%.2f = %.5f\n", a, x, result);
return 0;
}
対数関数の計算
対数関数は、指数関数の逆関数です。C言語では log()
や log10()
を使います。
例3: 自然対数 ln(x) の計算
#include <stdio.h>
#include <math.h>
int main() {
double x = 5.0;
double result = log(x);
printf("ln(%.2f) = %.5f\n", x, result);
return 0;
}
例4: 常用対数 log10(x) の計算
#include <stdio.h>
#include <math.h>
int main() {
double x = 100.0;
double result = log10(x);
printf("log10(%.2f) = %.5f\n", x, result);
return 0;
}
指数関数と対数関数の組み合わせ
指数関数と対数関数を組み合わせることで、さまざまな計算が可能になります。
例5: 対数と指数の関係
#include <stdio.h>
#include <math.h>
int main() {
double x = 5.0;
double log_exp = log(exp(x));
printf("log(e^%.2f) = %.5f\n", x, log_exp);
return 0;
}
C言語でのグラフ表示
C言語単体ではグラフを描画できないため、一般的には外部ツールを利用します。その中でも gnuplot
がよく使用されます。
gnuplotを用いたグラフ描画
gnuplot を使用することで、指数関数や対数関数のグラフを簡単に描画できます。
例6: gnuplot を使用した指数関数のグラフ
#include <stdio.h>
#include <math.h>
int main() {
FILE *fp = fopen("exp_data.txt", "w");
for (double x = -2; x <= 2; x += 0.1) {
fprintf(fp, "%.2f %.5f\n", x, exp(x));
}
fclose(fp);
FILE *gp = popen("gnuplot -persist", "w");
fprintf(gp, "plot 'exp_data.txt' with lines\n");
pclose(gp);
return 0;
}
まとめ
- C言語で指数関数や対数関数を計算するには、
math.h
の関数を使用する。 - 指数関数には
exp()
、対数関数にはlog()
やlog10()
を使用する。 - グラフ描画には
gnuplot
を活用することで視覚的に理解しやすくなる。
この知識を活用して、C言語での数学的な計算をより効果的に行いましょう!