概説はこちら。
- Y=e^Xiの極限={-∞~0,0~1},{0,1},{0~1,1~∞}
- X=log(Xi)の極限={0~1,-∞~0},{1,0},{1~∞,0~1}
- Y=e^-Xiの極限={-1~0,∞~1},{0,1},{0~∞,1~0}
- X=log(-Xi)の極限={0~1,∞~0},{1,0},{1~∞,0~-1}
- Y=-e^Xiの極限={-∞~0,0~-1},{0,-1},{0~1,-1~-∞}
- X=-log(Xi)の極限={-∞~-1~1,1~0},{-1,0},{-1~0,0~-∞}
- Y=-e^-Xiの極限={-1~0,-∞~-1},{0,-1},{0~∞,-1~0}
- X=-log(-Xi)の極限={-∞~-1,-1~0},{-1,0},{-1~0,0~∞}
統計言語Rによるコーディング例。
#各指数関数・対数関数の交差点
Graph_scale_x<-c(-2,2)
Graph_scale_y<-c(-2,2)
theta <- seq(pi, -pi, length=360)
plot(cos(theta), sin(theta),asp=0,xlim=Graph_scale_x,ylim=Graph_scale_y,type="l",col=rgb(0,0,0), main="Exponential & Logarithmic", xlab="X", ylab="Y")par(new=T)#上書き指定
#指数関数
e0<-function(x){exp(x)}
plot(e0,asp=0,xlim=Graph_scale_x,ylim=Graph_scale_y,type="l",col=rgb(0,0,1), main="",xlab="",ylab="")
par(new=T)#上書き指定
e1<-function(x){exp(-x)}
plot(e1,asp=0,xlim=Graph_scale_x,ylim=Graph_scale_y,type="l",col=rgb(0,0,1), main="",xlab="",ylab="")
par(new=T)#上書き指定
e2<-function(x){-1*exp(x)}
plot(e2,asp=0,xlim=Graph_scale_x,ylim=Graph_scale_y,type="l",col=rgb(0,0,1), main="",xlab="",ylab="")
par(new=T)#上書き指定
e3<-function(x){-1*exp(-x)}
plot(e3,asp=0,xlim=Graph_scale_x,ylim=Graph_scale_y,type="l",col=rgb(0,0,1), main="",xlab="",ylab="")
par(new=T)#上書き指定#対数関数
tc <- seq(-6, 6, length=60) #-6から6までを60等分
l0<-function(x){exp(x)}
tcvals0 <- l0(tc) #それぞれの縦軸の値
plot(tcvals0,tc,asp=0,xlim=Graph_scale_x,ylim=Graph_scale_y,type="l",col=rgb(0,1,0), main="",xlab="",ylab="")
par(new=T)#上書き指定l1<-function(x){exp(-x)}
tcvals1 <- l1(tc) #それぞれの縦軸の値
plot(tcvals1,tc,asp=0,xlim=Graph_scale_x,ylim=Graph_scale_y,type="l",col=rgb(0,1,0), main="",xlab="",ylab="")
par(new=T)#上書き指定
l2<-function(x){-1*exp(x)}
tcvals2 <- l2(tc) #それぞれの縦軸の値
plot(tcvals2,tc,asp=0,xlim=Graph_scale_x,ylim=Graph_scale_y,type="l",col=rgb(0,1,0), main="",xlab="",ylab="")
par(new=T)#上書き指定
l3<-function(x){-1*exp(-x)}
tcvals3 <- l3(tc) #それぞれの縦軸の値
plot(tcvals3,tc,asp=0,xlim=Graph_scale_x,ylim=Graph_scale_y,type="l",col=rgb(0,1,0), main="",xlab="",ylab="")
#90度(π/2)の補助線
abline(h=0)
abline(v=0)
#45度(π/4)の補助線
segments(-8,-8,8,8,col=c(128,128,128))
segments(-8,8,8,-8,col=c(128,128,128))
#18度(π/10)/72度の補助線
segments(-8,-(sin(pi/10))*8,8,(sin(pi/10))*8,col=c(128,128,128))
segments(-8,(sin(pi/10))*8,8,-1*(sin(pi/10))*8,col=c(128,128,128))
segments(-(sin(pi/10))*8,-8,(sin(pi/10))*8,8,col=c(128,128,128))
segments*1*8,-8,-1*(sin(pi/10))*8,8,col=c(128,128,128))
legend("bottomleft", legend=c("±e^±x","±log(±x)"),lty=c(1,1),col=c(rgb(0,0,1),rgb(0,1,0)))
(航海や測量に欠かせない)円周率や三角関数の数表の制度追求要求が17世紀に対数関数を、18世紀に指数関数を発見させました。人類の数学史ではこの時代が一つのパラダイムシフトとなっています。
a=0の時
- ① a^0 = 1
統計言語Rによる計算例
*a=1の場合の結果は全て1となる。3^0
[1] 12^0
[1] 11^0
[1] 1a ≠ 0で、nが正の数の時
- ② a^-n = 1/a^n
統計言語Rによる計算例(計算機代数ソフトウェアYacas使用)
library(Ryacas)
#1の段
yac("1^-1") #1/1^1
[1] "1"
yac("1^-2") #1/1^2
[1] "1"
yac("1^-3") #1/1^3
[1] "1"
#2の段
yac("2^-1") #1/2^1
[1] "1/2"
yac("2^-2") #1/2^2
[1] "1/4"
yac("2^-3") #1/2^3
[1] "1/8"
#3の段
yac("3^-1") #1/3^1
[1] "1/3"
yac("3^-2") #1/3^2
[1] "1/9"
yac("3^-3") #1/3^3
[1] "1/27"*a=1の場合の結果は全て1となる。
a ≠ 0で、m、nが正の数の時
- ③ a^m*a^n = a^(m+n)
統計言語Rによる計算例
2^3*2^4
[1] 128
2^(3+4)
[1] 128*この性質を利用して乗算を加算に単純化可能。
- ④ (a^m)^n = a^(m*n)
統計言語Rによる計算例
(2^3)^4
[1] 4096
2^(3*4)
[1] 4096*この性質を利用して累乗算を乗算に単純化可能。
- ⑤ a^m/a^n = a^(m-n)
統計言語Rによる計算例(計算機代数ソフトウェアYacas使用)
library(Ryacas)
#計算結果
yac("2^3/2^4")
[1] "1/2"
yacas("2^(3-4)")
[1] "1/2"*この性質を利用して除算を減算に単純化可能。
a ≠ 0、b ≠ 0で、m、nが整数の時
- ⑥ (a*b)^n = a^n*b^n
統計言語Rによる計算例
(2*3)^4
[1] 1296
2^4*3^4
[1] 1296*実はここに列記した「指数関数7大法則」の中では、次に述べる「(a/b)^n = a^n/b^n」法則同様にあまり使われない。理由は後述。
- ⑦ (a/b)^n = a^n/b^n
統計言語Rによる計算例(計算機代数ソフトウェアYacas使用)
library(Ryacas)
#計算結果
yac(" (2/3)^4")
[1] "16/81"
yac("2^4/3^4")
[1] "16/81"*わざわざYacasを使ったのは、この計算があくまで「有理数(Rational number)」すなわち「分数(Fraction)で表せる範囲」に留まっている事を示すため。
ところで、指数関数y=a^xをx=a^yに変形すると対数関数y=log(x,base=a)となり、当然上掲の指数法則がそのまま逆対応する。
- ① log(1,base=a) = 0(ただしa が1でない正の数のとき)
統計言語Rによる計算例
log(1,base=1)
[1] NaN
警告メッセージ:
計算結果が NaN になりました
log(1,base=2)
[1] 0
log(2,base=2)
[1] 1
log(1,base=3)
[1] 0
log(3,base=3)
[1] 1*指数関数で「底(base,root)」が0になってはいけない様に、対数関数ではそれが1になってはならない。なお、Log関数はbase=指数の時に1を返す。
② log(-n,base=a) = 1/log(n,base=a) (ただしmnが正の数,a が1でない正の数の時)
統計言語Rによる計算例
log(1/2,base=2)
[1] -1
1/log(1/2,base=2)
[1] -1*後述する理由により、こういう時計算機代数ソフトウェアYacasは役に立たないのである。
- ③log(m^n,base=a) = n*log(m,base=a)(x・yが正の数,a が1でない正の数のとき)
統計言語Rによる計算例
log(3^4,base=2)
[1] 6.33985
4*log(3,base=2)
[1] 6.33985*ここでは乗算が指数上の類乗算に置換される。
④log(m*n,base=a) = log(m,base=a)+log(n,base=a)
統計言語Rによる計算例log(3*4,base=2)
[1] 3.584963
log(3,base=2)+log(4,base=2)
[1] 3.584963*ここでは加算が指数上の乗算に置換される。
⑤ log(b,base=a)-log(c,base=a)=log(b/c,base=a)
統計言語Rによる計算例
log(3/4,base=2)
[1] -0.4150375
log(3,base=2)-log(4,base=2)
[1] -0.4150375*ここでは減算が指数上の除算に置換される。
- ⑥log(a,base=b) = log(b,base=c)/log(a,base=c)
統計言語Rによる計算例
log(2,base=3)
[1] 0.6309298
log(2,base=4)/log(3,base=4)
[1] 0.6309298*しばしば「根(base,root)の変換式」と呼ばれる。
その一方で指数関数(The exponential function)や対数関数(Logarithmic function)における指数(Index)の分数表現や少数表現は平方根(The square root)や立方根(The cube root)概念、ひいては正多角形(Regular polygon)と内接円(Inscribed circle)/外接円(Circumscribed circle)の追求を経て「円周率Pi(3.141593…)」の近似問題に至る。そう「目盛り設定(Scale setting)」や「正規化(Normalization:合計値または積分値を1にする)」作業の本質もまさに「周期関数(Periodic function)」の設定基準に準拠するのである。
*1:sin(pi/10