Алгоритм сравнения двух функций
От: GrayD  
Дата: 11.02.05 14:30
Оценка:
Доброго времени суток!
Проблема такая необходимо сравнить 2 кусочно линейные функции(т.е. заданные массивами вида {координаты вершины,
наклон прямой,соединяющую эту точку со следующей вершиной}). Надо их сравнить по метрике 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 на ближайших вершинах, не катит по скорости).Заранее спасибо.
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)

Как брать такой интеграл — сейчас не скажу. Вроде бы там что-то простое.
Перекуём баги на фичи!
Re: Алгоритм сравнения двух функций
От: ilya_ny  
Дата: 14.02.05 06:36
Оценка:
Здравствуйте, 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
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.