Javaプログラミング学習サイト ゆるゆるプログラミング

2016/05/05 公開

・対数 log

対数は、以下の式でyを真数、aを底をした時のxのことです。

対数(底=a)

Javaでは、底を10または自然対数(e)としたときのメソッドが用意されています。それぞれの仕様は以下のとおりです。

Math.log10メソッド

public static double Math.log10( double a )
■aの対数(底=10)を返します。

  パラメータ a : 値

  戻り値     10を底とするaの対数
対数(底=10)

Math.logメソッド

public static double Math.log( double a )
■aの自然対数(底=e)を返します。

  パラメータ a : 値

  戻り値     aの自然対数
対数(底=e)

Javaメソッドには、任意の底から対数を計算するメソッドはありません。そこで、Javaで用意されているMath.logメソッドまたはMath.log10メソッドを使って計算してみます。

任意の底aから対数を計算する式は、下の式のように書くことができます。bは任意の値なので、10でも自然対数eでもよいことになります。

対数(底=a)

以下は、この式を使って対数を計算するJavaソースコード例です。

LogSample.java ← クリックしてダウンロードページに移動
001:    public class LogSample {
002:    	public static void main( String[] args ) {
003:    		// y = aのx乗
004:    		double x = 5.0;	// 指数(対数)
005:    		double a = 2.0;	// 底
006:    		double y = Math.pow( a, x );	// 真数
007:    		
008:    		// 結果表示
009:    		String head = "底=" + a + " 真数=" + y + "の対数";
010:    
011:    		// Math.logで計算
012:    		double xe = Math.log( y ) / Math.log( a);
013:    		System.out.println( head + "(Math.logを使用)   : " + xe );
014:    
015:    		// Math.log10で計算
016:    		double x10 = Math.log10( y ) / Math.log10( a);
017:    		System.out.println( head + "(Math.log10を使用) : " + x10 );
018:    	}
019:    }

LogSample.javaの出力結果

底=2.0 真数=32.0の対数(Math.logを使用)   : 5.0
底=2.0 真数=32.0の対数(Math.log10を使用) : 5.0

Math.logとMathlog10のどちらのメソッドを使ってもの同じ結果が得られています。

参考にしてください。

■関連コンテンツ

数学関数について 数学関数について解説
累乗 pow Math.powの使い方について解説

■新着情報

2022.07.07 外部プログラムの実行 exeファイル実行
2022.07.06 完全数 6=1+2+3

■広告

Topへ