0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Pyrhon演算処理】自然指数関数(Natural Exponential Function)とは何か?

Last updated at Posted at 2022-05-13

自然指数関数(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$ をグラフ化してみます。

image.gif

%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)$ の値が重なるのは、ある意味自明の理といえましょう。
image.gif

%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)のそれと確実に似通っているのです。
数学的構造(すうがくてきこうぞう) - コトバンク

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?