Частота появления ошибок между Haversine и Vincenty
Я сравниваю эффективность формул Винсенти и формулы Хаверсин на разных расстояниях разделения. Я хотел бы знать частоту ошибок между ними. Есть ли какой-нибудь крутой способ построить это?
1 ответ
Я предполагаю, что вы действительно хотите сравнить расстояния большого круга с геодезическими расстояниями. Хаверсайн и Винсенти оказываются алгоритмами вычисления таких расстояний; однако оба приводят к чрезмерным ошибкам в некоторых пределах. См. Мой ответ на вопрос " Является ли формула Хаверсайна или Формула Винсенти лучше для расчета расстояния?,
Я предоставляю лучший алгоритм для геодезических расстояний в пакете географической библиотеки Matlab. Это также обеспечивает точные расстояния большого круга, если для уплощения эллипсоида установлено значение 0. Вот простая иллюстрация его использования для построения графика относительной и абсолютной погрешности для случайного набора точек. Это требует, чтобы мой пакет был на вашем пути Matlab.
num = 100000;
lat1 = asind(2*rand(num,1)-1);
lat2 = asind(2*rand(num,1)-1);
lon1 = 180*(2*rand(num,1)-1);
lon2 = 180*(2*rand(num,1)-1);
wgs84 = defaultellipsoid;
a = wgs84(1);
b = a * (1 - ecc2flat(wgs84(2)));
sphere = [(2*a + b)/3, 0];
[s12s, azi1s, azi2s] = geoddistance(lat1,lon1,lat2,lon2, sphere);
[s12e, azi1e, azi2e] = geoddistance(lat1,lon1,lat2,lon2, wgs84);
erra = (s12s - s12e);
errr = 100 * erra ./ s12e;
figure(1); plot(s12e, abs(errr), 'x');
figure(2); plot(s12e, abs(erra), 'x');
Возможно, вы также захотите взглянуть на мой ответ: Насколько точно аппроксимируется Земля как сфера?,