Re: Алгоритм сравнения двух функций
От: Кодт Россия  
Дата: 11.02.05 23:29
Оценка:
Здравствуйте, 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)

Как брать такой интеграл — сейчас не скажу. Вроде бы там что-то простое.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.