на главнуюВсе эхи RU.ALGORITHMS
войти ?

подгонка функции под точки

От Evgenij Masherov (2:5020/175.2) к Nickita A Startcev

В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)


From: "Evgenij Masherov" <dsp-book@narod.ru>

NAS> Подскажите люди добрые. :)
NAS> Как подобрать параметры функции заданного вида чтоб она как можно лучше
NAS> легла на экспериментальные точки? Кривая нелинейна, к линейной так
NAS> просто не сводится.

NAS> есть некая экспериментальная установка, она измеряет некий параметр.
NAS> Точнее, установка выдает на выходе некоторое значение, по которому можно
NAS> восстановить этот параметр.
NAS> Взаимосвязь параметра и значения примерно такая: X=a+b/(Y+c), где Х и У
NAS> это параметр и значение, a,b,c - некоторые параметры установки.
NAS> Естественно, установка неидеальна и выдает значение с погрешностями.
NAS> Итого, у нас есть примерно 10-100 пар Х и У.
NAS> Как по этим парам Х и У подобрать такие a,b,c, чтоб кривая X=a+b/(Y+c)
NAS> легла как можно ближе к экспериментальным точкам? Критерий хорошести -
NAS> например, средний квадрат отклонения.

Варианты:
1. Hелинейная регрессия.
min! (X-f(Y,a))^2
SUM df/da*(Y-f(Y,a))=0
(здесь a - вектор параметров)
Задача сводится к серии линейных регрессий
V=Jd
где
V=X-f(Y,a)
J=dF/da - матрица, составленная из значений производной f по параметрам при
разных Y
d - поправки к значениям a
d=(JtJ)^(-1)JtV
(t - транспонирование)
Полезна регуляризованная схема
d=(JtJ+kI)^(-1)JtV
(метод Левенберга-Марквардта)
позволяющий не попасть на необратимую матрицу.
Производные по параметрам довольно очевидны.

2. Частичная линеаризация и перебор по сетке.
Задавшись значением a (здесь - один из параметров a, b, c)
получим
Z=1/(X-a)=Y/b+c/b=p*y+q
Перебирая а, и строя регрессии, находим значение а такое, что R максимально.
Его и принимаем за...

Евгений Машеров АКА СанитарЖеня

--- ifmail v.2.15dev5
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)

Ответы на это письмо:

From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку

From: Username
Или коротким

FGHI-url этого письма: area://RU.ALGORITHMS?msgid=2:5020/175.2+b28a3ad3