CodeGym /Java Blog /ランダム /Java の Math.exp() メソッド
John Squirrels
レベル 41
San Francisco

Java の Math.exp() メソッド

ランダム グループに公開済み
Mathクラスは、数学関数を操作するためのメソッドが含まれています。この記事では、Java のMath.exp()メソッドについて説明します。数値e をdouble 値で累乗して返します。

指数関数とは: 非常に短い数学の入門

注: このセクションでは、 Math.exp()メソッドの背後にある数学について説明します。すでに知っている場合、または本質を理解せずにこの方法を使用したい場合は、次のポイントに進んでください。指数は関数y = e xです。ここで、e はおよそ 2.718281828459045 という扱いにくい数学的数値です。この数値は有名な円周率と同じくらい重要ですが、主に数学者、プログラマー、統計を扱う人々によって知られています。ちなみにオイラー数という名前があります。また、eは自然対数の底です。指数関数のグラフは次のとおりです。 Java の Math.exp() メソッド - 1指数法則に従うプロセスには、同じ時間間隔でパラメータが同じ回数変化するという共通の特性があります。たとえば、液体の冷却: 空気と液体の温度差が大きければ大きいほど、より速く冷却されます。山を転がる雪玉は大きくなるほど、転がり落ちる速度が速くなります。

Java の Math.exp() メソッド

さて、Java に戻りましょう。Mathクラスのdouble exp(double x)メソッドは、点xにおける指数関数の値を計算します。つまり、数値eのx乗を返します。より正確には、一定の精度で近似値を返します。オイラー数e のdouble 値の累乗を返します。つまり、Math.exp(2.0) = e 2.0 (およそ 7.34) です。メソッドの宣言は次のとおりです。

double exp(double x)
ここで、x は数値eを累乗する次数です。例を挙げてみましょう。

public class ExpExample {
   public static void main(String[] args) {
       int x1 = 2;
       double x2 = 0.5;
       double x3 = 1;
       System.out.println("exponential function in  " + x1 + " = " + Math.exp(x1));
       System.out.println("exponential function in  " + x2 + " = " + Math.exp(x2));
       System.out.println("exponential function in  " + x3 + " = " + Math.exp(x3));
   }
}
出力は次のとおりです。
2 の指数関数 = 7.38905609893065 0.5 の指数関数 = 1.6487212707001282 1.0 の指数関数 = 2.718281828459045

いくつかの特殊なケース

数学には、正と負の無限大だけでなく、不定形の概念もあります。正の数を 0.0 で割ると正の無限大が得られ、負の数を割ると負の無限大が得られます。不定形はさまざまな方法で取得できます。たとえば、ゼロをゼロで除算したり、無限大を無限大で除算しようとしたとします。Java には、 Double.NaN (やや不定形式)、Double.POSITIVE_INFINITYDouble.NEGATIVE_INFINITYなど、Doubleクラスの特別な定数があります。Math.exp()メソッドは、次の 3 つの概念に直面した場合に特定の方法で動作します。
  • 引数が NaN の場合、結果も NaN になります。
  • 引数が正の無限大の場合、結果も正の無限大になります。
  • 引数が負の無限大の場合、結果は正のゼロになります。
特殊な場合のコード例を次に示します。

public class ExpSpecialCases {

   public static void main(String[] args) {

   double positiveInfinity = Double.POSITIVE_INFINITY;
   double negativeInfinity = Double.NEGATIVE_INFINITY;
   double nan = Double.NaN;

   //The argument is positive infinity, the output is positive infinity
       System.out.println(Math.exp(positiveInfinity));

   //The argument is negative infinity, the output is zero
       System.out.println(Math.exp(negativeInfinity));

   //The argument is NaN, the output is NaN
       System.out.println(Math.exp(nan));
}
}
出力は次のとおりです。
無限大 0.0 NaN
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION