ศิลปะที่สูญหายของลอการิทึม — เว็บบุ๊กของ Charles Petzold
(lostartoflogarithms.com)- เว็บบุ๊กที่ Charles Petzold กำลังเขียน ซึ่งเชื่อมโยงหัวข้อต่าง ๆ อย่าง ประวัติศาสตร์และการใช้งานของลอการิทึม เข้ากับการคูณ การยกกำลัง ตรีโกณมิติ ดนตรี และกราฟ
- แกนหลักคือบทบาทของลอการิทึมในฐานะเครื่องมือคำนวณและ slide rule โดยครอบคลุมตั้งแต่ทฤษฎีไปจนถึงการคำนวณด้วยตนเองและการสร้างเครื่องมือ
- ใช้สีของชื่อบทเพื่อแบ่งสถานะการเขียน ทำให้ผู้อ่านเห็นได้ทันทีว่าบทใดใกล้เสร็จแล้ว และบทใดยังมีการเปลี่ยนแปลงอยู่หรือยังไม่เริ่ม
- ยังไม่ได้ผ่านการบรรณาธิการอย่างมืออาชีพ และตั้งเป้าทำให้เสร็จทั้งหมดภายใน ปลายปี 2027
- เหมาะที่สุดสำหรับการอ่านบนเดสก์ท็อปและโน้ตบุ๊ก ส่วนบน iPad Mini iOS 12.5.7 และโทรศัพท์มือถืออาจมีปัญหาในการแสดงผล
ขอบเขตของเว็บบุ๊กและสถานะการเขียน
- The Lost Art of Logarithms เป็นเว็บบุ๊กที่ Charles Petzold กำลังเขียน
- นำเสนอลอการิทึมไม่ใช่แค่แนวคิดทางคณิตศาสตร์ แต่เป็นเครื่องมือที่ครอบคลุมการคำนวณและประวัติศาสตร์วิทยาศาสตร์โดยรวม
- ลอการิทึมคืออะไร
- ประโยชน์ ประวัติศาสตร์ และความเป็นสากลของลอการิทึม
- การใช้งานลอการิทึมในอดีตทั้งในตรีโกณมิติระนาบและตรีโกณมิติทรงกลม
- ทฤษฎีและวิธีใช้งานจริงของ slide rule
- ใช้สีของชื่อบทเพื่อแสดงขั้นตอนการเขียนในปัจจุบัน
- สีเขียว: เกือบเสร็จสมบูรณ์แล้ว และไม่น่าจะมีการเปลี่ยนแปลงใหญ่ แต่อาจยังมีการแก้ไข ปรับแต่ง และจัดรูปแบบเล็กน้อย
- สีแดง: ยังไม่เสร็จและกำลังมีการเปลี่ยนแปลงอยู่
- สีดำ: ยังไม่ได้เริ่ม
- ยังไม่ได้ผ่าน การบรรณาธิการอย่างมืออาชีพ และคาดว่าจะเสร็จสมบูรณ์ใน ปลายปี 2027
สภาพแวดล้อมการอ่านและโครงสร้างสารบัญ
- หน้านี้เหมาะที่สุดสำหรับการดูบนเดสก์ท็อปหรือโน้ตบุ๊ก
- สภาพแวดล้อมที่ใช้พัฒนาและทดสอบมีดังนี้
- ใช้ Visual Studio Code และ Edge บน Microsoft Surface Pro 9 ที่รัน Windows 11
- ทดสอบ Chrome บนอุปกรณ์เครื่องเดียวกัน
- ทดสอบ Safari บน Mac Mini ที่รัน Sequoia
- ทดสอบ Chrome 126 บน Asus Chromebook
- บน iPad Mini iOS 12.5.7 มีปัญหาหลายอย่าง และบนโทรศัพท์มือถือหน้ามักแสดงผลได้ไม่ค่อยลงตัว
-
สารบัญ
- Chapter 1. The 400-Year-Old Computer
- Part I. The Book of Vlacq
- Part II. Varieties of the Slide Rule Experience
- Part III. Logarithms Everywhere
- Chapter 11. Logarithmic Perspectives
- Chapter 12. Binary Logarithms
- Chapter 13. Sound and Music
- Chapter 14. The Natural e
- Chapter 15. Logarithmic Phenomena
- Chapter 16. Log-Log and Semi-Log Graphs
- Part IV. Back to Vlacq: The Trigonometric Connection
- Part V. Mathematicians at Work
- Chapter 22. John Napier’s Life and Reformationary Times
- Chapter 23. Countdown to the Apocalypse
- Chapter 24. Conceiving the Logarithm
- Chapter 25. The Handoff to Henry Briggs
- Chapter 26. Logarithms at Your Fingertips
- Chapter 27. The Meticulous Mr. Babbage
- Back Matter
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
เข้าใจได้ดีกว่ามากเมื่อดูตาม แรงจูงใจดั้งเดิมของลอการิทึม แทนที่จะเป็นวิธีที่เรียนกันในหลักสูตรประถม–มัธยม
ถ้าคิดถึงปัญหาที่ Napier เผชิญ คือการพยายามหาฟังก์ชันในรูป
f(ab) = f(a) + f(b)เพื่อทำให้การคูณค่าการสังเกตการณ์ทางดาราศาสตร์ขนาดใหญ่เรียบง่ายขึ้น และดูว่าทำไมสิ่งนี้จึงนำไปสู่ตระกูลฟังก์ชันบางอย่าง ก็จะเข้าใจได้ดีขึ้นว่าทำไมลอการิทึมถึงปรากฏอยู่แทบทุกที่ซึ่งต่างจากวิธีสอนว่าเป็นฟังก์ชันผกผันของฟังก์ชันเอกซ์โพเนนเชียล และจริง ๆ แล้วการอภิปรายแบบนั้นก็ยังไม่มีจนกระทั่งถึงยุค Euler
ผมคิดว่าคณิตศาสตร์เรียนแบบนี้สนุกกว่า คือไล่ตามว่าปัญหาที่ผู้เขียนดั้งเดิมพยายามแก้คืออะไร และในเวลานั้นมีเครื่องมืออะไรให้ใช้บ้าง
Felix Klein ก็เคยกล่าวว่า “ในระดับย่อม ๆ ผู้เรียนจำเป็นต้องทำซ้ำพัฒนาการที่วิทยาศาสตร์เคยผ่านในระดับใหญ่ อย่างเป็นธรรมชาติและหลีกเลี่ยงไม่ได้”
เป็นหนังสือที่นำวิธีเดียวกันไปใช้กับแนวคิดทางคณิตศาสตร์จำนวนมากกว่ามาก และมีความยาวราว 1,000 หน้า
ผมคิดว่าคงรู้จักหนังสือเล่มนี้จากที่นี่เหมือนกัน ตอนนี้ก็เหมือนส่งต่อกลับไปอีกทอด
แนวทางนี้ยังสอดคล้องกับปรัชญา วัตถุนิยมวิภาษ แบบโซเวียต ที่มองว่าทุกสิ่งเกิดขึ้นจากความจำเป็นทางวัตถุ
ผมไม่แน่ใจว่าตัวเองเห็นด้วยกับปรัชญานั้นทั้งหมดไหม แต่หนังสือของ Kolmogorov ทำให้รู้สึกเปิดหูเปิดตาจริง ๆ
ด้วยเจตนานั้นจึงขอเสนอ "magnitude notation"[0] คำว่า “logarithm” ฟังเหมือนคณิตศาสตร์ขั้นสูงจนผลักคนออกไป แต่ที่จริงแนวคิดพื้นฐานกลับทำให้คณิตศาสตร์ง่ายและสนุกขึ้น
https://saul.pw/mag
การศึกษาคณิตศาสตร์ดูเหมือนมีแนวโน้มจะดึงดูดคนที่ฉลาดมากและคิดเชิงนามธรรมแบบ Euler คือคนที่จะเข้าใจด้วยสัญชาตญาณ ไม่ใช่ด้วยขั้นตอนการจัดการเชิงกล
สำหรับคนอื่น ๆ ต้องได้ว่ายวนอยู่ในปัญหาดั้งเดิมสักพักก่อน แสงสว่างถึงจะเริ่มปรากฏ
มันเข้าใจ
10^2 * 10^3 = 10^5ได้โดยอัตโนมัติ จึงเป็นธรรมชาติกว่าดังนั้นเมื่อใช้ตารางลอการิทึม การบวกจึงสมเหตุสมผล ไม่จำเป็นต้องมีบทความยาว ๆ
เอาลอการิทึมมาแล้วบวก
2 + 3 = 5จากนั้นยกกำลังกลับก็ได้10^5จังหวะเหมาะเลย เพิ่งหัดใช้ สไลด์รูล เมื่อวานนี้เอง
พอจะซื้อสักอันก็พบว่ามีตัวเลือกเยอะมากจนหลงเข้าไปในโพรงกระต่ายเล็ก ๆ[0] และบางอันก็ดูเหมือนงานศิลปะล้วน ๆ
ในยุคที่ทุกอินเทอร์เฟซเป็นแผ่นกระจกแบบนี้ ผมกำลังค้นพบข้อดีที่คาดไม่ถึงของเครื่องมือแอนะล็อกอีกครั้ง
ช่วงหลัง ๆ ผมชอบใช้ปากกากับกระดาษเหมือนเป็นเอดิเตอร์ ตอนร่างโครงแรกของโปรเจกต์เขียนโค้ด
อยากรู้ว่ามีเครื่องมือแอนะล็อกที่ชอบเป็นพิเศษกันไหม
[0]:https://sliderulemuseum.com/
มีคนใน Hacker News ทำให้ผมสนใจ Soroban[1] ซึ่งเป็นลูกคิดญี่ปุ่น และทุกวันนี้ยังใช้ฝึกความเร็วในการคิดเลขในใจที่น่าทึ่งอยู่[2]
โดยเฉพาะใน ครัว ที่ต้องปรับสัดส่วนบ่อย ๆ มันคือเครื่องมือที่ดีที่สุดเท่าที่เป็นไปได้
ตั้งไว้ตามอัตราขยายที่ต้องการ แล้วก็อ่านสัดส่วนอะไรก็ได้ที่ต้องใช้ในพริบตา
พูดตามตรง แปลกใจที่มันไม่ใช่อุปกรณ์มาตรฐานในครัว
ตัวเลขทุกตัวมีรูปแทนเพียงแบบเดียว และทำ
+ - * /รวมถึงการคำนวณอื่น ๆ ได้http://totton.idirect.com/
น่าสนใจว่าทำไมเมื่อใช้การแปลงลอการิทึมแล้ว ข้อมูลมักดูเหมือนแจกแจงปกติ
กฎธรรมชาติโดยมากอยู่ในรูปการคูณ เช่น
F=ma,PV=nRTเมื่อคูณตัวแปรสุ่มที่เป็นอิสระและมีการแจกแจงเหมือนกันเข้าด้วยกัน ด้วยทฤษฎีบทขีดจำกัดกลาง ข้อมูลจะกลายเป็น การแจกแจงล็อกปกติ เพราะบนสเกลลอการิทึม การคูณคือการบวก และทฤษฎีบทขีดจำกัดกลางก็ทนทานในระดับหนึ่งแม้กรณีที่ไม่ได้แจกแจงเหมือนกัน
ถ้ามองว่าข้อมูลเป็นผลลัพธ์ของปัจจัยหลายอย่างที่คูณกัน ดังนั้นจึงได้การแจกแจงล็อกปกติ
แค่เป็นอิสระ มีความแปรปรวน และมีเงื่อนไขค่อนข้างอ่อนสำหรับอันดับที่สูงกว่าเล็กน้อยก็พอ
นอกเหนือจากนั้น ตัวแปรจะแตกต่างกันค่อนข้างมากก็ได้
มีข้อเท็จจริงเกี่ยวกับลอการิทึมที่ผมใช้บ่อยอยู่ข้อหนึ่ง
ถ้า
Xเป็นตัวแปรสุ่มที่มีการแจกแจงสม่ำเสมอระหว่าง 0 ถึง 1 แล้ว–ln(X)/λจะมี การแจกแจงเอ็กซ์โพเนนเชียล ที่มีอัตราλตัวอย่างเช่น มีประโยชน์เวลาเลือกตัวอย่างสุ่มแบบถ่วงน้ำหนัก หรือสร้างเวลาเกิดเหตุการณ์ในงานจำลอง
อาศัยข้อเท็จจริงที่ว่า สำหรับฟังก์ชันแจกแจงสะสม
Fของตัวแปรสุ่มใดๆXตัวแปรสุ่มY = F(X)จะมีการแจกแจงสม่ำเสมอมาตรฐาน[1]ฟังก์ชันแจกแจงสะสมทุกตัวเป็นฟังก์ชันเพิ่มเชิงเดียวบนช่วงหน่วย จึงสามารถมีฟังก์ชันผกผันได้[2]
ดังนั้นเมื่อนำฟังก์ชันแจกแจงสะสมผกผันไปใช้กับทั้งสองข้างของสมการด้านบน จะได้
F^-1(Y) = Xซึ่งแจกแจงเหมือนXวิธีสุ่มตัวอย่างจากการแจกแจงสม่ำเสมอมาตรฐานแล้วใช้การแปลงผกผัน เป็นวิธีที่พบมากที่สุดในการสร้างเลขสุ่มจากการแจกแจงใดๆ
0. https://en.m.wikipedia.org/wiki/Inverse_transform_sampling
เมื่อ
Xเป็นตัวแปรแจกแจงเอ็กซ์โพเนนเชียลและcเป็นค่าคงที่ หากพิจารณาภายใต้เงื่อนไขว่าเป็นค่าขนาดใหญ่X + cจะมีการแจกแจงเหมือนXกล่าวอีกอย่างคือ การแจกแจงส่วนหาง ของตัวแปรทั้งสองเหมือนกัน คุณสมบัตินี้เป็นจริงอย่างแม่นยำในแจกแจงเอ็กซ์โพเนนเชียล และมักเรียกว่า คุณสมบัติไร้ความจำ
ในทำนองเดียวกัน ถ้า
Uเป็นการแจกแจงสม่ำเสมอบน[0, 1]และcเป็นค่าคงที่ เมื่อพิจารณาภายใต้เงื่อนไขว่าเป็นค่าขนาดเล็กcUจะมีการแจกแจงเหมือนUถ้า
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();สำหรับโค้ดบรรทัดเดียวก็ดูเกินไปหน่อย แต่ก็แค่ใช้กฎพื้นฐานของลอการิทึมเพื่อให้ได้เลขชี้กำลังที่ถูกต้องเท่านั้น
เป็นเรื่องที่เรียนมาตอนมัธยม แต่เพื่อนร่วมงานบางคนมองเหมือนกำลังใช้คณิตศาสตร์ลึกลับที่ไม่เคยมีมาก่อน
บางทีพวกเขาคงไม่ค่อยใช้ลอการิทึมนอกเหนือจาก สัญกรณ์ Big O
var actualSize = Integer.highestOneBit(approxSize - 1) << 1;ก็แค่อยากหลีกเลี่ยงความน่ากลัวที่ซ่อนอยู่ใต้
pow()และlog()อันดูเรียบง่ายInteger.highestOneBitยังถูกเรียกว่า “แยกบิตซ้ายสุด”, “บิต 1 ที่มีนัยสำคัญสูงสุด” อะไรทำนองนั้นด้วย และถ้าจะ implement ให้มีประสิทธิภาพ จริงๆ แล้วควรเป็น primitive operationต่างจาก
x&-xฝั่งบิตที่มีนัยสำคัญต่ำสุดคำสั่ง CPU จริงๆ มักจะใกล้เคียงกับ
Integer.numberOfLeadingZerosมากกว่า แต่จากนั้นแค่เลื่อนบิตก็พอขอแนะนำอย่างยิ่งให้ ท่องจำลอการิทึมสักสองสามค่า ไว้ใช้คิดเลขในใจ
มันทำให้มีความสามารถที่คาดไม่ถึง
บทความที่เขียนตอนเริ่มต้นอยู่ที่นี่: https://entropicthoughts.com/learning-some-logarithms
น่าสนใจที่ การเสื่อมถอยของความจำ เองก็มีลักษณะเป็นลอการิทึม/เอ็กซ์โพเนนเชียลโดยแก่นแท้
การเรียนลอการิทึมด้วย spaced repetition นี่ค่อนข้างเมตาเลย
อีกอย่าง บล็อกนั้นเป็นหนึ่งในบล็อกที่ผมชอบมากจริงๆ
การดิฟเฟอเรนเชียลลอการิทึม ก็เป็นแนวคิดที่พื้นฐานจนน่าทึ่งเช่นกัน
(ln(f))' = f'/fในทฤษฎีฟังก์ชันใช้กันตลอด แต่ผู้คนมักไม่ค่อยตระหนักว่าสิ่งนี้เกี่ยวข้องกับลอการิทึม
ฟังก์ชันที่ได้ผลลัพธ์สวยงามจากการดิฟเฟอเรนเชียลลอการิทึมนั้นน่าสนใจกว่าที่คิดมาก
ในธรรมชาติมี ฟังก์ชัน Gompertz อยู่เต็มไปหมด และพอคุ้นเคยแล้วก็จะเห็นมันได้ทั่วไป
เมื่อก่อน การคำนวณ ค่าประมาณลอการิทึม ขั้นพื้นฐานในหัวมีคุณค่าในทางปฏิบัติ
ในยุคที่ยังไม่มีเครื่องคิดเลข การคูณ·หารหรือยกกำลังอย่างรวดเร็วทำกันด้วยวิธีนี้
ในหนังสือ "Surely You're Joking" ของ Feynman มีเรื่องเล่าว่านักวิทยาศาสตร์ที่ Los Alamos แข่งกันคิดลอการิทึมในใจว่าใครเร็วกว่า
John Napier บิดาแห่งลอการิทึม หรือก็คือ
Nในlnแทบจะดำเนิน เวิร์กช็อปคำนวณด้วยมนุษย์ และให้ทำตารางลอการิทึมอยู่ราว 20 ปีสิ่งนี้สำคัญมากต่อการนำทางดาราศาสตร์
มีการตั้งรางวัลใหญ่ให้คนที่พัฒนาวิธีข้ามทะเลอย่างปลอดภัย และเรื่องนี้ยังนำไปสู่การประดิษฐ์นาฬิกาพกด้วย
nในlnไม่ใช่ “natural” หรือก็คือ “logarithm natural” หรอกหรือ?ในวิชาที่สอนโดย Huffman ผู้โด่งดังจากการบีบอัดแบบ Huffman ผมได้เรียนรู้ วิธีคูณด้วยการบวกและตาราง lookup
ตอนสอบใช้เครื่องคิดเลขไม่ได้
แต่เคล็ดลับที่ชอบที่สุดคือการเปลี่ยนฐาน: https://www.khanacademy.org/math/algebra2/x2ec2f6f830c9fb89:...
ถ้าฝึกสักหน่อย ก็สามารถแปลงฐานโดยประมาณระหว่างกำลังของ 2, กำลังของ 10 และ
eในหัวได้