対数関数(Math.log, Math.log10, Math.log2, Math.log1p)

Math オブジェクトで用意されている静的メソッドの中で対数関数に関係する Math.log, Math.log10, Math.log2, Math.log1p メソッドの使い方について解説します。

(Last modified: )

対数関数の種類と使い方

JavaScript の Math オブジェクトでは対数に関係するメソッドとして次の 4 つが用意されています。

Math.log(x)    x の自然対数を返す
Math.log1p(x)  x の 1 + x の自然対数を返す
Math.log10(x)  x の 10 を底とした対数を返す
Math.log2(x)   x の 2 を底とした対数を返す

対数に関する詳しい説明はここでは省略しますが、簡単に書くと x = ap が成り立つ時、 p を x の a を底とする対数と呼びます。 p は a を何乗したら x になるのかを表す数値です。この時 p は次のように表すことができます。

対数関数の種類と使い方(1)

先ほどの 4 つのメソッドはそれぞれ次のような対数を計算するメソッドとなります。

対数関数の種類と使い方(2)

対数の中でもネイピア数である e を底とする対数のことを自然対数といいます。他に 10 を底とする対数のことを常用対数、 2 を底とする対数のことを二進対数と呼びます。ネイピア数の e は Math オブジェクトの静的プロパティとして次のように用意されています。

Math.E	自然対数の底

他にも対数に関係する次のような静的プロパティが用意されています。

Math.LN2	2の自然対数 = loge2
Math.LN10	10の自然対数 = loge10
Math.LOG2E	2を底とするeの対数 = log2e
Math.LOG10E	10を底とするeの対数 = log10e

それではそれぞのメソッドについて順に見ていきます。

自然対数を返す(Math.log)

Math オブジェクトの Math.log メソッドは引数の値の自然対数を返します。書式は次の通りです。

Math.log(数値)

引数 x に対する logex を返します。数値が負の値の場合は NaN が返ります。

実際の使い方は次のサンプルをみてください。

Math.log(10);
>> 2.302585092994046

Math.log(1);
>> 0

Math.log(-10);
>> NaN

Math.log(Math.E);
>> 1

1+xの自然対数を返す(Math.log1p)

Math オブジェクトの Math.log1p メソッドは引数の値に 1 を加えた数値の自然対数を返します。書式は次の通りです。

Math.log1p(数値)

引数 x に対する loge(x + 1) を返します。数値 + 1 が負の値の場合は NaN が返ります。

実際の使い方は次のサンプルをみてください。

Math.log1p(10);
>> 2.3978952727983707

Math.log1p(1);
>> 0.6931471805599453

Math.log1p(0);
>> 0

Math.log1p(-10);
>> NaN

10を底とした対数を返す(Math.log10)

Math オブジェクトの Math.log10 メソッドは引数の値の 10 を底とする対数を返します。書式は次の通りです。

Math.log10(数値)

引数 x に対する log10x を返します。数値が負の値の場合は NaN が返ります。

実際の使い方は次のサンプルをみてください。

Math.log10(100);
>> 2

Math.log10(10);
>> 1

Math.log10(1);
>> 0

Math.log10(-100);
>> NaN

2を底とした対数を返す(Math.log2)

Math オブジェクトの Math.log2 メソッドは引数の値の 2 を底とする対数を返します。書式は次の通りです。

Math.log2(数値)

引数 x に対する log2x を返します。数値が負の値の場合は NaN が返ります。

実際の使い方は次のサンプルをみてください。

Math.log2(256);
>> 8

Math.log2(4);
>> 2

Math.log2(1);
>> 0

Math.log2(-4);
>> NaN

-- --

Math オブジェクトで用意されている静的メソッドの中で対数関数に関係する Math.log, Math.log10, Math.log2, Math.log1p メソッドの使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。