2016.05.05

数学

数学関数(対数) log、log10

対数は、以下の式で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ソースコード

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

LogSample.java

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
public class LogSample {
	public static void main( String[] args ) {
		// y = aのx乗
		double x = 5.0;	// 指数(対数)
		double a = 2.0;	// 底
		double y = Math.pow( a, x );	// 真数
		
		// 結果表示
		String head = "底=" + a + " 真数=" + y + "の対数";

		// Math.logで計算
		double xe = Math.log( y ) / Math.log( a);
		System.out.println( head + "(Math.logを使用)   : " + xe );

		// Math.log10で計算
		double x10 = Math.log10( y ) / Math.log10( a);
		System.out.println( head + "(Math.log10を使用) : " + x10 );
	}
}

実行結果

コンパイル ソースコードが「ANSI」の場合

C:\talavax\javasample>javac -encoding sjis LogSample.java

コンパイル ソースコードが「UTF-8」の場合

C:\talavax\javasample>javac LogSample.java

実行

C:\talavax\javasample>java LogSample
底=2.0 真数=32.0の対数(Math.logを使用)   : 5.0
底=2.0 真数=32.0の対数(Math.log10を使用) : 5.0

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

以上です。

関連コンテンツ

数学に関係するJavaのメソッドやソースコードなどを紹介しています。

2022.10.25

画像フォーマット形式・色・大きさ・傾きなどの変更、特定の図形(文字・記号など)を見つけたり、取り出したりする画像処理について詳しく解説。

2015.11.29

繰り返し処理を使ったJavaのソースコードサンプルを紹介しています。

2020.03.23

変数やクラスに格納されている値をコンソール出力する方法は?

2020.03.23

プログラムの最初に実行されるメソッドは?

2022.12.13

プログラミングで使う変数って何?

2020.03.23

Javaのプログラムを書いてみませんか?プログラムの書き方をくわしく説明しています。

2020.03.23

「Javaソースコード」から実行可能な「オブジェクトコード」に変換する方法をくわしく説明しています。

2020.03.23

プログラミング言語とは?種類や特徴について説明しています。

2022.08.03

メソッドの定義方法を詳しく解説しています。Javaのサンプルソースコードを使った説明もあります。

2020.03.23

広告