JavaScriptをやっている絵

[JavaScript] Math.log1pって何?使い所

[JavaScript] Math.log1pって何?使い所

Math.log1pは、JavaScriptで数値に1を加えた値の自然対数(logₑ(x))を計算するための関数です。これは、特にxが非常に小さい場合に精度を保つために役立ちます。Math.log1p(x)は次のように動作します:

使用する理由

Math.log1p(x)は、Math.log(1 + x)と同じ結果を与えますが、xが非常に小さい場合により正確な結果を提供する。
これは、数値計算における精度の問題を回避するために特に有用

例えば、xが非常に小さい場合、1 + xは1に非常に近くなり、Math.log(1 + x)を直接計算すると、数値誤差が生じる可能性がある。
Math.log1p(x)はその誤差を減少させるために設計されている

実例

例えば、xが非常に小さい場合

let x = 1e-15;
let log1pResult = Math.log1p(x);
let logResult = Math.log(1 + x);

console.log(log1pResult); // 9.999999999999995e-16  より正確な値
console.log(logResult);   // 1.110223024625156e-15 精度が低い可能性がある

まとめ

Math.log1p(x)はln(1 + x)を計算します。
小さい値のxに対して、数値的な安定性を保つために使用します。
Math.log(1 + x)の代わりに使うと精度が向上する場合があります。