mathモジュールの指数関数
mathモジュールをインポートすると、math.e, math.exp(x), math.expm1(x) を使えるようになります。
math.e
math.e にはネイピア数 (自然対数の底) の近似値が格納されています。
# PYTHON_NAPIER'S_CONSTANT
# In[1]
import math
# ネイピア数e
val = math.e
print(val)
# 2.718281828459045
# In[2]
# math.eの桁数
digits = len(str(math.e)) - 1
print(digits)
# 16
math.exp()
math.exp(x) は e を底とする 指数関数 ex の値を返します。
受け取った引数は 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”) を見落としていました。
ChatGPTが指数関数について解説します
指数関数は数学の一分野であり、非常に重要な概念です。指数関数は、変数が指数として現れる関数のことを指します。具体的には、指数関数は以下の形式で表されます:
f(x) = a^x
ここで、aは底(ベース)と呼ばれる定数で、xは指数と呼ばれる変数です。指数関数は、底aをx回乗べきすることによって定義されます。例えば、f(x) = 2^xは指数関数の一つであり、底2の指数関数と呼ばれます。この関数では、2をx回乗べきした値が関数の出力となります。指数関数の特徴的な性質は、指数が変化すると関数の値も変化することです。指数が増加すると、関数の値は急速に増加し、指数が減少すると関数の値は急速に減少します。指数関数は、自然界の様々な現象や数学的なモデル化に広く使われています。例えば、物質の崩壊や成長、人口の増加、財産の複利利子など、様々な現象を指数関数で表現することができます。また、指数関数は数学の他の分野との関連も非常に強いです。特に、微分方程式や複素数の指数関数など、さまざまな応用分野で重要な役割を果たしています。指数関数は初めて学ぶときには少し難しいかもしれませんが、練習を重ねることで理解が深まります。具体的な例題やグラフを用いて指数関数を学ぶと、より具体的なイメージが湧くかもしれません。
ChatGPTがネイピア数について講義しました
ネイピア数(e)は、数学の中でも非常に重要な定数であり、指数関数や対数関数の基礎となる値です。ネイピア数は、無理数であり、約2.71828という近似値で表されます。ネイピア数は、次のような極限の定義によって導入されます:
e = lim(n→∞) (1 + 1/n)^n
この極限の式は、nが非常に大きくなるにつれて、(1 + 1/n)をn回乗べきする操作を行ったときの値を表しています。ネイピア数は、指数関数と密接に関連しています。実際、e^xの形の指数関数は、ネイピア数を底とする指数関数と呼ばれます。例えば、e^x = 2.71828^xのような形です。ネイピア数は、多くの数学的・科学的応用において重要な役割を果たしています。例えば、複利利子の計算や指数増加・減衰のモデル化、微分方程式の解法、確率論や統計学、物理学など、幅広い分野で使用されています。ネイピア数の性質として、e^xの微分値が自身の関数であることが挙げられます。つまり、e^xを微分すると、結果はe^xとなります。この性質は微分方程式の解法や関数の近似などで頻繁に利用されます。ネイピア数のグラフを描くと、x軸に対してy = e^xという指数関数のグラフが得られます。このグラフは、xが増えるにつれて急速に上昇し、その増加率は非常に高いことがわかります。ネイピア数は数学の基礎的な概念であり、理解すると数学のさまざまな分野で応用できる基盤を築くことができます。練習問題や具体的な応用例を通じて、ネイピア数に慣れ親しんでいくと良いでしょう。