答えが3つあるlog
Excelのセルに=LOG(100)と打つと、答えは2だ。Pythonでmath.log(100)を実行すると、4.605170185988092が返る。情報理論の本の流儀で読めば、同じは6.643856…になる。
どれも間違っていない。
違うのは、書かれていない底である。Excelは10を、Pythonはネイピア数を、情報理論の本は2を、黙って補っている。は「ログ」、は「エルエヌ」と読み、の底はに決まっている。ところがの底は、道具と分野で入れ替わる。
しかも3つの答えは、ばらばらの数ではない。4.60517を2で割ると2.3026、6.64386を2で割ると3.3219。100を1000に変えると答えは3、6.90776、9.96578になるが、3で割った結果はやはり2.3026と3.3219である。
では、底を書かないに出会ったら、どう読めばよいのだろうか。
ログ、エルエヌ、ナチュラルログ
は英語のlogarithmの頭3文字で、日本語では「ログ」と読む。底を添えたは「ログ2の8」、ていねいに言えば「2を底とする8の対数」である。金沢工業大学の教材にも、は「ログaのN」と読むとある1。
| 式 | 日本語 | 英語 |
|---|---|---|
| ログエックス | log x | |
| ログ2の8 | log base 2 of 8 | |
| ログ10のエックス、エックスの常用対数 | log base 10 of x、the common log of x | |
| エルエヌエックス、エックスの自然対数 | the natural log of x |
は対数と「自然」を合わせた記号だ。日本大百科全書によれば、ラテン語のlogarithmus naturalisを略した形である。1文字目は小文字のエルで、新潟大学の講義資料には、大文字のアイではないから「いん」とは読まない、とわざわざ注がある。たしかに書体によっては、は「In」に見える。
の読み方は1つに定まっていない。岐阜工業高等専門学校の計測工学の資料には、ナチュラルログ、エルエヌ、ローンの3つが並ぶ。英語で迷わないのはthe natural log of xである。
何を何回掛けるか
は、「2を3回掛けると8になる」という1行である。掛ける数の2が底(てい)で、英語ではbase。できあがる8が真数(しんすう)で、3がその対数だ。累乗と指数の読み方で読んだを、右肩の3について解いた形にあたる。
読むときは、日本語でも英語でも底が先で、真数があとになる。
底を書かないは、この図の2の場所が空いている式だ。は、その場所にが入ったを短く書いたものである。
底は物差しの目盛り
は、1からまでの道のりを「倍の積み木」で測った個数と読める。100までの道のりは、2倍の積み木なら6個と少し、倍なら4個と少し、10倍ならちょうど2個で埋まる。
端数にも意味がある。2倍の積み木を6個並べると64で、100までは残り1.5625倍。なので、この端数が0.644個ぶんになる。
道のりそのものは、どの底でも変わらない。同じ距離をメートルとフィートで測ると数字は変わるのに、2つの比はいつも同じである。の答えも同じで、10倍の積み木1個が2倍の積み木3.3219個ぶん、倍の積み木2.3026個ぶんの長さだから、比はによらず一定になる。
つまり、底を取り替えるのは、単位を取り替えるのと同じことなのである。
3列の積み木を一緒に伸ばす
底を2、、10から選ぶと、その列の積み木に掛け算の途中の値が付く。列を横になぞるかのつまみを動かすと、3列の個数が一緒に伸び縮みし、読み出しの比は3.3219、2.3026、1.4427のまま動かない。を1より小さくすると積み木は左へ伸び、値は負になる。「横軸を対数目盛りに」を押すと、下のグラフの3本の曲線は点を通る直線に変わる。
底の取り替えを1行ずつ
比が一定になる理由は、指数の形に戻すと見えてくる。ここではを1以外の正の数、を正の数とする。
-
をとおき、指数の形に直す。
-
両辺の自然対数をとる。
-
指数を前に出す。
-
について解く。底の違いは、に掛かる定数に収まった。
-
を入れる。である。
-
を入れる。である。
-
2つの比をとると、が消える。ではどの底でも0なので、比はで考える。
-
手順4を微分する。を使う。
手順8のに、数学のがを指す理由がある。ならで、導関数はただのになる。底10なら微分するたびに0.4343が付いて回り、を底10で書けば2.3026が混ざる。
定数と組になる底
では、実際の式のはどれを指しているのか。読むときは、まず底で答えが変わる式かどうかを見る。
ボルツマンの墓に刻まれたのは、自然対数である。ボルツマンのエントロピーの証明をたどると、底を決めているのは熱のほうだと分かる。1 molの理想気体を等温で2倍の体積に広げるとき、から出るによって、エントロピーは J/K増える。このとき並び方の数は倍になり、なので、が熱の計算と合うのは底がのときだけだ。
測定もこれを裏付ける。氷に残るエントロピーをポーリングは1935年にと見積もり、その3.37 J/(mol·K)は測定値の約3.4とそろった。底10で読むと1.46で、半分にも届かない。
もっとも、底10で書けないわけではない。なので、定数をの2.3026倍にすれば同じが出る。 J/Kという値は、底と組で決まっている。
シャノンの情報エントロピーのでは、この組の関係がもっとはっきりする。シャノンは1948年の論文で、定数は測る単位を選ぶことにすぎないとし、「対数の底の選択は、情報を測る単位の選択にあたる」と書いた。底2ならビット、底10ならdecimal digit、底ならnatural unitで、同じ箇所のは手順7の比そのものだ。表と裏が半々の硬貨を1回投げた情報は、1ビット、0.693 natural unit、0.301 decimal digitで、どれも同じ量を指す。
だから、情報理論の本でも流儀は割れる。スタンフォード大学のJohn Duchiは講義ノートで「情報理論の研究者に謝らなければならない」と断り、をすべて底で書く。分析に都合がよく、微分もずっと楽になるからだという。
取り替えられない底、消える底
では、どの式でも底を選べるのだろうか。素数定理のでは、取り替えられない。は比が1に近づくことを表し、定数倍のずれを許さないからだ。
| 168 | 145 | 333 | 100 | |
| 78,498 | 72,382 | 166,667 | 50,172 | |
| 50,847,534 | 48,254,942 | 111,111,111 | 33,447,777 |
で比べると、の列は素数の個数の0.949倍まで迫る。底10の列は2.19倍、底2の列は0.66倍で、を限りなく大きくしても、2.3026倍と0.6931倍にしか近づかない。
と明記された式も同じ側にある。ツィオルコフスキーの公式のも、放射性崩壊のも、やの積分からが出てくる。たとえば噴射の速さ3.0 km/sのロケットが質量の半分を燃やすとは約2.1 km/sだが、電卓のLOGボタンで打つと約0.90 km/sと出てしまう。
一方で、底が消える式もある。炭素14の年代はどうしの比なので、分子と分母の底をそろえれば、どの底でも答えは同じだ。半減期5730年で残りが60%なら約4200年。ところが分子を底10、分母を底で計算すると、約1830年になる。
プログラムの計算量でも底は消える。定数倍の違いをの中では問わないからだ。スタンフォード大学のアルゴリズムの授業CS161の資料には、底のないを見たら「底は関係ないと考えてよい」とある。資料を書いたIan Tullisは、高校では底10だったが大学の化学や生物では底に変わり、計算機科学では底2も加わると振り返る。
辞典でも割れる省略
底の省き方は、辞典どうしでも食い違う。コトバンクで引くと、デジタル大辞泉の「自然対数」には「ふつう底を略してlog xと書く」とあり、ブリタニカ国際大百科事典 小項目事典の「常用対数」には「普通底の10を省略して、単にlog xで表わす」とある。
どちらかが誤りというより、書き手の分野が違うのだろう。Wolfram MathWorldによると、電卓と初等的な教科書ではが底10を指し、数学者と程度の高い数学書では自然対数を指す。新潟大学の資料はもっとはっきりしていて、を自然対数として扱うのは「数学の世界だけのこと」で、化学を含む多くの分野では常用対数だという。
日本の高校は、この2つをまたぐ。文部科学省の学習指導要領解説では、数学IIの用語にと常用対数が、数学IIIの用語に自然対数とが入る。解説の例も、数学IIではと底を書き、数学IIIの微分法ではと底を書かない2。
このずれは教室で事故を起こす。東京工科大学の江頭靖幸教授は2015年のブログで、化学工学の授業で自然対数をと書いたところ、小テストで常用対数と取り違える学生が続出したと明かしている。話を聞くと「関数電卓でLOGのボタンを使って計算した」のだった。
規格では、底ごとに記号が分かれている。米国NISTのSI使用ガイドSP 811には、国際規格ISO 31-11(後継はISO 80000-2)の記号として、、が載っている。
ただ、も安心できない。MathWorldによるとには「矛盾する意味がいくつかある」。ドイツやロシアの文献では底10、数論の文献の一部では底2だという。添字すら底とは限らず、イヴィッチの2003年の論文ではがを表す。
Log.からlnまで
記号のは、ピリオドを落としながら17世紀に今の形になった。ジェフ・ミラーの資料によると、Log.という略記は、ネイピアの本をエドワード・ライトが英訳した1616年の版に現れる。1624年のケプラーは大文字のLog.を使った。1632年のカヴァリエリは小文字のlog.、1647年版のオートレッド『Clavis mathematicae』はピリオドのないlogである。
底が10に決まったのは、記号より先である。対数の法則の記事にあるとおり、ネイピアとブリッグスは1615年の夏に、底を10にした表への作り直しで合意した。「自然対数」の名は少し遅れ、1659年のピエトロ・メンゴリの本にラテン語で現れる。
オイラーは1748年の『無限解析序説』のラテン語版で、自然対数を1文字ので書いた。
の記号が確認できるのは、ずっと下って1893年である。アーヴィング・ストリンガムが『Uniplanar Algebra』で使った3。ライトの英訳のLog.から277年後だ。
1回打って底を見分ける
道具の底は、説明書を読むよりを1回打つほうが早い。答えが2なら底10、4.605なら底、6.644なら底2である。
| 打つもの | 底 | 答え |
|---|---|---|
| 一般的な関数電卓のLOGボタン | 10 | 2 |
Excelのセル=LOG(100) | 10 | 2 |
Excel VBAのLog(100) | 4.605… | |
Pythonのmath.log(100) | 4.605… | |
JavaScriptのMath.log(100) | 4.605… | |
PostgreSQLのlog(100) | 10 | 2 |
SQLiteのlog(100) | 10 | 2 |
MySQLのLOG(100) | 4.605… |
表で目を引くのは、同じExcelの中でセルとVBAの底が違うことだろう。SQLも1つにまとまらず、SQLiteの文書には、他の多くのデータベースは自然対数だと断り書きがある。Python、Node.js、SQLite、MySQLは筆者の手元で動かし、ExcelとPostgreSQLは公式の文書で確認した。
底を指定できる書き方にも、落とし穴が2つある。まず引数の順番だ。ExcelのLOG(8, 2)とPythonのmath.log(8, 2)は真数が先で、PostgreSQLとMySQLとSQLiteのlog(2, 8)は底が先。順番を間違えると、3のはずの答えが0.333に化ける。
次に丸め誤差である。Pythonのmath.log(1000, 10)は、手順4の割り算で計算するので2.9999999999999996を返す。math.log10(1000)なら3.0だ。誤差の仕組みは0.1 + 0.2が0.3にならないのはなぜかで読める。
読み終えたら、次の順に手を動かすとよい。
- 答えに底が効く計算では、
LOG10やLN、math.log2のように底が名前に入った関数へ書き換える。 - 本や問題文のは、添えられた数値で見分ける。とあれば底、0.301なら底10である。
- 対数の法則で底をのまま進む証明を読み、ネイピア数の記事での出どころをたどる。
の答えが3つに割れても、測っている道のりは1本である。どの物差しで測ったのかさえ分かれば、3つの数は同じことを言っている。
参考文献
- C. E. Shannon, "A Mathematical Theory of Communication", Bell System Technical Journal 27 (1948), 379-423, 623-656.
- Jeff Miller, "Earliest Uses of Function Symbols"(Logarithm functionの項), "Earliest Known Uses of Some of the Words of Mathematics"(LOGARITHM、NATURAL LOGARITHMの項), MacTutor History of Mathematics, セント・アンドルーズ大学.
- F. Cajori, A History of Mathematical Notations, Vol. I-II (Open Court, 1928-1929). 本体は未見。本文のカジョリにかかわる記述は文献2による孫引き.
- NIST, Special Publication 811, Guide for the Use of the International System of Units (SI), 10.1.2 Standardized mathematical signs and symbols. ボルツマン定数の値はNIST, CODATA Value "Boltzmann constant". ISO 31-11からISO 80000-2への移行はWikipedia "ISO 31-11"による.
- E. W. Weisstein, "Logarithm", "Natural Logarithm", "Lg", Wolfram MathWorld.
- A. Ivić, "On a problem of Erdős involving the largest prime factor of n", arXiv:math/0311056 (2003).
- L. Pauling, "The Structure and Entropy of Ice and of Other Crystals with Some Randomness of Atomic Arrangement", Journal of the American Chemical Society 57 (1935), 2680-2684. 本体は未見で、書誌はCrossrefで確認。測定値はW. F. GiauqueとJ. W. Stoutの0.82 cal/(deg·mol)で、B. A. Bergほか, arXiv:cond-mat/0609211による孫引き.
- 文部科学省『高等学校学習指導要領(平成30年告示)解説 数学編 理数編』数学II「指数関数・対数関数」(60、69ページ)、数学III「微分法」(76、83ページ).
- J. Duchi, Lecture Notes on Statistics and Information Theory, Stanford University, 2023年12月6日版. I. Tullis, "Prereq Review #1: Logarithms", Stanford CS161, Summer 2022.
- 金沢工業大学 数理工教育研究センター「対数計算」. 新潟大学工学部 木村研究室の講義資料「対数と指数」(2018年11月10日改訂). 岐阜工業高等専門学校の計測工学の講義資料「最小二乗法3」. OneMathematicalCat.org, "Introduction to Logarithms".
- デジタル大辞泉「自然対数」、ブリタニカ国際大百科事典 小項目事典「常用対数」、日本大百科全書「自然対数」(竹之内脩). いずれもコトバンクで確認.
- 江頭靖幸「logの底はいくつですか?」東京工科大学 工学部 応用化学科 ブログ, 2015年9月1日.
- Microsoftサポート, "LOG function". Microsoft Learn, "Log function"(VBA). Python 3 Documentation, "math". MDN Web Docs, "Math.log()". PostgreSQL Documentation, "Mathematical Functions and Operators". MySQL 8.4 Reference Manual, "Mathematical Functions". SQLite, "Built-In Mathematical SQL Functions".
注
-
資料で確認できたのは「ログaのN」「ろぐ」「える・えぬ」と、英語のlog base、common log、natural logの形までで、表のほかの読みはこの形に当てはめた。英語の形は学習サイトOneMathematicalCat.orgによる。 ↩
-
解説は例をこう書いているだけで、底を省く決まりは示していない。教科書ごとの書き方までは確認していない。 ↩
-
この章の記号と呼び名の年は、ミラーの資料による。原典とカジョリ『数学記号の歴史』は開いていない。ケプラー、カヴァリエリ、オートレッド、ストリンガムの記述は、ミラーが同書を引いたものである。ミラーはストリンガムを最初の例とは書いていない。 ↩
この読みものの公式
この記事は、人が監修しながらAIを活用して執筆した。執筆・監修: 佐々木 航(株式会社Game)。