Здравствуйте, GrayD, Вы писали:
GD>Доброго времени суток!
GD>Проблема такая необходимо сравнить 2 кусочно линейные функции(т.е. заданные массивами вида {координаты вершины,
GD>наклон прямой,соединяющую эту точку со следующей вершиной}). Надо их сравнить по метрике R(x,y) = 2*Summ(x*y)/(Summ(x*x) + Summ(y*y))(или что тоже самое R(x,y) =1 — Summ((x-y)(x-y))/(Summ(x*x) + Summ(y*y))). Надо найти быстрый способ сравнения (слить 2 массива, а потом считать R на ближайших вершинах, не катит по скорости).Заранее спасибо.
А посчитать интегралы?
Метрика R(x,y) для
всех точек отрезка x1,y1 — x2,y2 даст
r2
/
S = | R(x(r),y(r)) dr
/
r1
где
x(r) = x1 + r·cos(a)
y(r) = y1 + r·sin(a)
a = arctg((y2-y1)/(x2-x1))
r1 = 0
r2 = sqrt((x2-x1)^2+(y2-y1)^2)
R(r) = x(r)·y(r) / (x(r)^2 + y(r)^2)
Как брать такой интеграл — сейчас не скажу. Вроде бы там что-то простое.
Здравствуйте, GrayD, Вы писали:
GD>Доброго времени суток!
GD>Проблема такая необходимо сравнить 2 кусочно линейные функции(т.е. заданные массивами вида {координаты вершины,
GD>наклон прямой,соединяющую эту точку со следующей вершиной}). Надо их сравнить по метрике R(x,y) = 2*Summ(x*y)/(Summ(x*x) + Summ(y*y))(или что тоже самое R(x,y) =1 — Summ((x-y)(x-y))/(Summ(x*x) + Summ(y*y))). Надо найти быстрый способ сравнения (слить 2 массива, а потом считать R на ближайших вершинах, не катит по скорости).Заранее спасибо.
несколько вопросов
1. я условие не понял. как задается следю кусочно-линейная фунция:
|x + 1, x < 0
y = |1 - x, 0 < x < 1
|x - 1, x > 1
2. Что такое summ(x, y) ?
3. как сравнить функцию из примера с прямой y = 1