mathモジュールの指数関数
mathモジュールをインポートすると、math.e, math.exp(x), math.expm1(x) を使えるようになります。
math.e
math.e にはネイピア数(自然対数の底)の近似値が格納されています。
# PYTHON_NAPIER'S_CONSTANT # In[1] import math val = math.e # ネイピア数e print(val) # 2.718281828459045 # In[2] digits = len(str(math.e)) - 1 # math.eの桁数 print(digits) # 16
math.exp()
math.exp(x) はネイピア数(e = 2.718…)を底とする指数関数 e^x の値を返します。
受け取った引数は float型に変換されます。complex型は float型に変換できないので、複素数を引数に指定することができません。
# PYTHON_MATH_EXP # In[1] import math val = math.exp(1) print(val) # 2.718281828459045 # In[2] val = math.exp(2) print(val) # 7.38905609893065 # In[3] val = math.exp(-1) print(val) # 0.36787944117144233
math.e と math.exp(1) が一致することを確認しておきます。
# In[4] import math a = math.e b = math.exp(1) print(a == b) # True
math.expm1()
math.expm1(x) は指数関数 exp(x) から 1 を引いた値を返します。
非常に小さな x で exp(x) – 1 を計算すると減算により桁落ちしますが、expm1()関数は精度を保ちます。
# PYTHON_MATH_EXPM1 # In[1] import math val = math.expm1(1.0e-5) print(val) # 1.0000050000166667e-05
【NumPy】指数関数
NumPyをインポートすると、numpy.e, numpy.exp(x) を扱うことができます。NumPy の関数は ndarray という多次元配列を引数として与えると ndarray で返すユニバーサル関数です。
numpy.e
numpy.e はネイピア数(自然対数の底) の近似値を呼び出します。
# NUMPY_NAPIER'S_CONSTANT import numpy as np # ネイピア数(自然対数の底) print(np.e) # 2.718281828459045
numpy.exp()
numpy.exp(x) は指数関数 ex を返します。
# NUMPY_EXP # In[1] import numpy as np # 変数 x = 0, 1, 2 x = np.array([0, 1, 2]) # exp(0), exp(1), exp(2) を計算 y = np.exp(x) print(y) # [1. 2.71828183 7.3890561]
numpy.exp(x) の引数 x には複素数を指定することもできます。
# In[2] # 複素数変数を定義 z = 5 + 11j val = np.exp(z) print(val) # (0.6568318196405344-148.411705625828j)
指数関数のグラフ
Matplotlib を読み込んで指数関数のグラフを描画させるサンプルコードです。Jupyter Notebook などで使ってみてください。
# NUMPY_EXPONENTIAL_PLOT import numpy as np import matplotlib.pyplot as plt # フィギュアを設定 fig = plt.figure() # グリッド線を表示 plt.style.use("ggplot") # グラフ描画領域を追加 ax = fig.add_subplot(111) # グラフタイトルを設定 ax.set_title("y = exp(x)", fontsize = 16) # x軸, y軸のラベルを設定 ax.set_xlabel("x", fontsize = 16) ax.set_ylabel("y", fontsize = 16) # xのデータを用意 x = np.arange(-2, 4, 0.1) # yのデータを用意 y = np.exp(x) # データをプロット ax.plot(x, y)
【SymPy】指数関数
SymPy をインポートすると記号を使って指数関数を計算できます。
sympy.exp()
sympy.exp() はネイピア数 e を底とする指数関数を返します。
# SYMPY_EXP # In[1] import sympy # 記号xを定義 sympy.var('x y') # f(x)=exp(x) f = sympy.exp(x) # g(y)=exp(y) g = sympy.exp(y) # h=f(x)g(y) h = sympy.simplify(f*g) print(h) # exp(x + y)
コメント
下記は誤植と思われますので、ご確認ください。
EXP_07 プログラムの実行結果で、’ggplot’ スタイル → デフォルトスタイル
上記のコメントを取り消します。
プログラム中の plt.style.use(“ggplot”) を見落としていました。