関数の概要
PHPの expm1 関数は、数学定数 e(自然対数の底) を使った計算で、e の x 乗から 1 を引いた値を効率的に求めるための関数です。この関数は特に x が非常に小さい場合に数値誤差を抑えるのに役立ちます。通常は exp(x) - 1 と計算しますが、誤差が大きくなる可能性があります。それを避けるために expm1 を使います。
パラメータの説明
float $x: 指数として使う数値です。任意の実数を指定できます。
戻り値
引数 $x を指数とした e の累乗から 1 を引いた値、すなわち ex - 1 の計算結果を浮動小数点数で返します。
使用例
基本的な使い方
<?php
echo expm1(1); // eの1乗-1、約1.718281828459
?>
引数に1を指定すると、e1-1の値を返します。およそ1.7183になります。
小さな値での比較
<?php
$x = 0.000001;
echo expm1($x) . "n"; // 正確な結果を小数点以下も含めて返す
echo exp($x) - 1 . "n"; // 通常の計算、誤差が生じやすい
?>
非常に小さい値の場合、expm1 を使うことで誤差が抑えられ、より正確な結果が得られます。
マイナスの値の場合
<?php
echo expm1(-2); // eの-2乗-1、約-0.8646647167619
?>
負の値に対しても問題なく動作し、e-2-1 の結果を返します。
関連する関数
exp(): e を底とする指数関数log(): 自然対数を計算する関数pow(): 任意のべき乗を計算する関数
まとめ
expm1 関数は、e の累乗から 1 を引いた値を計算するのに特化した関数です。特に小さな指数値での計算で数値誤差を防止するために役立ちます。実務でも、微小な変化を扱う数学的処理や物理計算などで正確な値を求めたい時に使うと便利です。通常の exp(x) - 1 に比べて精度が高いので、ぜひ覚えておきましょう。
