anonymous@RULINUX.NET~# | Last login: 2024-12-23 07:56:49 |
Регистрация Вход | Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск |
Форум - Development | [RSS] |
Че-то мне одна мысль в голову пришла, может быть, она вообще неразрешима, но вдруг кто-то с похожей проблемой сталкивался.
Задача парпметрической подгонки ставится так - есть набор экспериментальных точек (пусть на плоскости Y vs. X), которые нужно подогнать под зависимость заданную функцией Y=f(X,A,B,C...), где ABC - неизвестные параметры требующие уточнения в процессе подгонки. Причем если параметры ABC входят линейно (например f - это полином по Х), то задача упрощается - вычисление коэффициентов сводится просто к вычислению нескольких сумм по имеющемуся набору экспериментальных точек. Если же какой-то из коэффициентов входит не-линейно (например C Y=A+B*X^C), то для его нахождение уже требуется организовать процедуру поиска, которую уже можно по-разному оптимизировать - алгоритмами Нелдера-Мида, Левенберга-Марквардта и тд
А если задача подгонки опставлена по-другому? Допустим, требуется найти афинное преобразование (т.е. Y'=AY+B, X'=CX+D), которое приводит набор экспериментальных данных к заданной функции (которая может быть заданна просто как таблица значений с какой-то интерполяцией между узлами)? Поскольку преобразование линейное по Х и Y, то можно ли получить знаения A-D не поиском, а простым расчетом?
anonymous(*) (2009-08-18 06:28:00)
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.4) Gecko/20070601 SeaMonkey/1.1.2
|
|
|
Скрыть
Re: Проблемка из прикладной математики - подгонка данныхУточника задачу, а то я не могу понять , что тебе дано и что ты ищешь. Тогда может смогу какую нибудь идею подкинуть. anonymous(*)(2009-08-21 19:58:11)
Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.0.13) Gecko/2009080315 Ubuntu/9.04 Firefox/3.0.13 |
Скрыть
Re: Проблемка из прикладной математики - подгонка данныхВозьмем задачку попроще - есть экспериментальные данные и их надо подогнать под модельную зависимость Y=f(X) только масштабирующими коэффициентами (X'=BX; Y'=AY). Каков мог бы быть сценарий? раскладываем модельную зависимость и экспериментальные данные (в последнем случае это означает - интерполируем) в ряд Тейлора. Коэффициенты там и там должны быть связаны между собой переопределенной системой уравнений: ln(a_i)=ln(b_i)+ln(A)+(i-1)*ln(B) которую можно подогнать линейной аппроксимацией. Этот сценарий работоспособен? А с аффинным преобразованием такой сценарий реализуем? anonymous(*)(2009-08-25 16:15:24)
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.4) Gecko/20070601 SeaMonkey/1.1.2 |
Скрыть
Re: Проблемка из прикладной математики - подгонка данныхЕсли я правильно понял , ты знаешь что толжно быть Y=f(X). (1) На практике у тебя выходит X' и Y'. и урвавнение (1) больше не работает. Но благодаря линеарной коррекции, X=BX'; Y=AY'. (но у тебя в сообщении почему-то. X'=BX; Y'=AY). ты хочешь чтобы всё было, как в (1). тоесть Y=f(X) <=> AY'=f(BX'). Ну тогда анонимус (*) (18.08.2009 11:41:17) с AY+B = f(CX+D) прав. Вот только ещё пару моих спонтанных идей: 1) Сначала разберись с Y, ты же f знаешь. Если Y имеет dimension n Подставь, n значений X так чтобы значения f(X)=Y были linear independent. тогда сможешь вычислить А. 2) Аналог поступаем с BX', ищешь такие значения Y , чтобы значения Х with f(X)=Y, были тоже linear independent, тогда этих уравнений будет достаточно, чтобы решить BX'=Х. 3) ещё возможный вариант для B: может её можно "вытащить" из derivativ от f: df(BX') / dX' = B*df(BX')/dX , может обе части уравнения дискретизировать с Finite Difference Method Может произойти так, что задача не решаема. anonymous(*)(2009-08-26 00:38:09)
Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.13) Gecko/2009073022 Firefox/3.0.13 |
|
|
|
Этот тред читают 1 пользователь: |
Анонимных: 1 Зарегистрированных: 0 |
Re: Проблемка из прикладной математики - подгонка данных
Основное уравнение в данном случае — AY+B = f(CX+D). Поскольку параметры в него входят нелинейно, то, по-видимому, без поиска не обойтись.