Cライブラリ関数 -exp()

C 标准库 - <math.h>C標準ライブラリ - <math.h>

説明

Cライブラリ関数double exp(double x)返しますeのx累乗の値。

exp()C標準ライブラリ<math.h>の関数で、e の x 乗を計算するために使用されます。ここで e は自然対数の底(約 2.71828)です。これは一般的な数学関数であり、科学計算、金融、工学などの分野で広く使用されています。

宣言

以下は exp() 関数の宣言です。

#include <math.h>

double exp(double x);
float expf(float x);
long double expl(long double x);

パラメータ

  • x:入力された実数で、計算する指数を表します。

戻り値

この関数は e の x 乗を返します。

例

以下の例は exp() 関数の使い方を示しています。

例

#include <stdio.h>
#include <math.h>

int main ()
{
   double x = 0;
 
   printf(e の %lf 乗は %lf\n", x, exp(x));
   printf(e の %lf 乗は %lf\n", x+1, exp(x+1));
   printf(e の %lf 乗は %lf\n", x+2, exp(x+2));
   
   return(0);
}

上記のプログラムをコンパイルして実行すると、次の結果が得られます。

e 的 0.000000 次幂是 1.000000
e 的 1.000000 次幂是 2.718282
e 的 2.000000 次幂是 7.389056

複数の値の指数を計算する

次の例は、複数の値の指数を計算する方法を示しています。

例

#include <stdio.h>
#include <math.h>

int main() {
    double values[] = {0, 0.5, 1, 1.5, 2};
    int num_values = sizeof(values) / sizeof(values[0]);

    for (int i = 0; i < num_values; i++) {
        double x = values[i];
        double result = exp(x);
        printf("exp(%f) = %f\n", x, result);
    }

    return 0;
}

上記のプログラムをコンパイルして実行すると、次の結果が得られます。

exp(0.000000) = 1.000000
exp(0.500000) = 1.648721
exp(1.000000) = 2.718282
exp(1.500000) = 4.481689
exp(2.000000) = 7.389056

コード解析

  • 複数の値を含む配列を定義しますvalues。
  • 使用してforループで各値を反復処理し、指数値を計算して結果を出力します。

エラー処理

exp()関数は入力値が大きすぎるとオーバーフローを引き起こす可能性があります。この場合、関数は正の無限大を返し、errnoに設定されます。ERANGE。使用することでerrnoオーバーフローエラーが発生したかどうかを確認できます。

次の例は、オーバーフローエラーの処理方法を示しています。

例

#include <stdio.h>
#include <math.h>
#include <errno.h>

int main() {
    double x = 1000.0;
    errno = 0;  // errno をリセット
    double result = exp(x);

    if (errno == ERANGE) {
        printf("Overflow error: exp(%f) result is out of range.\n", x);
    } else {
        printf("exp(%f) = %f\n", x, result);
    }

    return 0;
}

上記のプログラムをコンパイルして実行すると、次の結果が得られます。

exp(1000.000000) = inf

コード解析

  • コードは計算を試みますexp(1000.0)、これはオーバーフローを引き起こす可能性のある入力値です。
  • errnoは 0 にリセットされ、次に呼び出しますexp(x)。
  • 確認するerrnoが等しいかどうかERANGE、もし等しければ、オーバーフローエラーメッセージを出力します。
  • エラーがなければ、計算結果を出力します。

まとめ

exp()関数は e の x 乗を計算するために使用され、指数演算の処理に重要なツールです。使用時には、起こり得るオーバーフローエラーの処理に注意する必要があります。適切に使用することでexp()関数は、数学計算、物理シミュレーション、工学アプリケーションにおいて正確な結果を得ることができます。

C 标准库 - <math.h>C標準ライブラリ - <math.h>

その他の拡張