1 ポイント 投稿者 GN⁺ 2025-03-14 | 1件のコメント | WhatsAppで共有
  • Charles Petzoldが執筆中のウェブブックで、ログの歴史と活用を通じて、乗算・累乗・三角法・音楽・グラフといったテーマをつないで見せている
  • 中心となる軸は、計算道具としてのログと計算尺であり、理論だけでなく、実際に計算し、道具を作る流れまで含んでいる
  • 章タイトルの色で執筆状況を区別しており、ほぼ完成した章と、まだ変更中または未着手の章を読者がすぐ把握できる
  • まだ専門的な編集は行われておらず、全体の完成目標は2027年末に設定されている
  • デスクトップ・ノートPCでの閲覧に最も最適化されており、iPad Mini iOS 12.5.7やスマートフォンでは表示上の問題が発生する可能性がある

ウェブブックの範囲と執筆状況

  • The Lost Art of LogarithmsはCharles Petzoldが執筆中のウェブブック
  • ログを単なる数学概念ではなく、計算と科学史全般にわたる道具として扱っている
    • ログとは何か
    • ログの有用性、歴史、普遍性
    • 平面三角法および球面三角法でログが使われた歴史的用途
    • 計算尺の理論と実際の使い方
  • 章タイトルの色で現在の執筆段階を示している
    • 緑色:ほぼ完成しており、大きな変更は想定されていないが、小さな編集・修正・見た目の整理はあり得る
    • 赤色:未完成で、現在変更中
    • 黒色:まだ着手されていない
  • まだ専門的な編集は進んでおらず、完成見込みは2027年末

閲覧環境と目次構成

1件のコメント

 
GN⁺ 2025-03-14
Hacker News のコメント
  • 対数を初等・中等教育で習うやり方より、対数の本来の動機をたどって見たほうが、はるかによく理解できた
    ネイピアが直面した問題、つまり大きな天文観測値の乗算を単純化するために f(ab) = f(a) + f(b) という形の関数を探し、なぜそれが特定の関数族につながるのかを考えると、対数がどこにでも登場する理由がより腑に落ちる
    指数関数の逆関数として教えるやり方とは対照的で、実際そのような議論はオイラー以前にはなかった
    数学もこういうふうに学ぶほうが面白いと思う。元の著者が解こうとしていた問題は何で、当時どんな道具が使えたのかをたどるやり方だ

    • Toeplitz の "Calculus: The Genetic Approach" は、数学を歴史的な展開を通じて説明する方法で、こうしたアプローチは https://en.wikipedia.org/wiki/Genetic_method としてもより広く使われているようだ
      Felix Klein も「小さな規模では、学習者は自然かつ必然的に、科学が大きな規模でたどった発展を繰り返さなければならない」と述べていた
    • こういうアプローチが気に入るなら、Kolmogorov の Mathematics: It's Content, Methods, and Meaning を強くおすすめする
      同じ方法を数学のはるかに多くの概念に適用した本で、分量も約1,000ページある
      この本もたぶんここで知った気がするので、今度は自分が伝え返しているというわけだ
      このアプローチは、すべては物質的な必要から生まれると見るソ連式の弁証法的唯物論の哲学ともつながっていた
      その哲学全体に完全に同意するかは分からないが、Kolmogorov の本は本当に目を開かれる思いだった
    • この方法が前面に出るべきだと思う
      そういう趣旨で "magnitude notation"[0] を提案している。“logarithm” という言葉は高等数学のように聞こえて人を遠ざけるが、実のところ基本概念は数学をより簡単で面白いものにしてくれる
      https://saul.pw/mag
    • よくこう考える
      数学教育は、オイラーのように非常に賢く抽象的に考える人、つまり操作手順ではなく直観で理解する人たちを引き寄せようとする傾向があるように思う
      それ以外の人には、元の問題の中でしばらく泳いでみて初めて光が見えてくる
    • むしろ対数は指数の逆関数という率直な説明のほうがいい
      10^2 * 10^3 = 10^5 を自然に理解できるので、より直観的だ
      だから対数表を使えば足し算に意味が出る。長い文章は特に必要なかった
      対数を取って 2 + 3 = 5 を足し、その後でもう一度べき乗すれば 10^5 になる
  • タイミングがいい。ちょうど昨日、計算尺の使い方を覚えた
    1本買おうとしたら選択肢が多すぎて小さな沼[0]にはまり、計算尺の中には純粋な芸術品のように見えるものもあった
    最近は、あらゆるインターフェースがガラス板になっている時代に、アナログ道具がもたらす意外な利点を再発見している
    このところ、コーディングプロジェクトの初期草案を作るときに、ペンと紙をエディタのように使うのを楽しんでいる
    特に好きなアナログ道具があるか気になる
    [0]:https://sliderulemuseum.com/

    • 数学の講義を受けながら、ときどきこういうアナログ道具を買ってみようかと思う
      Hacker News で誰かが日本式のそろばんである Soroban[1] に興味を持たせてくれたのだが、今でも驚異的な暗算速度を鍛えるために使われている[2]
      1. https://en.wikipedia.org/wiki/Soroban
      2. https://www.youtube.com/watch?v=s6OmqXCsYt8
    • 計算尺を何本も持っていて、毎日使っている
      特に比率をよく調整するキッチンでは、考えられる最高の道具だ
      望む倍率に合わせておけば、必要な比率を何でも瞬時に読み取れる
      正直、キッチンの標準装備でないのが驚きだ
    • Soroban。日本式のそろばんだ
      すべての数字が1つの表現だけを持ち、+ - * / やその他の計算もできる
      http://totton.idirect.com/
    • ペン/鉛筆とドット方眼紙を使っている。まったく別の脳内空間が開ける
    • 原文の写真で男性が持っている1メートルの計算尺はどこで手に入るのだろう?
  • 対数変換を適用すると、データがしばしば正規分布のようになる理由が興味深い
    自然法則はおおむね乗算の形をしている。F=maPV=nRT のような式だ
    独立同分布の確率変数を掛け合わせると、中心極限定理のおかげで対数正規分布のデータになる。対数スケールでは乗算が加算であり、中心極限定理は同一分布でない場合にもある程度頑健だからだ
    データを複数の影響要因が掛け合わさった結果と見れば、だから対数正規分布が現れる

    • 中心極限定理は独立同分布の変数を必要としない
      独立で分散があり、少し高い次数についてかなり弱い条件を満たしていればよい
      それ以外では、変数同士がかなり異なっていてもよい
    • 太いマーカーで両対数スケールに描けば、どんなデータも線形になる
  • よく使っていたログ(対数)に関する事実がある
    X が 0 と 1 の間の一様分布に従う確率変数なら、–ln(X)/λ は率 λ指数分布に従う
    たとえば重み付きランダムサンプルを抽出したり、シミュレーションでイベント時刻を生成したりするときに役立つ

    • これの一般化は逆変換サンプリング[0]と呼ばれる
      任意の確率変数 X の累積分布関数 F について、確率変数 Y = F(X) が標準一様分布[1]に従うという事実を利用する
      すべての累積分布関数は単位区間で単調増加なので、逆関数を考えられる[2]
      そこで先の式の両辺に逆累積分布関数を適用すると F^-1(Y) = X となり、X と同じように分布する
      標準一様分布からサンプルを取り、その後に逆変換を使う方法は、任意の分布から乱数を生成する最も一般的な方法である
      0. https://en.m.wikipedia.org/wiki/Inverse_transform_sampling
      1. https://en.m.wikipedia.org/wiki/Probability_integral_transfo...
      2. すべての累積分布関数が一対一とは限らないので、一般化逆関数が必要になることがある
    • これを理解するには、数学をどれくらい勉強すればいいのだろうか?
    • 累積分布関数や確率密度関数を使わずに理解する方法もある
      X が指数分布の変数で、c が定数のとき、大きい値であるという条件を付けて見ると、X + cX と同じ分布になる
      言い換えると、2つの変数の裾分布が同じである。この性質は指数分布で正確に成り立ち、一般に無記憶性と呼ばれる
      同様に U[0, 1] の一様分布で、c が定数なら、小さい値であるという条件を付けたとき、cUU と同じ分布になる
      cU が 0 付近で U のように分布するなら、-ln(c U) は無限大付近で -ln(U) のように分布する
      ところが -ln(c U) = -ln(c) - ln(U) なので、-ln(U) の裾は定数を足しても変わらない。したがって指数分布でなければならない
  • いくつかのプロジェクトで LMAX Disruptor を使い始めた
    Disruptor の特徴の一つは、キューサイズが常に 2 のべき乗でなければならないことだ
    どんなサイズでも少なくとも十分な領域を確保したかったし、手計算はしたくなかったので、こう書いた
    var actualSize = Double.valueOf(Math.pow(2, Math.ceil(Math.log(approxSize) / Math.log(2)))).intValue();
    1行としては少し大げさだが、正しい指数を得るために基本的な対数の規則を使っただけである
    高校で習った内容なのに、一部の同僚は前例のない神秘的な数学を使っているかのように見ていた
    おそらく対数をビッグオー記法以外では使わないのだろう

    • もちろんそのままでも十分使えるが、私ならこう書くと思う
      var actualSize = Integer.highestOneBit(approxSize - 1) << 1;
      素朴な pow()log() の下に潜む恐怖を避けたいだけだ
      Integer.highestOneBit は「最も左のビットを取り出す」「最上位の 1」などとも呼ばれ、効率よく実装するには実質的にプリミティブな演算である必要がある
      最下位ビット側の x&-x とは違う
      実際の CPU 命令はたいてい Integer.numberOfLeadingZeros に近いが、そこからビットシフトすればよい
    • サイズを右に 1 ビットずつシフトし、値が 0 になるまで回数を数えれば、そのサイズに対する 2 の指数を得られる
  • 暗算に使うために、いくつかの対数を暗記することを強く勧める
    思いがけない能力が身についた
    始めたときに書いた記事はこちら: https://entropicthoughts.com/learning-some-logarithms

    • ブログが良い
      興味深いことに、記憶の減衰自体も本質的に対数的/指数的である
      間隔反復で対数を学ぶのは、かなりメタ的だ
    • その記事から 1 年間、実際に適用してみてどんな考察があったのか気になる
      付け加えると、そのブログは私が本当に好きなブログの一つだ
  • 対数微分も驚くほど根本的な概念である
    (ln(f))' = f'/f
    関数論では常に使うが、人々はこれが対数に関係していることにはあまり気づかない
    対数微分がきれいに現れる関数も、予想以上にはるかに興味深い
    自然界には Gompertz 関数があふれていて、慣れてくるとあちこちに見える

  • 以前は、頭の中で基本的な対数近似計算ができることに実用的な価値があった
    計算機がなかった時代には、素早い掛け算・割り算やべき乗をこの方法で行っていた
    Feynman の『Surely You're Joking』には、Los Alamos の科学者たちが暗算での対数計算の速さを競ったという話がある

  • 対数の父 John Napier、つまり lnN は、ほとんど人間計算機の作業場を運営しながら、20 年ほどかけて対数表を作らせた
    これは天文航法にとって非常に重要だった
    海を安全に渡る方法を開発した人には大きな賞金が懸けられており、これが懐中時計の発明にもつながった

    • lnn は “natural”、つまり “logarithm natural” ではないのか?
  • Huffman 圧縮で有名な Huffman が教えた授業で、足し算とルックアップテーブルで掛け算する方法を学んだ
    試験では電卓を使えなかった
    だが一番好きなコツは底の変換だ: https://www.khanacademy.org/math/algebra2/x2ec2f6f830c9fb89:...
    少し練習すれば、2 のべき乗、10 のべき乗、e の間の近似的な底の変換を頭の中でできる