Lỗi gần đúng của Định lý Pythagore so với Công thức Haversine trong việc đo khoảng cách trên quả cầu ở các tỷ lệ khác nhau là gì?


30

Nhiều người khi lần đầu tiên cố gắng tính khoảng cách giữa hai cặp kinh độ / vĩ độ hỏi liệu định lý Pythagore có hoạt động như một hàm khoảng cách thích hợp không.

Hầu hết mọi người thường trả lời "không, định lý Pythagore chỉ hoạt động trên mặt phẳng Euclide 2D". Tuy nhiên, hiếm khi người ta đề cập đến ảnh hưởng của quy mô và vị trí trên quả cầu đối với định lý Pythagore không chính xác như thế nào.

Ý tưởng cơ bản là ở quy mô rất nhỏ, bề mặt của một quả cầu trông rất giống mặt phẳng. Ở quy mô rất lớn, khoảng cách dọc theo bề mặt cong hơn và do đó, sự khác biệt giữa Định lý Pythagore không chính xác và Công thức Haversine chính xác là lớn hơn.

Có ai biết một công thức hoặc quy tắc ngón tay cái cho bạn biết sự khác biệt giữa hai thước đo khoảng cách dựa trên thang đo khoảng cách bạn đang cố đo không?

Tôi nghĩ rằng có điều này rõ ràng sẽ giúp trong:

  1. giải thích tại sao Định lý Pythagore không hoàn hảo; và
  2. trong việc cho phép những người đang tìm kiếm khoảng cách "thô bạo" hơn biết khi nào Pythagoras thực sự sẽ phục vụ mục đích của họ.

Câu trả lời:


34

Sử dụng công thức Pythagore trên các vị trí được cho theo vĩ độ và kinh độ có ý nghĩa rất nhỏ như, tính toán diện tích hình tròn bằng công thức cho hình vuông: mặc dù nó tạo ra một số, không có lý do gì để cho rằng nó phải hoạt động.

Mặc dù ở quy mô nhỏ, bất kỳ bề mặt nhẵn nào trông giống như một mặt phẳng, độ chính xác của công thức Pythagore phụ thuộc vào tọa độ được sử dụng. Khi các tọa độ đó là vĩ độ và kinh độ trên một hình cầu (hoặc ellipsoid), chúng ta có thể mong đợi rằng

  1. Khoảng cách dọc theo đường kinh độ sẽ chính xác hợp lý.

  2. Khoảng cách dọc theo đường xích đạo sẽ chính xác hợp lý.

  3. Tất cả các khoảng cách khác sẽ là sai lầm, tỷ lệ thô với sự khác biệt về vĩ độ và kinh độ.

Lỗi phụ thuộc vào điểm bắt đầu và điểm kết thúc của các tính toán khoảng cách. Tuy nhiên, vì cả hình cầu và hình elip đều có đối xứng tròn quanh trục, nên lỗi chỉ phụ thuộc vào khác biệt của kinh độ, vì vậy để nghiên cứu lỗi này, chúng tôi cũng có thể lấy điểm gốc xuất phát tại Kinh tuyến gốc. Bởi vì cả hình cầu và hình elip đều đối xứng dưới sự phản xạ bắc-nam, chúng ta chỉ cần nghiên cứu các điểm có nguồn gốc ở bán cầu nam. Đối với bất kỳ điểm nào như vậy, chúng tôi có thể vẽ bản đồ đường viền của lỗi tương đối, bằng [Tính toán Pythagore] / [Khoảng cách thực].

Công thức Pythagore, sử dụng bán kính trung bình của trái đất, là

Pythagorean distance =  6371000. * Sqrt[dx^2 + dy^2]] * pi / 180 meters

trong đó dx là sự khác biệt về kinh độ và dy là sự khác biệt về vĩ độ, cả về độ. (Sự khác biệt về giá trị kinh độ được giảm modulo 360 để đưa ra giá trị chính xác của dx khi băng qua Trước ngọ;. Không làm như vậy sẽ giới thiệu lỗi nhân tạo lớn cho chúng tôi biết gì về công thức Pythagore chính nó)

Các sơ đồ sau đây cho thấy lỗi tương đối so với khoảng cách chính xác trên ellipsoid WGS 84 cho các vĩ độ từ -70 đến 0 với gia số 10 độ. Tọa độ ngang là sự khác biệt về kinh độ và tọa độ dọc là vĩ độ của điểm đến. Vùng sáng có sai số tương đối nhỏ: các đường đồng mức nằm ở 1, 1.01, 1.02, 1.05, 1.1, 1.2, 1.5, 2, v.v. (Các vùng màu trắng tinh khiết ở các góc là những nơi mà lỗi vượt quá phạm vi của các đường viền này .) Các chấm đỏ hiển thị điểm gốc.

Lô đất

Các dải trắng dọc làm chứng cho tính chính xác của kỳ vọng (1): Khoảng cách Pythagore là chính xác khi có sự khác biệt nhỏ về kinh độ. Các dải trắng ngang ở vĩ độ thấp xác nhận kỳ vọng (2): gần Xích đạo, khoảng cách ngang là chính xác hợp lý. Mặt khác, như được chứng kiến ​​bởi các vùng tối rộng lớn, ở tất cả các khoảng cách khác, công thức Pythagore là xấu.


Chúng tôi có thể ước tính định lượng tối đa lỗi đạt được cho các cặp điểm gần đó (trong phạm vi, cách nhau vài trăm km). Tỷ lệ - sử dụng một giá trị phù hợp cho bán kính - là đúng dọc theo kinh tuyến nhưng dọc theo một vòng tròn vĩ độ, nó sai khoảng xấp xỉ bởi độ trễ của vĩ độ. Ví dụ, ở vĩ độ 40 độ, mật độ là 1,31, ngụ ý công thức Pythagore sẽ cho khoảng cách quá lớn khoảng 31% theo hướng đông-tây. . quá lớn bởi một số tiền từ 0% đến 31%; khoảng cách xa hơn có thể sai nhiều hơn (như các sơ đồ đường viền hiển thị).


1
Thực sự cần phải có một chức năng 'câu trả lời yêu thích', cho những câu trả lời như thế này.
Devdatta Tengshe

2
@DevdattaTengshe: anh ấy rõ ràng yêu cầu nó phải lành mạnh: "trong đó dx là sự khác biệt về kinh độ (thể hiện giữa -180 và 180) và dy là sự khác biệt về vĩ độ, cả về độ."
lynxlynxlynx

1
Đó là 2, vì 2 * 179 lớn hơn 180?
lynxlynxlynx

1
@whuber: Tôi biết điều này và bạn biết điều này, nhưng hầu hết những người mù quáng cố gắng sử dụng hình học Pythagore / Euclide, thậm chí không nghĩ hoặc biết về nó. Sẽ có ích nếu sự thật này (bạn nên sử dụng Mod 360) đã có trong câu trả lời của bạn.
Devdatta Tengshe

1
@ToolmakerSteve Điều đó tốt - Tôi thường sử dụng hiệu chỉnh này - nhưng tôi hy vọng người dùng của nó hiểu đó là một xấp xỉ và đối với khoảng cách lớn và một vài trường hợp khác có thể vượt xa.
whuber

8

Tôi đã giải thích "khoảng cách Pythagonean" là "khoảng cách Euclide". Sau đó, câu trả lời giống như "sự khác biệt giữa độ dài của hợp âm của một vòng tròn và chu vi phụ thuộc là gì?" Đặt bán kính là R, góc phụ là A (radian).

perimeter = L = A*R
chord = C = 2*sin(A/2)*R
diff = D = L - C
     = (A-2*sin(A/2))*R
     = A^3/24 * R  (for A small)
     = L^3/(24*R^2) (eliminating A)
relative error = D/L
               = (L/R)^2/24

Đối với trái đất, thay thế R = 6400 km. Nhân tiện, gọi nó là "khoảng cách vòng tròn lớn" (nó là gì) không phải là "khoảng cách haversine" (cách tính). (Điều này tương tự như sự phân biệt giữa khoảng cách Pythagore và khoảng cách Euclide.)


Theo lý luận của bạn, bạn có thể thay thế L và ước tính chỉ yêu cầu A.
lynxlynxlynx

Bạn có thể giải thích biểu thức bạn kết thúc không? Làm thế nào A ^ 3/24 * R này xuất hiện?
tò mò

Mở rộng sin (A / 2) cho A nhỏ, sử dụng sin (x) = x - x ^ 3/6 và bạn nhận được kết quả này.
cffk

5

Đối với một câu trả lời đầy đủ và nghiêm ngặt, hãy nhìn vào câu trả lời của người ở trên. Tôi sẽ trả lời một cách trực quan và cơ bản hơn.

Lý do tại sao các phép tính phẳng / Pythagore không phù hợp là vì các phép tính dựa trên thực tế là việc di chuyển một bước theo bất kỳ hướng nào là sự thay đổi liên tục về cường độ bất kể bạn đang ở đâu trên biểu đồ.

đồ thị đơn giản

Kinh độ không phù hợp với yêu cầu này. Các đường kinh độ hội tụ ở hai cực.

toàn cầu cho thấy sự hội tụ

Đó là lý do tại sao khi chúng ta san phẳng Trái đất để phản ánh các quy tắc của đồ thị phẳng, chúng ta sẽ bị biến dạng.

Bản đồ chiếu Mercator

Nếu bạn nhìn vào bản đồ đó, nó xuất hiện như thể Greenland có kích thước gần bằng châu Phi và Nam Cực có kích thước tương đương với lục địa Á-Âu. Tất nhiên điều đó không đúng. Greenland và Nam Cực đều cực kỳ méo mó vì chúng nằm gần các cực nơi kinh độ hội tụ.

xem bắc cầu bán cầu

Như bạn có thể thấy Greenland có kích thước xấp xỉ Mexico.

găng tay nam bán cầu

Và Nam Cực có kích thước tương đương miền nam châu Phi (không phải Nam Phi).

Như bạn có thể thấy các lỗi bạn sẽ nhận được khi áp dụng các công thức Pythagore phụ thuộc nhiều hơn vào vị trí của các điểm hơn là khoảng cách giữa các điểm. Với cảnh báo quan trọng rằng khoảng cách dài hơn sẽ phóng to bất kỳ lỗi nào. Đây là lý do tại sao các giải pháp phẳng, trong khi cám dỗ, là một lựa chọn kém. Sự bóp méo sẽ cắn bạn và nó không đơn giản như một sự bù đắp. Các lỗi là kết quả của việc cong vênh trái đất để phù hợp với các quy tắc không phù hợp.


Trên thực tế, những gì bạn đang hiển thị là một loại lỗi khác nhau. Được sử dụng một cách chính xác, định lý pythagore tính toán khoảng cách kinh độ dựa trên độ dài dọc theo đường vĩ độ bạn đang ở, do đó nhân vớicos(lat) . Được sử dụng theo cách này, các lỗi nhỏ cho khoảng cách nhỏ, bất cứ nơi nào trên một quả cầu (trừ khi vượt qua cực N hoặc S). Những gì bạn đang thể hiện là một sự biến dạng của một hình chiếu của cả trái đất, trong đó chắc chắn một số vùng bị bóp méo rất nhiều. "Các lỗi bạn sẽ nhận được .. phụ thuộc nhiều hơn vào nơi .. hơn khoảng cách" là không đúng nếu sử dụng * cos(lat).
ToolmakerSteve
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.