Вимірювання радіуса, безумовно, піддаються деякій помилці. Я б очікував, що кількість помилок буде пропорційною самим радіусам. Припустимо, що вимірювання є інакше неупередженими. Тоді розумне рішення використовує зважені нелінійні розміри найменших квадратів з вагами, обернено пропорційними радіусам квадрата.
Це стандартний матеріал доступний в (серед іншого) Python, R
, Mathematica , і багато повнофункціональні статистичні пакети, так що я просто проілюструвати. Ось деякі дані, отримані шляхом вимірювання відстаней з відносною помилкою 10% до п'яти випадкових точок доступу, що оточують розташування пристрою:
Mathematica потребує лише одного рядка коду та не вимірюваного часу процесора для обчислення придатності:
fit = NonlinearModelFit[data, Norm[{x, y} - {x0, y0}], {x0, y0}, {x, y}, Weights -> 1/observations^2]
Редагувати--
Для великих радіусів більш точні (сферичні або еліпсоїдальні) рішення можна знайти лише шляхом заміни евклідової відстані Norm[{x, y} - {x0, y0}]
на функцію для обчислення сферичної або еліпсоїдальної відстані. У Mathematica це можна зробити, наприклад , через
fit = NonlinearModelFit[data, GeoDistance[{x, y}, {x0, y0}], {x0, y0}, {x, y},
Weights -> 1/observations^2]
- закінчення редагування
Однією з переваг використання такої статистичної техніки є те, що вона може створювати довірчі інтервали для параметрів (які є координатами пристрою) і навіть одночасний еліпс довіри для розташування пристрою.
ellipsoid = fit["ParameterConfidenceRegion", ConfidenceLevel -> 0.95];
fit["ParameterConfidenceIntervalTable", ConfidenceLevel -> 0.95]
Доцільно побудувати дані та рішення:
Graphics[{Opacity[0.2], EdgeForm[Opacity[0.75]], White, Disk[Most[#], Last[#]] & /@ data,
Opacity[1], Red, ellipsoid,
PointSize[0.0125], Blue, Point[source], Red, Point[solution],
PointSize[0.0083], White, Point @ points},
Background -> Black, ImageSize -> 600]
Білі точки - це (відомі) місця доступу.
Велика синя крапка - це справжнє місце розташування пристрою.
Сірі кола являють собою виміряні радіуси. В ідеалі вони б перетиналися в справжньому місці пристрою, але, очевидно, цього немає, через помилку вимірювання.
Велика червона крапка - орієнтовне місце розташування пристрою.
Червоний еліпс визначає 95% довіру для розташування пристрою.
Форма еліпса в цьому випадку представляє інтерес: локальна невизначеність найбільша по лінії NW-SE. Тут відстані до трьох точок доступу (до ПП та ЮЗ) ледь змінюються і спостерігається компроміс помилок між відстанями до двох інших точок доступу (на північ і південний схід).
(Більш точна область довіри може бути отримана в деяких системах як контур вірогідної функції; цей еліпс є лише наближенням другого порядку до такого контуру.)
Коли радіуси вимірюються без помилок, усі кола матимуть принаймні одну точку взаємного перетину і - якщо ця точка є унікальною - це буде унікальне рішення.
Цей метод працює з двома або більше точками доступу. Три або більше потрібні для отримання довірчих інтервалів. Коли є лише дві, вона знаходить одну з точок перетину (якщо вони існують); в іншому випадку він вибирає відповідне місце між двома точками доступу.