0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【数学溢れ話】【Token】反比例関数と指数対数関数の回転

Posted at

線形関数(Liner Function)と反比例関数(Inverse Proportional Function)の連続性

冪乗関数$y=a^x(a,x \in \mathbb{R})$を用いれば、線形関数(Liner Function)y=x(y=x^1)と、その逆関数たる反比例関数(Inverse Proportional Function)$y=\frac{1}{x}(y=x^{-1})$を連続する関数表現(Continuous Function Expression)に収める事が出来ます。ただしaが特異点(Singular Point)0に収束する時、1対1対応が崩れた多価関数(Multivalued Function)となってしまうのです。

y=\lim_{a \to 0}a^x = \left\{
\begin{array}{ll}
y=-1 & (x>0)  \\
-1 < y < 1 & (x=0)  \\
y=1 & (x<0)
\end{array}
\right.

68747470733a2f2f63646e2d616b2e662e73742d686174656e612e636f6d2f696d616765732f666f746f6c6966652f6f2f6f6368696d7573686130312f32303231313030322f32303231313030323034343830362e676966.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(0,10,101,endpoint =True)
plt.style.use('default')
fig = plt.figure()
tcode=np.linspace(-1,1,41,endpoint =True)
Tcode=tcode[::-1]

def exponential(n):
    plt.cla()
    # 可視化
    plt.plot(X,X,color="green", label="y=x")
    plt.plot(-X,-X,color="green")
    plt.plot(X,1/X,color="purple", label="y=1/x")
    plt.plot(-X,-1/X,color="purple")
    Y1=X**Tcode[n]
    es="{:0<+5}".format(round(Tcode[n],3))
    ex01="y=X^("+es+")"
    plt.plot(X,Y1,color="blue", label=ex01)
    plt.plot(-X,-Y1,color="blue")
    #頂点
    plt.plot(1, 1,color="black", marker="o")
    plt.plot(-1, -1,color="black", marker="o")
    plt.plot(0, 1,color="black", marker="o")
    plt.plot(0, -1,color="black", marker="o")
    plt.plot(1,0,color="black", marker="o")
    plt.plot(-1,0,color="black", 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.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("Lineer Function → Inverse Proportional Function")
    ax = fig.add_subplot(111)
    ax.text(1, 1," (1,1)",color="black", size=9)
    ax.text(-1, -1," (-1,-1)",color="black", size=9)
    ax.text(0, 1," (0,1)",color="black", size=9)
    ax.text(0, -1," (0,-1)",color="black", size=9)
    ax.text(1, 0," (0,1)",color="black", size=9)
    ax.text(-1,0," (0,-1)",color="black", size=9)
    ax.set_aspect('equal')
    ax.legend(loc='lower center')
    #plt.show()

ani = animation.FuncAnimation(fig, exponential, interval=50,frames=len(Tcode))
ani.save("LtIP004.gif", writer="pillow")

ちなみにa>1の場合は以下の形に収束します。

y=\lim_{a=1 \to ∞}a^x = \left\{
\begin{array}{ll}
y=0 & (0<x<1)  \\
0 < y <∞ & (x=1)
\end{array}
\right.

68747470733a2f2f63646e2d616b2e662e73742d686174656e612e636f6d2f696d616765732f666f746f6c6966652f6f2f6f6368696d7573686130312f32303231313030322f32303231313030323036343235322e676966.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(0,10,101,endpoint =True)
plt.style.use('default')
fig = plt.figure()
Tcode=np.linspace(1,12,41,endpoint =True)

def exponential(n):
    plt.cla()
    # 可視化
    plt.plot(X,X,color="green", label="y=x")
    plt.plot(-X,-X,color="green")
    plt.plot(X,1/X,color="purple", label="y=1/x")
    plt.plot(-X,-1/X,color="purple")
    Y1=X**Tcode[n]
    es="{:0<+7}".format(round(Tcode[n],3))
    ex01="y=X^("+es+")"
    plt.plot(X,Y1,color="blue", label=ex01)
    plt.plot(-X,-Y1,color="blue")
    #頂点
    plt.plot(1, 1,color="black", marker="o")
    plt.plot(-1, -1,color="black", marker="o")
    plt.plot(0, 1,color="black", marker="o")
    plt.plot(0, -1,color="black", marker="o")
    plt.plot(1,0,color="black", marker="o")
    plt.plot(-1,0,color="black", 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.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("Lineer Function → Inverse Proportional Function")
    ax = fig.add_subplot(111)
    ax.text(1, 1," (1,1)",color="black", size=9)
    ax.text(-1, -1," (-1,-1)",color="black", size=9)
    ax.text(0, 1," (0,1)",color="black", size=9)
    ax.text(0, -1," (0,-1)",color="black", size=9)
    ax.text(1, 0," (0,1)",color="black", size=9)
    ax.text(-1,0," (0,-1)",color="black", size=9)
    ax.set_aspect('equal')
    ax.legend(loc='lower center')
    #plt.show()

ani = animation.FuncAnimation(fig, exponential, interval=50,frames=len(Tcode))
ani.save("LtIP006.gif", writer="pillow")

またa>-1の場合は以下の形に収束します。

y=\lim_{a=-1 \to -∞}a^x = \left\{
\begin{array}{ll}
0 < y< ∞ & (x=1)  \\
y = 0 & (x>1)
\end{array}
\right.

68747470733a2f2f63646e2d616b2e662e73742d686174656e612e636f6d2f696d616765732f666f746f6c6966652f6f2f6f6368696d7573686130312f32303231313030322f32303231313030323036323932382e676966.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(0,10,101,endpoint =True)
plt.style.use('default')
fig = plt.figure()
tcode=np.linspace(-12,-1,41,endpoint =True)
Tcode=tcode[::-1]
def exponential(n):
    plt.cla()
    # 可視化
    plt.plot(X,X,color="green", label="y=x")
    plt.plot(-X,-X,color="green")
    plt.plot(X,1/X,color="purple", label="y=1/x")
    plt.plot(-X,-1/X,color="purple")
    Y1=X**Tcode[n]
    es="{:0<+7}".format(round(Tcode[n],3))
    ex01="y=X^("+es+")"
    plt.plot(X,Y1,color="blue", label=ex01)
    plt.plot(-X,-Y1,color="blue")
    #頂点
    plt.plot(1, 1,color="black", marker="o")
    plt.plot(-1, -1,color="black", marker="o")
    plt.plot(0, 1,color="black", marker="o")
    plt.plot(0, -1,color="black", marker="o")
    plt.plot(1,0,color="black", marker="o")
    plt.plot(-1,0,color="black", 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.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("Lineer Function → Inverse Proportional Function")
    ax = fig.add_subplot(111)
    ax.text(1, 1," (1,1)",color="black", size=9)
    ax.text(-1, -1," (-1,-1)",color="black", size=9)
    ax.text(0, 1," (0,1)",color="black", size=9)
    ax.text(0, -1," (0,-1)",color="black", size=9)
    ax.text(1, 0," (0,1)",color="black", size=9)
    ax.text(-1,0," (0,-1)",color="black", size=9)
    ax.set_aspect('equal')
    ax.legend(loc='lower center')
    #plt.show()

ani = animation.FuncAnimation(fig, exponential, interval=50,frames=len(Tcode))
ani.save("LtIP010.gif", writer="pillow")

関数$y=a^x(a=-∞ \to 0 \to +∞)$の全体像を俯瞰すると以下。$1 \to -1$区間の通過なんて瞬く間に終わってしまいますね。
68747470733a2f2f63646e2d616b2e662e73742d686174656e612e636f6d2f696d616765732f666f746f6c6966652f6f2f6f6368696d7573686130312f32303231313030342f32303231313030343034323032352e676966.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(0,10,101,endpoint =True)
plt.style.use('default')
fig = plt.figure()
tcode=np.linspace(-12,12,41,endpoint =True)
Tcode=tcode[::-1]

def exponential(n):
    plt.cla()
    # 可視化
    plt.plot(X,X,color="green", label="y=x")
    plt.plot(-X,-X,color="green")
    plt.plot(X,1/X,color="purple", label="y=1/x")
    plt.plot(-X,-1/X,color="purple")
    Y1=X**Tcode[n]
    es="{:0<+5}".format(round(Tcode[n],3))
    ex01="y=X^("+es+")"
    plt.plot(X,Y1,color="blue", label=ex01)
    plt.plot(-X,-Y1,color="blue")
    #頂点
    plt.plot(1, 1,color="black", marker="o")
    plt.plot(-1, -1,color="black", marker="o")
    plt.plot(0, 1,color="black", marker="o")
    plt.plot(0, -1,color="black", marker="o")
    plt.plot(1,0,color="black", marker="o")
    plt.plot(-1,0,color="black", 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.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("Lineer Function → Inverse Proportional Function")
    ax = fig.add_subplot(111)
    ax.text(1, 1," (1,1)",color="black", size=9)
    ax.text(-1, -1," (-1,-1)",color="black", size=9)
    ax.text(0, 1," (0,1)",color="black", size=9)
    ax.text(0, -1," (0,-1)",color="black", size=9)
    ax.text(1, 0," (0,1)",color="black", size=9)
    ax.text(-1,0," (0,-1)",color="black", size=9)
    ax.set_aspect('equal')
    ax.legend(loc='lower center')
    #plt.show()

ani = animation.FuncAnimation(fig, exponential, interval=50,frames=len(Tcode))
ani.save("RS001.gif", writer="pillow")

ちなみにlog、すなわちx座標とy座標を入れ替えた場合の計算は以下。
68747470733a2f2f63646e2d616b2e662e73742d686174656e612e636f6d2f696d616765732f666f746f6c6966652f6f2f6f6368696d7573686130312f32303231313030392f32303231313030393033333632312e676966.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(0,10,101,endpoint =True)
plt.style.use('default')
fig = plt.figure()
tcode=np.linspace(-12,12,41,endpoint =True)
Tcode=tcode[::-1]

def exponential(n):
    plt.cla()
    # 可視化
    plt.plot(X,X,color="green", label="y=x")
    plt.plot(-X,-X,color="green")
    plt.plot(X,1/X,color="purple", label="y=1/x")
    plt.plot(-X,-1/X,color="purple")
    Y1=X**Tcode[n]
    es="{:0<+5}".format(round(Tcode[n],3))
    ex01="y=log("+es+",X)"
    plt.plot(Y1,X,color="blue", label=ex01)
    plt.plot(-Y1,-X,color="blue")
    #頂点
    plt.plot(1, 1,color="black", marker="o")
    plt.plot(-1, -1,color="black", marker="o")
    plt.plot(0, 1,color="black", marker="o")
    plt.plot(0, -1,color="black", marker="o")
    plt.plot(1,0,color="black", marker="o")
    plt.plot(-1,0,color="black", 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.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("log Function")
    ax = fig.add_subplot(111)
    ax.text(1, 1," (1,1)",color="black", size=9)
    ax.text(-1, -1," (-1,-1)",color="black", size=9)
    ax.text(0, 1," (0,1)",color="black", size=9)
    ax.text(0, -1," (0,-1)",color="black", size=9)
    ax.text(1, 0," (0,1)",color="black", size=9)
    ax.text(-1,0," (0,-1)",color="black", size=9)
    ax.set_aspect('equal')
    ax.legend(loc='lower center')
    #plt.show()

ani = animation.FuncAnimation(fig, exponential, interval=50,frames=len(Tcode))
ani.save("RS101.gif", writer="pillow")

それとなく感じられる特異点(Singular Point)としての観測原点0($a^{-∞}$)と観測限界∞($a^{+∞}$)の連続性…

交換法則(Commutative Law)の成立条件。

今度は別方向からのアプローチを試みましょう。交換法則は、例えば関数$Y=a^x$において対称式X=Y(a=1)か対称式XY=1(a=-1)になる場合に成立します。

X=Yの場合…y=x,-y=-xのなす平面がy=-x,-y=xのなす平面と直交します。
68747470733a2f2f63646e2d616b2e662e73742d686174656e612e636f6d2f696d616765732f666f746f6c6966652f6f2f6f6368696d7573686130312f32303231313030372f32303231313030373230303030302e676966.gif

#Inverse_Proportional_Function

%matplotlib nbagg
import math as m
import cmath as c
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.animation as animation

#反比例データ作成
X=np.linspace(-5,5,41,endpoint = True)

#グラフ表示
plt.style.use('default')
fig = plt.figure()
ax = Axes3D(fig)

#関数定義
def Inverse_Proportional_Function(n):
    plt.cla()
    #比例曲線描画(0度)
    ax.plot(X,X,X,color="blue",lw=1)
    for num in range(len(X)):
        ax.plot([0,X[num]],[0,X[num]],[X[num],X[num]],color="gray",lw=0.5)
    #比例曲線描画(180度)
    ax.plot(-X,-X,X,color="red",lw=1)
    for num in range(len(X)):
        ax.plot([0,-X[num]],[0,-X[num]],[X[num],X[num]],color="gray",lw=0.5)
    #比例曲線描画(90度)
    ax.plot(X,-X,X,color="green",lw=1)
    for num in range(len(X)):
        ax.plot([0,X[num]],[0,-X[num]],[X[num],X[num]],color="gray",lw=0.5)
    #比例曲線描画(-90度)
    ax.plot(-X,X,X,color="green",lw=1)
    for num in range(len(X)):
        ax.plot([0,-X[num]],[0,X[num]],[X[num],X[num]],color="gray",lw=0.5)

    #軸線追加
    ax.plot([-10,10],[0,0],[0,0],color="black",lw=1)
    ax.plot([0,0],[-10,10],[0,0],color="black",lw=1)
    ax.plot([0,0],[0,0],[-10,10],color="black",lw=1)
    #諸元追加
    ax.set_ylim([-5,5])
    ax.set_xlim([-5,5])
    ax.set_zlim([-5,5])
    ax.set_title("Unit Cylinder")
    ax.set_xlabel("X")
    ax.set_ylabel("X")
    ax.set_zlabel("X")
    # グラフを回転
    ax.view_init(elev=45, azim=Time_code[n])

Time_code0=np.arange(0,360,6) 
Time_code=Time_code0[::-1]
#Inverse_Proportional_Function(59)
#plt.show()
#xy=1=14
#-xy=1=44
#exp(X)=29
#-exp(X)=59

ani = animation.FuncAnimation(fig, Inverse_Proportional_Function, interval=50,frames=len(Time_code))
ani.save("PF003.gif", writer="pillow")

垂直軸に沿って眺めるとこう見えます。
68747470733a2f2f63646e2d616b2e662e73742d686174656e612e636f6d2f696d616765732f666f746f6c6966652f6f2f6f6368696d7573686130312f32303231313030372f32303231313030373139353932352e676966.gif
水平軸に沿って眺めるとこう見えます。
68747470733a2f2f63646e2d616b2e662e73742d686174656e612e636f6d2f696d616765732f666f746f6c6966652f6f2f6f6368696d7573686130312f32303231313030372f32303231313030373139353832312e676966.gif
全体として円錐を構成してますね。
68747470733a2f2f63646e2d616b2e662e73742d686174656e612e636f6d2f696d616765732f666f746f6c6966652f6f2f6f6368696d7573686130312f32303231313030372f32303231313030373230343335392e676966.gif
68747470733a2f2f63646e2d616b2e662e73742d686174656e612e636f6d2f696d616765732f666f746f6c6966652f6f2f6f6368696d7573686130312f32303231313030372f32303231313030373230343434392e676966.gif
68747470733a2f2f63646e2d616b2e662e73742d686174656e612e636f6d2f696d616765732f666f746f6c6966652f6f2f6f6368696d7573686130312f32303231313030372f32303231313030373230343533342e676966.gif

%matplotlib nbagg
import math as m
import cmath as c
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.animation as animation

#円柱データ作成
c0=np.linspace(0,m.pi*120,1201,endpoint = True)
s0=[]
for nm in range(len(c0)):
    s0.append(complex(m.cos(c0[nm]),m.sin(c0[nm])))
s1=np.array(s0)
z0=np.linspace(-1,1,1201,endpoint = True)

#「曲率」を計算
cv1=np.linspace(-1,1,1201,endpoint = True)
#cv1=num.sqrt(1-cv0**2)

#断面線(z)
cutz0=np.linspace(-1,1,61,endpoint = True)
cutz=cutz0[::-1]
cutx=np.abs(cutz)
cuty=np.repeat(0,61)

#単位円データ作成
u0=np.linspace(0,m.pi*2,61,endpoint = True)
u1=[]
for nm in range(len(u0)):
    u1.append(complex(m.cos(u0[nm]),m.sin(u0[nm])))
uc=np.array(u1)
uz0=np.repeat(-1,61)
uz1=np.repeat(-0,61)
uz2=np.repeat(1,61)

#グラフ表示
plt.style.use('default')
fig = plt.figure()
ax = Axes3D(fig)

#関数定義
def unit_cylinder(n):
    plt.cla()
    #円柱描画
    ax.plot(s1.real*cv1,s1.imag*cv1,z0,color="gray",lw=0.5)
    #スポーク描画
    for num in range(len(uc)):
        ax.plot([0,uc[num].real],[0,uc[num].imag],[0,0],color="purple",lw=0.5)
    #単位円描画
    ax.plot(uc.real,uc.imag,uz0,color="red",lw=1)
    ax.plot(uc.real,uc.imag,uz1,color="purple",lw=1)
    ax.plot(uc.real,uc.imag,uz2,color="blue",lw=1)
    #実数線追加
    ax.plot([0,0],[0,0],[-1,1],color="black",lw=1)
    ax.plot([0,0],[-1,1],[0,0],color="black",lw=1)
    ax.plot([-1,1],[0,0],[0,0],color="black",lw=1)
    ax.plot([-1,1],[0,0],[-1,1],color="blue",lw=1)
    ax.plot([1,-1],[0,0],[-1,1],color="red",lw=1)
    ax.plot([0,0],[-1,1],[-1,1],color="green",lw=1)
    ax.plot([0,0],[1,-1],[-1,1],color="green",lw=1)
    #諸元追加
    ax.set_ylim([-1.1,1.1])
    ax.set_xlim([-1.1,1.1])
    ax.set_zlim([-1.1,1.1])
    ax.set_title("Unit Cylinder")
    ax.set_xlabel("X")
    ax.set_ylabel("X")
    ax.set_zlabel("X")
    # グラフを回転(elev=0にすると水平表示に)
    ax.view_init(elev=25, azim=Time_code[n])

Time_code0=np.arange(0,360,6)  
Time_code=Time_code0[::-1] 
#unit_cylinder(len(s1))
#plt.show()

ani = animation.FuncAnimation(fig, unit_cylinder, interval=50,frames=len(Time_code))
ani.save("PF101.gif", writer="pillow")

自然指数関数y=exp(x)と反比例関数xy=1の関係…こちらも完全に対称式の枠内で展開。

xy=1=e^0=e^{p-p}(0<p<∞)=e^p e^{-p}(0<p<∞)

68747470733a2f2f63646e2d616b2e662e73742d686174656e612e636f6d2f696d616765732f666f746f6c6966652f6f2f6f6368696d7573686130312f32303231313030372f32303231313030373135353134382e676966.gif

#Inverse_Proportional_Function

%matplotlib nbagg
import math as m
import cmath as c
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.animation as animation

#反比例データ作成
Z=np.linspace(-2,2,41,endpoint = True)
X1=np.exp(Z)
X2=np.exp(-Z)

#グラフ表示
plt.style.use('default')
fig = plt.figure()
ax = Axes3D(fig)

#関数定義
def Inverse_Proportional_Function(n):
    plt.cla()
    #反比例曲線描画
    ax.plot(X1,X2,Z,color="blue",lw=1)
#    ax.plot(X2,X1,Z,color="red",lw=1)
    for num in range(len(Z)):
        ax.plot([0,X1[num]],[0,X2[num]],[Z[num],Z[num]],color="gray",lw=0.5)

    #軸線追加
    ax.plot([-10,10],[0,0],[0,0],color="black",lw=1)
    ax.plot([0,0],[-10,10],[0,0],color="black",lw=1)
    ax.plot([0,0],[0,0],[-10,10],color="black",lw=1)
    #諸元追加
    ax.set_ylim([-5,5])
    ax.set_xlim([-5,5])
    ax.set_zlim([-5,5])
    ax.set_title("Unit Cylinder")
    ax.set_xlabel("exp(X)")
    ax.set_ylabel("exp(-X)")
    ax.set_zlabel("X")
    # グラフを回転
    ax.view_init(elev=45, azim=Time_code[n])

Time_code0=np.arange(0,360,6) 
Time_code=Time_code0[::-1]
#Inverse_Proportional_Function(44)
#plt.show()
#exp(X)=14
#-exp(X)=44
#exp(-X)=29
#-exp(-X)=59

ani = animation.FuncAnimation(fig, Inverse_Proportional_Function, interval=50,frames=len(Time_code))
ani.save("IPF003.gif", writer="pillow")

垂直軸に沿って眺めると反比例関数xy=1のグラフが回転しています。
68747470733a2f2f63646e2d616b2e662e73742d686174656e612e636f6d2f696d616765732f666f746f6c6966652f6f2f6f6368696d7573686130312f32303231313030372f32303231313030373135343233392e676966.gif
水平軸に沿って眺めるとこう見えます。
68747470733a2f2f63646e2d616b2e662e73742d686174656e612e636f6d2f696d616765732f666f746f6c6966652f6f2f6f6368696d7573686130312f32303231313030372f32303231313030373135333434362e676966.gif

X軸
exp(X)…exp(-X)と直交
image.png
exp(X)(逆位相)…exp(-X)(逆位相)と直交
image.png
Y軸
exp(-X)…exp(X)と直交
image.png
exp(-X)(逆位相)…exp(X)(逆位相)と直交
image.png

自然対数関数y=log(x)と反比例関数xy=1の関係…自然対数関数y=log(x)の中身は自然指数関数y=exp(x)のxy逆転、すなわちx=exp(y)に他なりませんが、xy=1はexp(x)とexp(-x)の直積の結果なので以下の2通りの展開が存在するのです。いずれにせよどちらの展開も対称式の条件は満たしません。

x軸exp(x)、y軸x、z軸exp(-x)の置換
68747470733a2f2f63646e2d616b2e662e73742d686174656e612e636f6d2f696d616765732f666f746f6c6966652f6f2f6f6368696d7573686130312f32303231313030372f32303231313030373137323634382e676966.gif

#Inverse_Proportional_Function

%matplotlib nbagg
import math as m
import cmath as c
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.animation as animation

#反比例データ作成
Z=np.linspace(-2,2,41,endpoint = True)
X1=np.exp(Z)
X2=np.exp(-Z)


#グラフ表示
plt.style.use('default')
fig = plt.figure()
ax = Axes3D(fig)

#関数定義
def Inverse_Proportional_Function(n):
    plt.cla()
    #反比例曲線描画
    ax.plot(X1,Z,X2,color="blue",lw=1)
    for num in range(len(Z)):
        ax.plot([0,X1[num]],[0,Z[num]],[X2[num],X2[num]],color="gray",lw=0.5)

    #軸線追加
    ax.plot([-10,10],[0,0],[0,0],color="black",lw=1)
    ax.plot([0,0],[-10,10],[0,0],color="black",lw=1)
    ax.plot([0,0],[0,0],[-10,10],color="black",lw=1)
    #諸元追加
    ax.set_ylim([-5,5])
    ax.set_xlim([-5,5])
    ax.set_zlim([-5,5])
    ax.set_title("Unit Cylinder")
    ax.set_xlabel("exp(X)")
    ax.set_ylabel("X")
    ax.set_zlabel("exp(-X)")
    # グラフを回転
    ax.view_init(elev=0, azim=Time_code[n])

Time_code0=np.arange(0,360,6) 
Time_code=Time_code0[::-1]
#Inverse_Proportional_Function(59)
#plt.show()
#xy=1=14
#-xy=1=44
#exp(X)=29
#-exp(X)=59

ani = animation.FuncAnimation(fig, Inverse_Proportional_Function, interval=50,frames=len(Time_code))
ani.save("IPF203.gif", writer="pillow")

垂直軸に沿って眺めるとx=exp(y)すなわちy=log(x)が回転しています。
68747470733a2f2f63646e2d616b2e662e73742d686174656e612e636f6d2f696d616765732f666f746f6c6966652f6f2f6f6368696d7573686130312f32303231313030372f32303231313030373137323435382e676966.gif
水平軸に沿って眺めるとこう見えます。
68747470733a2f2f63646e2d616b2e662e73742d686174656e612e636f6d2f696d616765732f666f746f6c6966652f6f2f6f6368696d7573686130312f32303231313030372f32303231313030373137323034362e676966.gif
X軸
xy=1…x=exp(-y)と直交
image.png
xy=1(逆位相)…x=exp(-y)(逆位相)と直交
image.png
Y軸
x=exp(-y)(逆位相)…1/X(逆位相)と直交
image.png
x=exp(-y)…xy=1と直交
image.png

x軸x、y軸exp(-x)、z軸exp(x)の置換
68747470733a2f2f63646e2d616b2e662e73742d686174656e612e636f6d2f696d616765732f666f746f6c6966652f6f2f6f6368696d7573686130312f32303231313030372f32303231313030373138303031362e676966 (1).gif

#Inverse_Proportional_Function

%matplotlib nbagg
import math as m
import cmath as c
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.animation as animation

#反比例データ作成
Z=np.linspace(-2,2,41,endpoint = True)
X1=np.exp(Z)
X2=np.exp(-Z)

#グラフ表示
plt.style.use('default')
fig = plt.figure()
ax = Axes3D(fig)

#関数定義
def Inverse_Proportional_Function(n):
    plt.cla()
    #反比例曲線描画
    ax.plot(Z,X2,X1,color="blue",lw=1)
    for num in range(len(Z)):
        ax.plot([0,Z[num]],[0,X2[num]],[X1[num],X1[num]],color="gray",lw=0.5)

    #軸線追加
    ax.plot([-10,10],[0,0],[0,0],color="black",lw=1)
    ax.plot([0,0],[-10,10],[0,0],color="black",lw=1)
    ax.plot([0,0],[0,0],[-10,10],color="black",lw=1)
    #諸元追加
    ax.set_ylim([-5,5])
    ax.set_xlim([-5,5])
    ax.set_zlim([-5,5])
    ax.set_title("Unit Cylinder")
    ax.set_xlabel("X")
    ax.set_ylabel("exp(-X)")
    ax.set_zlabel("exp(X)")
    # グラフを回転
    ax.view_init(elev=0, azim=Time_code[n])

Time_code0=np.arange(0,360,6) 
Time_code=Time_code0[::-1]
#Inverse_Proportional_Function(59)
#plt.show()
#xy=1=14
#-xy=1=44
#exp(X)=29
#-exp(X)=59

ani = animation.FuncAnimation(fig, Inverse_Proportional_Function, interval=50,frames=len(Time_code))
ani.save("IPF303.gif", writer="pillow")

垂直軸に沿って眺めるとx=exp(-y)が回転しています。
68747470733a2f2f63646e2d616b2e662e73742d686174656e612e636f6d2f696d616765732f666f746f6c6966652f6f2f6f6368696d7573686130312f32303231313030372f32303231313030373137353933392e676966.gif
水平軸に沿って眺めるとこう見えます。
68747470733a2f2f63646e2d616b2e662e73742d686174656e612e636f6d2f696d616765732f666f746f6c6966652f6f2f6f6368696d7573686130312f32303231313030372f32303231313030373137353930312e676966.gif
X軸
log(x)…1/xと直交
image.png
log(x)(逆位相)…1/X(逆位相)と直交
image.png
Y軸
1/X(逆位相)…log(x)(逆位相)と直交
image.png

1/X…log(x)と直交
image.png

  • 以前からどうして対数尺(Logarithmic Scale)はあるのに指数尺(Exponential scale)**がないのか疑問だったのですが、「指数写像(Exponential Map)の定義域はあくまで均等尺(Even Scale)」「これを均等尺に戻す為に対数写像(Logarithmic Map)の定義域は対数尺である必要がある」が正解で、その由来はかかる座標置換にあった訳です。中高生でも理解出来てる人はちゃんと理解出来てる数理?
    【Python演算】オイラーの公式と等比数列④「中学生には難しいが高校生なら気付くレベル」?
  • で、指数尺といえば思い出すのが「ヴェーバー‐フェヒナーの法則」。この概念自体は「識閾=1を超えてからの認識展開」が対象ですが、ある意味「識閾=1を超えるまでの認識展開」を扱うニューロンコンピューティング(機械学習の始祖)と補完関係にある?
    【数理考古学】ヴェーバー‐フェヒナーの法則

もはや対称式の条件は満たしていませんが、全てがZ軸に対して正方向のみの展開となる点に有用性が見受けられます。

そんな感じで以下続報…

0
0
0

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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?