【C言語】指数関数・対数関数の計算とグラフ表示

【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言語での数学的な計算をより効果的に行いましょう!

コメントは受け付けていません。