自然指数関数(Natural Exponential Function)の場合
実数を定義域(Domain)とする自然指数関数(Natural Exponential Function)
\exp(x)'=\exp(x)\\
\int \exp(x)\ dx= \exp(x)
指数関数においては、一点で微分可能性さえわかれば、全ての指数関数の全ての点が微分可能となります。実際に試してみましょう。指数関数(Exponential Function) $y=a^x(a=0.1 \leqq a \leqq 4)$ と接点(0,1)で接する接線(Tangent) $y=\log(a)\ x+1$ をグラフ化してみます。
%matplotlib nbagg
import math as m
import cmath as c
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
# 等差数列を生成
X = np.linspace(-10,10,101,endpoint =True)
Y0=np.exp(X)
plt.style.use('default')
fig = plt.figure()
Tcode=np.linspace(0.1,4,40,endpoint =True)
def exponential(n):
plt.cla()
#値域の決定
Y1=Tcode[n]**X
def tangent(x):return(np.log(Tcode[n])*x+1)
Y2=tangent(X)
# 可視化
ex01="y="+str(round(Tcode[n],3))+"^x"
ex02="y=log("+str(round(Tcode[n],3))+")x+1"
plt.plot(X, X+1,color="green", label="y=x+1")
plt.plot(-X, X+1,color="green", label="y=-x+1")
plt.plot(X, Y0,color="purple", label="y=exp(x)")
plt.plot(-X, Y0,color="purple", label="y=exp(-x)")
plt.plot(X, Y1,color="red", label=ex01)
plt.plot(X, Y2,color="blue", label=ex02)
slopeX1=[0,1,1,0]
slopeY1=[1,1,tangent(1),1]
plt.fill(slopeX1,slopeY1,color="y",alpha=0.5)
slopeX2=[0,-1,-1,0]
slopeY2=[1,1,tangent(-1),1]
plt.fill(slopeX2,slopeY2,color="y",alpha=0.5)
#頂点
plt.plot(0, 1,color="black", marker="o")
plt.plot(1, 1,color="black", marker="o")
plt.plot(-1, 1,color="black", marker="o")
plt.plot(1, tangent(1),color="blue", marker="o")
plt.plot(-1, tangent(-1),color="blue", marker="o")
#座標
plt.hlines(0,-10,10,color="black")
plt.hlines(1,-10,10,color="black",lw=0.5)
plt.hlines(-1,-10,10,color="black",lw=0.5)
plt.vlines(0,-10,10,color="black")
plt.ylim([-4,4])
plt.xlim([-4,4])
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Variation of Exponentiation Root")
ax = fig.add_subplot(111)
ax.set_aspect('equal')
ax.text(0, 1," (0,1)",color="black", size=9)
ax.text(1, 1," (1,1)",color="black", size=9)
ax.text(-1, 1," (-1,1)",color="black", size=9)
tan1="(1,"+str(round(tangent(1),3))+")"
ax.text(1, tangent(1),tan1,color="blue", size=9)
tan2="(-1,"+str(round(tangent(-1),3))+")"
ax.text(-1, tangent(-1),tan1,color="blue", size=9)
ax.legend(loc='lower center')
#plt.show()
ani = animation.FuncAnimation(fig, exponential, interval=50,frames=len(Tcode))
ani.save("nap012.gif", writer="pillow")
見ての通り接線の傾きが1となるのは根がexp(1)=2.718282(ネイピア数=Napierian Constant)の場合、傾きが逆に-1となるのは根が$\exp(-1)=0.3678794\left (\frac{1}{\text{Napierian Constant}}\right )$ の場合となります。自然指数関数 $y=\exp(x)$ や自然対数関数 $y=\log(x)$ の底は、この様に接線の傾きが1となる座標から逆算して定められた訳で、そう考えると自然指数関数 $y=\exp(x)$ と接点$(x,\exp(x))$ で接する接線 $y=\exp(x)\ x+\exp(x)$ の傾き $\exp(x)$ と導関数 $\exp(x)$ の値が重なるのは、ある意味自明の理といえましょう。
%matplotlib nbagg
import math as m
import cmath as c
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
# 等差数列を生成
X = np.linspace(-10,10,101,endpoint =True)
Y0=np.exp(X)
plt.style.use('default')
fig = plt.figure()
Tcode=np.linspace(-3,3,41,endpoint =True)
def exponential(n):
plt.cla()
# 可視化
X1=X+Tcode[n]
def tangent(x):return(np.exp(Tcode[n])*x+np.exp(Tcode[n]))
Y1=tangent(X)
es="{:0<+5}".format(round(Tcode[n],3))
ex01="y=exp("+es+")("+es+"+x)+exp("+es+")"
plt.plot(X,Y0,color="red", label="y=exp(x)")
plt.plot(X,X+1,color="green", label="y=x+1")
plt.plot(X1,Y1,color="blue", label=ex01)
slopeX1=[Tcode[n],Tcode[n]+1,Tcode[n]+1,Tcode[n]]
slopeY1=[np.exp(Tcode[n]),np.exp(Tcode[n]),np.exp(Tcode[n])*2,np.exp(Tcode[n])]
plt.fill(slopeX1,slopeY1,color="y",alpha=0.5)
#頂点
plt.plot(1, 1,color="black", marker="o")
plt.plot(0, 1,color="black", marker="o")
plt.plot(-1, 1,color="black", marker="o")
plt.plot(1, 2,color="green", marker="o")
plt.plot(-1, 0,color="green", marker="o")
plt.plot(1, np.exp(1),color="red", marker="o")
plt.plot(-1, np.exp(-1),color="red", marker="o")
plt.plot(Tcode[n],np.exp(Tcode[n]),color="blue", marker="o")
plt.plot(Tcode[n]+1, np.exp(Tcode[n]),color="blue", marker="o")
plt.plot(Tcode[n]+1, np.exp(Tcode[n])*2,color="blue", marker="o")
#座標
plt.hlines(0,-10,10,color="black")
plt.hlines(1,-10,10,color="black",lw=0.5)
plt.vlines(0,-10,10,color="black")
plt.vlines(+1,-10,10,color="black",lw=0.5)
plt.vlines(-1,-10,10,color="black",lw=0.5)
plt.ylim([-4,4])
plt.xlim([-4,4])
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Slope = Derivative Function Value")
ax = fig.add_subplot(111)
ax.set_aspect('equal')
ax.text(0, 1," (0,1)",color="black", size=9)
ax.text(1, 1," (1,1)",color="black", size=9)
ax.text(-1, 1," (-1,1)",color="black", size=9)
ax.text(1, 2," (1,2)",color="green", size=9)
ax.text(-1, 0," (-1,0)",color="green", size=9)
ax.text(1, np.exp(1)," (1,exp(1))",color="red", size=9)
ax.text(-1, np.exp(-1)," (-1,exp(-1))",color="red", size=9)
sp1="("+str(round(Tcode[n],3))+","+str(round(np.exp(Tcode[n]),3))+")"
ax.text(Tcode[n], np.exp(Tcode[n]),sp1,color="blue", size=9)
sp2="("+str(round(Tcode[n]+1,3))+","+str(round(np.exp(Tcode[n]),3))+")"
ax.text(Tcode[n]+1,np.exp(Tcode[n]), sp2,color="blue", size=9)
sp3="("+str(round(Tcode[n]+1,3))+","+str(round(np.exp(Tcode[n])*2,3))+")"
ax.text(Tcode[n]+1,np.exp(Tcode[n])*2,sp3,color="blue", size=9)
ax.legend(loc='lower center')
#plt.show()
ani = animation.FuncAnimation(fig, exponential, interval=50,frames=len(Tcode))
ani.save("nae017.gif", writer="pillow")
以前の説明では…
【数理考古学】冪乗算の微積分
- 反比例式xy=1を$y=\frac{1}{x}$の形に変形してさらに積分すると $y=\log(x)$ となる。
xy=1\\
変形して\ y=\left[ \frac{1}{x}\right]\\
さらに積分して \int \frac{1}{x}dx=\log(x)
- ところで自然指数関数 $y=\exp(x)$ の$x$と$y$を入れ替えると$y=\log(x)$となり、かつ$\displaystyle \frac{1}{x}$を積分すると$y=\log(x)$となるので、微分積分学の基本定理より$\displaystyle \frac{dy}{dx}=\frac{1}{x}$が成立する。
e^{x} = y \\
変形して x=\left[ \log{\left(y \right)}\right]\\
微分積分学の基本定理より\\
\frac{dy}{dx}=\frac{1}{x}\\
分子分母を置き換えて \frac{dx}{dy}=x\\
x=\exp(y)を代入して \frac{d}{dy}\exp(y)=\exp(y)\\
yをxに書き直して微分をダッシュで表すと \exp(x)'=\exp(x)\\
導関数が\exp(x)である以上、積分結果も \int e^x dx=e^{x}
ちなみに微分積分学の基本定理とは?
d/dx,d/dy,dy/dxについて
「d」はほとんど0に近い微小変化を意味し、微分はその時の傾き(変化の割合)を求める演算です。微分はそもそも分数式の極限に由来し計算上、分数と同じ様に扱える側面もあるのです。
- $\displaystyle \frac{d}{dx}$は$x$で微分する操作の記号。
- $\displaystyle \frac{d}{dy}$は$y$で微分する操作の記号。
【例題】 \frac{d}{dx}ax=a(例えばa \in \mathbb{Z})
- $\displaystyle \frac{dy}{dx}$ は $x$ で $y$ を微分する操作の記号。
【例題】 \frac{d}{dx}y^n=\frac{d}{dx}y^n \frac{dx}{dy}=ny^{n-1} \frac{dx}{dy}
検算過程
import sympy as sp
sp.var('x, y')
Ao = sp.Eq(x*y,1)
Ar = sp.solve(Ao,y)
Ae=1/x
Ai = sp.integrate(Ae,x)
Bo = sp.Eq(sp.exp(x), y)
Br = sp.solve(Bo, x)
Cd=sp.diff(sp.exp(x),x)
Ci= sp.integrate(sp.exp(x),x)
sp.init_printing()
display(Ao)
print(sp.latex(Ao))
display(Ar)
print( "y="+sp.latex(Ar))
display(Ai)
print( "\int" +sp.latex(Ae)+ "dx="+sp.latex(Ai))
display(Bo)
print(sp.latex(Bo))
display(Br)
print( "x="+sp.latex(Br))
display(Cd)
print( "exp(x)'="+sp.latex(Cd))
display(Ci)
print( "\int e^x dx="+sp.latex(Ci))
【初心者向け】三角関数と指数・対数関数の「巡回性」について。
三角関数の微分(それぞれが-90度の変遷に対応)
\cos(θ)\frac{d^n}{dθ^n}=(-\sin(θ),-\cos(θ),\sin(θ),\cos(θ),…)\\
\sin(θ)\frac{d^n}{dθ^n}=(\cos(θ),-\sin(θ),-\cos(θ),\sin(θ),…)
三角関数の積分(それぞれが+90度の変遷に対応)
\int \int \int … \int \cos(θ)(dθ)=(\sin(θ),-\cos(θ),-\sin(θ),\cos(θ),…)\\
\int \int \int … \int \sin(θ)(dθ)=(-\cos(θ),-\sin(θ),\cos(θ),\sin(θ),…)
円描画関数$e^{θi}=\cos(θ)+\sin(θ)$の微分(それぞれが-90度の変遷に対応)
(\cos(θ)+\sin(θ)i)\frac{d^n}{dθ^n}=(-\sin(θ)+\cos(θ)i,-(\cos(θ)+\sin(θ)i),-(-\sin(θ)+\cos(θ)i),\cos(θ)+\sin(θ)i,…)\\
e^{ix}\frac{d^n}{dθ^n}=(i e^{i x}(-\log θi),-e^{ix},-i e^{i x}(\log θi),e^{ix},…)
円描画関数$e^{θi}=\cos(θ)+\sin(θ)$の積分(それぞれが+90度の変遷に対応)
\int \int \int … \int (\cos(θ)+\sin(θ)i)(dθ)=(-(-\sin(θ)+\cos(θ)i),-(\cos(θ)+\sin(θ)i),-\sin(θ)+\cos(θ)i,\cos(θ)+\sin(θ)i,…)\\
\int \int \int … \int e^{ix}(dθ)=(- i e^{i x}(\log θi),- e^{i x},i e^{i x}(-\log θi),e^{ix},…)
そしてその数理的構造(Mathematical Structure)は確率ベクトル(Probability Vector)のそれと確実に似通っているのです。
数学的構造(すうがくてきこうぞう) - コトバンク