不思議なlog関数−数学−

2005/8/2
log(ログ)関数。情報工学のエントロピーを説明しようと思ったら長くなったので別ファイルに。

この関数の役目は、動きを鈍くすることだ。うぅん、むつかしい。
具体的な例を示そう。関数電卓をポンポンと叩きながら。
y = loge(x)
ってのを計算してみよう。logの後ろに小さくeがくっついてるのに気がついたヒトはめざといけど、まだ気にしないでおこう。そして以下そのeは省略。

log(0) = Error!
log(1) = 0
log(2) = 0.6931…
log(3) = 1.0986…
log(10) = 2.3026…
log(20) = 2.9957…
log(30) = 3.4012…
log(40) = 3.6889…
log(100) = 4.6052…
log(1000) = 6.9078…
log(10000) = 9.2103…
さぁコレを見て気がつくことは何だろう。
まず、入力が0のときにエラーになってる。log(0)は存在しないってことだ。
そして、log(1)=0。1を入れると0が出てくる…?
2だと、3だと…と見ていくと、2と3の間で1になる点がありそうだ。
これから先は、ひとつひとつ見てもわかりにくい。
20から10を引いてみる。(入力の数値を10から20にしたときの変化)は、2.9957-2.3026で0.6931…あれ?どっかで見たけどひとまず置いとく。
30から20を引いてみる。入力の変化分は同じ10なんだけど、3.4012-2.9957で、0.4055…あれ、小さくなってる。
40から30を引くと3.6889-3.4012で0.2877…どんどん小さくなっていく…
…これがlogのキホンの性質、「入力が大きいほど、入力が増えても出力の増え具合がどんどん小さくなるってこと。これが、さっき「動きを鈍くする」って言った理由。
そして、さっきの見覚えのある数字。0.6931。log(2)なんだけど、よく考えるとlog(1)=0だから、0.6931 = log(2)-log(1)とも考えられる。
そしてlog(20)-log(10) = 0.6931。両者の関係はなんだ?ってことで考えると、2倍になってる。入力を2倍にすると、0.6931増える。この0.6931ってのを決めるのがさっき脇にくっついてたeってやつ。
同じように、100-10、1000-100、10000-1000は、2.3026になる。…つまり、掛け算が足し算になる、ってこと。
蛇足だが、計算尺ってのは、この仕組みを利用して作られてる。

まだまだ性質はあるんだけど、こんな関数がlog関数ってやつ。
わかったかな?

そのうち、追記予定。

「雑文」に戻る

フレームが表示されていない場合はここから再入室お願いします。