概要
手計算を行う際、足し算や引き算に比べて掛け算や割り算は時間がかかる。累乗はさらに時間を要する。計算機がまだ開発されていなかった頃、数値の計算には多大な時間を要した。ここで、指数法則と言われる、下の式を見てほしい。
ax × ay = ax+y
(ax)y = axy
この式を見ると、掛け算を指数の足し算として、累乗を指数の掛け算として表されているのがわかる。つまり、あらゆる数をある数の累乗で表すことによって、計算の手間を省けると考えたのだ。厳密な計算には向いていないが、手間をかけずに概数を得ることはできるので、物理学や工学等で重宝された。
ニコニコ動画では対数より自然対数の底eのほうが好かれているようだ。
定義
ay = x (a>0,a≠1) であるとき、yをaを底とするxの対数といい、y = logax と書く。
logaxy = logax + logay
logaxy = y logax
となる。さらに詳しく知りたい方はWikipediaの対数、自然対数参照。
実際にやってみよう
- 紙と鉛筆、対数表を用意しよう。計算機は使わないでね。
- 2つの数を適当に決めよう。桁数が多いほうがいいよ。
- まずは普通に掛けてみよう。
- 今度は2つの数を対数表で変換して、足してみよう。
- 対数表を逆に使って、できた数を変換しよう。
- 普通に掛けた数と比べてみよう。どうなったかな?
指数の反対の概念?
具体例
2のx乗(すなわち2x)をPower(x)とするPower関数を作って表現すると、例えば2の5乗(25)はPower(5)と表現され、Power(5) = 32 となる。
ここでPower関数の逆関数(InvPower(x)とする)を考えると、例えばPower(5) = 32 であるから InvPower(32) = 5となる。
Power(x)とは"(2の)x乗は何の数になるか?"であり、その逆関数であるInvPower(x)とは"xは(2の)何乗となるか?"である。上の方に書いてある対数の定義よりInvPower(x)はlog2(x)のことであり、つまりlog2(x)は2x(を関数で表現したPower(x))の逆関数ということになる。
結局何が便利なの?
乗算を加算にしたり、べき乗を乗算にしたりすることで、面倒臭い計算を1段下の簡単な計算に直すことができる。
さらには一番面倒な部分の計算を「対数表から値を引っ張ってくる」という単純な操作に置き換えることができるため、より素早く、簡単に計算できるようになる。昔の人が命を削って作った対数表に乗っかって楽をするためのフレームワークであると考えてもいいかもしれない。
バカでかい数字を取り扱う天文学者たちは、この対数の登場により寿命がぐっと伸びた、とも言われている(らしい)。
代表的な対数
対数を扱うときは底を固定するのがほとんどだが、有用性の高い底がしばしば用いられる。特によく使われるものが以下に挙げる3つで、状況に応じて使い分ける。どれも底を省略して log x と書かれる。同じ文章の中で下記を混在させて log x と書くことはないが、単に log x と書いた場合には底が何であるかを明確にしなければいけない。
自然対数
底がネイピア数である対数。
ln x とも書く。xを変数とする対数関数は微分積分が容易なため、数学で対数というと自然対数を意味していることがほとんど。
常用対数
底が10である対数。
例: log1010 = 1、log10100 = 2、log101000 = 3、…
これは、一、十、百、千、万、…を、0、1、2、3、4 に変換するもので、元の数の桁数や、一十百千万の0の数がわかるので、10進数に慣れ親しんだ我々にとって非常に親切。液性を示すpH等に用いられている。
二進対数
底が2である対数。
10進数の世界における常用対数と同じように、2進数の世界では二進対数の使い勝手がよい。また、アルゴリズムで頻出する「ある集合を半分に分割して、その集合を半分に分割して、…」のように「半分」のからむ操作の計算量にlog2nが出てきやすい。これらの特徴から、計算機科学や情報理論の分野で主に用いられている。パソコンでお馴染みの情報量の単位である「ビット」もこの二進対数を用いて定義される。
略した書き方は「lg x」「ld x」「lb x」と色々あり、落ち着かない。しかも実際によく使われるのはlog x。
対数関数
logax において、xを変数とする関数。
真数条件により定義域は x>0 である。指数関数 ax の逆関数であり、グラフは必ず(1,0)を通る。 a>1 なら上に凸な単調増加、 a<1 なら下に凸な単調減少。xの値を限りなく大きくしていくと、logax の絶対値は緩やかではあるものの、限りなく大きくなる。一方xの値を0に近づけると、logax の絶対値は(方向は先程と逆だが)すごい勢いで大きくなる。
複素関数としての自然対数
オイラーの公式を用いて、自然対数の定義域をより広い複素数の範囲にまで拡張できる。
※以下、x>0 の実自然対数(自然対数の項で既に定義したもの)を ln x と表し、
複素数zの自然対数(これから定義するもの)を log z と表す。
z = r (cosθ+ i sinθ)
= eln reiθ
= eln r + iθ
が成り立つ。ここから、
となるのがわかる。但し、z=0 のときは絶対値が0になるので、log z は定義できない。
よって定義域はz≠0。
また、θは無数の値をとり得るので、log z は多価関数(ひとつの値に対し、複数の値を返す関数)となる。
関連動画
関連項目
- 9
- 0pt