สูตรฮาเวอร์ซีน
สูตรฮาเวอร์ไซน์ใช้คำนวณระยะทางตามเส้นโค้งวงกลมใหญ่ระหว่างสองจุดบนทรงกลมโดยกำหนดค่าลองจิจูดและละติจูดของจุด ทั้งสอง สูตรนี้ มีความสำคัญในการนำทางและเป็นกรณีพิเศษของสูตรทั่วไปในตรีโกณมิติทรงกลม นั่น คือ กฎของฮาเวอร์ไซน์ซึ่งเชื่อมโยงด้านและมุมของสามเหลี่ยมทรงกลมเข้าด้วยกัน
ตาราง haversineฉบับแรกในภาษาอังกฤษได้รับการตีพิมพ์โดย James Andrew ในปี 1805 [ 1 ]แต่Florian Cajoriระบุว่าJosé de Mendoza y Ríos เป็นผู้นำมาใช้ก่อนหน้านั้น ในปี 1801 [ 2 ] [ 3 ]คำว่าhaversineถูกบัญญัติขึ้นในปี 1835 โดยJames Inmanซึ่งเป็นคำย่อของ "half-versed sine" [ 4 ] [ 5 ]
ชื่อเหล่านี้มีที่มาจากข้อเท็จจริงที่ว่าโดยทั่วไปแล้วจะเขียนในรูปของฟังก์ชันฮาเวอร์ไซน์ ซึ่งกำหนดโดยhav θ = sin 2 1/2θ สูตรเหล่า นี้สามารถเขียนได้ในรูปของตัวคูณใดๆ ของฮาเวอร์ไซน์ เช่น ฟังก์ชัน เวอร์ไซน์ แบบเก่า (สองเท่าของฮาเวอร์ไซน์) ก่อนการมาถึงของคอมพิวเตอร์ การกำจัดการหารและการคูณด้วยตัวประกอบของสองพิสูจน์แล้วว่าสะดวกมากพอที่ตารางค่าฮาเวอร์ไซน์และลอการิทึมจะถูกรวมไว้ในตำราการเดินเรือและตรีโกณมิติในศตวรรษที่ 19 และต้นศตวรรษที่ 20 [ 6 ] [ 7 ] [ 8 ] ในปัจจุบัน รูปแบบฮาเวอร์ไซน์ยังสะดวกตรงที่ไม่มีสัมประสิทธิ์อยู่หน้าฟังก์ชัน sin 2 อีกด้วย

สูตรนี้แตกต่างจากกฎโคไซน์ทรงกลมซึ่งในทางทฤษฎีแล้วถือว่าเทียบเท่ากัน
สูตร
ความสัมพันธ์พื้นฐานแสดงได้ดังนี้
- ,
ที่ไหน
- θคือมุมศูนย์กลางระหว่างจุดสองจุดใดๆ บนทรงกลม
- dคือระยะห่างระหว่างจุดสองจุดตามวงกลมใหญ่ของทรงกลม (ดูระยะทางทรงกลม )
- rคือรัศมีของทรงกลม
สูตรฮาเวอร์ไซน์ช่วยให้สามารถ คำนวณ ค่าฮาเวอร์ไซน์ของθได้โดยตรงจากละติจูด (แทนด้วยφ ) และลองจิจูด (แทนด้วยλ ) ของจุดสองจุด:
ที่ไหน
- φ , φ คือละติจูดของจุดที่ 1 และละติจูดของจุดที่ 2 ตามลำดับ
- λ , λ คือลองจิจูดของจุดที่ 1 และลองจิจูดของจุดที่ 2 ตามลำดับ
- , .
ฟังก์ชันฮาเวอร์ไซน์คำนวณค่าครึ่งหนึ่ง ของ เวอร์ไซน์ของมุมθหรือกำลังสองของครึ่งหนึ่ง ของ คอร์ดของมุมบนวงกลมหน่วย (ทรงกลม) ฟังก์ชันนี้มีความเกี่ยวข้องกับฟังก์ชันไซน์อื่นๆ:
- .
เพื่อหาค่าθจากความแตกต่างของละติจูดและลองจิจูดโดยตรง:
- ,
โดยสามารถคำนวณได้โดย:
และ .
เมื่อใช้สูตรเหล่านี้ ต้องแน่ใจว่าh = hav( θ )ไม่เกิน 1 เนื่องจาก ข้อผิดพลาด ของเลขทศนิยม ( dเป็นจำนวนจริงเฉพาะเมื่อ0 ≤ h ≤ 1 เท่านั้น ) hจะเข้าใกล้ 1 เฉพาะที่ จุด ตรงข้าม (บนด้านตรงข้ามของทรงกลม) เท่านั้น ในบริเวณนี้ มักจะเกิด ข้อผิดพลาดเชิงตัวเลขค่อนข้างมากในสูตรเมื่อใช้ความแม่นยำแบบจำกัด เนื่องจากdมีค่ามาก (เข้าใกล้π Rซึ่งเป็นครึ่งหนึ่งของเส้นรอบวง) ข้อผิดพลาดเล็กน้อยจึงมักไม่ใช่ปัญหาใหญ่ในกรณีพิเศษนี้ (แม้ว่าจะมี สูตร ระยะทางวงกลมใหญ่ สูตรอื่น ที่หลีกเลี่ยงปัญหานี้ได้ก็ตาม) (บางครั้งสูตรข้างต้นเขียนในรูปของ ฟังก์ชัน อาร์คแทงเจนต์แต่ก็มีปัญหาเชิงตัวเลขคล้ายกันใกล้h = 1 )
ดังที่อธิบายไว้ด้านล่าง สามารถเขียนสูตรที่คล้ายกันได้โดยใช้โคไซน์ (บางครั้งเรียกว่ากฎโคไซน์ทรงกลมซึ่งไม่ควรสับสนกับกฎโคไซน์สำหรับเรขาคณิตระนาบ) แทนฮาเวอร์ไซน์ แต่ถ้าจุดสองจุดอยู่ใกล้กันมาก (เช่น ห่างกันหนึ่งกิโลเมตรบนโลก) อาจจะได้ผลลัพธ์เป็นcos( ง/อาร์) = 0.99999999ซึ่งทำให้ได้คำตอบที่ไม่ถูกต้อง เนื่องจากสูตรฮาเวอร์ไซน์ใช้ฟังก์ชันไซน์ จึงหลีกเลี่ยงปัญหานี้ได้
สูตรทั้งสองเป็นเพียงค่าประมาณเมื่อนำไปใช้กับโลกซึ่งไม่ใช่ทรงกลมที่สมบูรณ์แบบรัศมีโลก R มีค่าแตกต่างกันไปตั้งแต่ 6356.752 กิโลเมตรที่ขั้วโลกถึง 6378.137 กิโลเมตรที่เส้นศูนย์สูตร ที่สำคัญกว่านั้นรัศมีของความโค้ง ของเส้นตรงเหนือ-ใต้บนพื้นผิวโลกมีค่ามากกว่าที่ขั้วโลก (≈6399.594 กิโลเมตร) ประมาณ 1% เมื่อ เทียบกับที่เส้นศูนย์สูตร (≈6335.439 กิโลเมตร) ดังนั้นสูตรฮาเวอร์ไซน์และกฎของโคไซน์จึงไม่สามารถรับประกันความถูกต้องได้ดีกว่า 0.5% วิธีการที่แม่นยำกว่าซึ่งคำนึงถึงความรีของโลกนั้นได้มาจากสูตรของวินเซนตีและสูตรอื่นๆ ในบทความเกี่ยว กับระยะทางทางภูมิศาสตร์
กฎแห่งฮาเวอร์ซีน

เมื่อกำหนดทรงกลมหน่วยแล้ว “สามเหลี่ยม” บนพื้นผิวของทรงกลมจะถูกกำหนดโดยวงกลมใหญ่ที่เชื่อมต่อจุดสามจุดu , vและwบนทรงกลม ถ้าความยาวของด้านทั้งสามนี้คือa (จากuถึงv ), b (จากuถึงw ) และc (จากvถึงw ) และมุมของมุมตรงข้ามcคือCแล้วกฎของฮาเวอร์ไซน์กล่าวว่า: [ 10 ]
เนื่องจากนี่คือทรงกลมหน่วย ความยาวa , bและcจึงเท่ากับมุม (ในหน่วยเรเดียน ) ที่ด้านเหล่านั้นทำกับจุดศูนย์กลางของทรงกลม (สำหรับทรงกลมที่ไม่ใช่ทรงกลมหน่วย ความยาวส่วนโค้งแต่ละส่วนจะเท่ากับมุมศูนย์กลางคูณด้วยรัศมีRของทรงกลม)
เพื่อให้ได้สูตรฮาเวอร์ไซน์จากส่วนก่อนหน้าจากกฎนี้ เราเพียงแค่พิจารณากรณีพิเศษที่uคือขั้วโลกเหนือในขณะที่vและwคือจุดสองจุดที่มีระยะห่างdที่ต้องการหาค่า ในกรณีนั้นaและbคือπ/2− φ (นั่นคือ ละติจูดร่วม) Cคือระยะห่างของลองจิจูด λ − λ และ cคือค่าที่ต้องการง/อาร์.สังเกตว่าบาป( π/2 − φ ) = cos( φ )สูตรฮาเวอร์ไซน์จึงตามมาทันที
ในการพิสูจน์กฎของฮาเวอร์ไซน์นั้น ต้องเริ่มต้นจากกฎโคไซน์ทรงกลมก่อน :
ดังที่กล่าวมาข้างต้น สูตรนี้เป็นวิธีที่ไม่เหมาะสมในการหาค่าcเมื่อcมีค่าน้อย ดังนั้น เราจึงใช้เอกลักษณ์ที่ว่าcos( θ ) = 1 − 2 hav( θ ) แทน และใช้เอกลักษณ์การบวกcos( a − b ) = cos( a ) cos( b ) + sin( a ) sin( b )เพื่อให้ได้กฎของฮาเวอร์ไซน์ดังที่กล่าวมาข้างต้น
การพิสูจน์
เราสามารถพิสูจน์สูตรนี้ได้:
โดยการแปลงจุดที่กำหนดโดยละติจูดและลองจิจูดให้เป็นพิกัดคาร์ทีเซียนจากนั้นจึงหาผลคูณดอท ของจุดเหล่า นั้น
พิจารณาจุดสองจุดบนทรงกลมหน่วยซึ่งกำหนดโดยละติจูดและลองจิจูดของจุด เหล่านั้น :
ระบบพิกัดเหล่านี้คล้ายคลึงกับพิกัดทรงกลม มาก แต่ละติจูดจะวัดเป็นมุมจากเส้นศูนย์สูตร ไม่ใช่ขั้วโลกเหนือ จุดเหล่านี้แสดงในพิกัดคาร์ทีเซียนดังนี้:
จากตรงนี้ เราสามารถลองคำนวณผลคูณดอทโดยตรงและดำเนินการต่อได้ อย่างไรก็ตาม สูตรจะง่ายขึ้นอย่างมากเมื่อเราพิจารณาข้อเท็จจริงต่อไปนี้: ระยะห่างระหว่างจุดสองจุดจะไม่เปลี่ยนแปลงหากเราหมุนทรงกลมไปตามแกน z ซึ่งจะทำให้ค่าคงที่ถูกเพิ่มเข้าไปโปรดทราบว่าการพิจารณาที่คล้ายกันนี้ใช้ไม่ได้กับการแปลงละติจูด - การเพิ่มค่าคงที่ให้กับละติจูดอาจทำให้ระยะห่างระหว่างจุดเปลี่ยนแปลงไป โดยการเลือกค่าคงที่ของเราเป็นและตั้งค่า จุดใหม่ของเราจะเป็นดังนี้:
เมื่อกำหนดให้เป็นมุมระหว่างและเราจะได้ว่า:
ตัวอย่าง

สูตรฮาเวอร์ไซน์สามารถใช้หาค่าระยะทางโดยประมาณระหว่างทำเนียบขาวในวอชิงตัน ดี.ซี. (ละติจูด 38.898° เหนือ ลองจิจูด 77.037° ตะวันตก) และหอไอเฟลในปารีส (ละติจูด 48.858° เหนือ ลองจิจูด 2.294° ตะวันออก) ความแตกต่างของละติจูดคือ9.960° และความแตกต่างของลองจิจูดคือ79.331° เมื่อนำค่าเหล่านี้ไปใส่ในสูตรฮาเวอร์ไซน์...
ระยะทางตามเส้นโค้งวงกลมใหญ่ คือ มุมศูนย์กลางนี้ ในหน่วยเรเดียน (55.411 องศาเท่ากับ 0.96710 เรเดียน) คูณด้วย รัศมีเฉลี่ย ของ โลก
เมื่อเปรียบเทียบโดยใช้แบบจำลองทรงรีของโลกที่แม่นยำกว่าระยะทางทางภูมิศาสตร์ระหว่างจุดสังเกตเหล่านี้สามารถคำนวณได้ประมาณ 6177.45 กม. [ 11 ]
ดูเพิ่มเติม
อ่านเพิ่มเติม
- คำถามที่พบบ่อยเกี่ยวกับระบบสารสนเทศภูมิศาสตร์ ของสำนักงานสำมะโนประชากรแห่งสหรัฐอเมริกา (เนื้อหาได้ถูกย้ายไปที่หัวข้อวิธีที่ดีที่สุดในการคำนวณระยะทางระหว่าง 2 จุดคืออะไร? )
- RW Sinnott, "คุณสมบัติของ Haversine", Sky and Telescope 68 (2), 159 (1984)
- "การหาที่มาของสูตรฮาเวอร์ไซน์"ถามดร .แมธ 20-21 เมษายน 1999 เก็บถาวรจากต้นฉบับเมื่อ 20 มกราคม 2020
- W. Gellert, S. Gottwald, M. Hellwich, H. Kästner และ H. Küstner, The VNR Concise Encyclopedia of Mathematics , 2nd ed., ch. 12 (ฟาน นอสแตรนด์ ไรน์โฮลด์: นิวยอร์ก, 1989)
ลิงก์ภายนอก
- ตัวอย่างการใช้งานสูตรฮาเวอร์ไซน์ใน 91 ภาษาที่ rosettacode.orgและใน 17 ภาษาที่ codecodex.com เก็บถาวรเมื่อวันที่ 14 สิงหาคม 2018 ที่Wayback Machine
- การใช้งานอื่นๆ ในC++ , C (MacOS) , Pascal (เก็บถาวรเมื่อ 2019-01-16 ที่Wayback Machine) , Python , Ruby , JavaScript , PHP (เก็บถาวรเมื่อ 2018-08-12 ที่Wayback Machine) , Matlab (เก็บถาวรเมื่อ 2020-05-13 ที่Wayback Machine) , MySQL
- "เครื่องคำนวณค่าแฮเวอร์ไซน์" easycalculator.org