C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++のexpm1()関数とは?使い方とコード例を解説


expm1()関数は、自然対数の底eを任意の数で累乗した値から1を引いた結果を計算するために使用される数学関数です。つまり、(e^a) - 1 の値を返します。

expm1()の数学的な表現は以下の通りです。

expm1(a) = (e^a) - 1

なお、xが非常に小さい値の場合、e^xは1に近づくため、通常の方法(exp(x) - 1)で計算すると桁落ちによって精度が低下します。expm1()関数を使うことで、このようなケースでも高精度な結果を得ることができます。

C++におけるexpm1()関数の構文は以下の通りです。

float expm1(variable_name);

各要素の意味は次の通りです。

  • variable_name − 計算対象となる値を持つ変数の名前です。任意の名前を付けることができます。

この関数を使用するには、ヘッダーファイル<cmath>をインクルードする必要があります。以下は、C++でのexpm1()関数の使用例です。

サンプルコード

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    int x = 10;
    float y = 8.28;

    cout << "The value of x : " << expm1(x);
    cout << "\nThe value of y : " << expm1(y);

    return 0;
}

出力結果

上記のプログラムを実行すると、以下のような出力が得られます。

The value of x : 22025.5
The value of y : 3943.19

このように、整数型・浮動小数点型のどちらの値を渡しても、expm1()関数は対応する「e^x - 1」の計算結果を返します。小さな値に対する高い精度が求められる科学技術計算などで特に役立つ関数です。

  1. C++のisprint()関数とは?使い方とサンプルコードをわかりやすく解説

    C++のisprint()関数とは isprint()は、C++であらかじめ用意されている標準ライブラリ関数の一つで、引数として渡された文字が「印字可能文字(画面に表示できる文字)」かどうかを判定します。判定の結果、文字が印字可能であれば0以外の値(真)を返し、そうでなければ0(偽)を返します。この関数を使用するには、ヘッダーファイル「cctype」をインクルードする必要があります。 isprint()の構文 C++におけるisprint()関数の構文は以下の通りです。 int isprint(int character); character − 印字可能かどうかを判定したい文字を指定しま

  2. C++のlog1p()関数とは?使い方とサンプルコードをわかりやすく解説

    C++のlog1p()関数の概要C++のlog1p()関数は、任意の数値 a に対して「(a + 1) の自然対数(底が e の対数)」を計算するための関数です。戻り値として (a+1) の自然対数の値が返されます。なお、引数に -1 未満の値 を渡した場合は、有効な結果が得られないため NaN(Not a Number) が返される点に注意が必要です。数学的な表現log1p() の動作は、次の数式で表すことができます。log1p(a) = base-e log(a+1)log1p()の構文C++における log1p() 関数の構文は以下のとおりです。float log1p(float var