Линейные наименьшие квадраты соответствуют ограничениям - есть идеи? - PullRequest
2 голосов
/ 29 октября 2011

У меня проблема с подгонкой многочлена высокого порядка к (не очень) шумным данным с использованием линейных наименьших квадратов. В настоящее время я использую полиномиальные порядки около 15 - 25, которые работают на удивление хорошо: зависимость очень близка к линейной, но точность моделирования «очень близко» имеет решающее значение. Я использую функцию polyfit () Matlab и (очевидно) нормализую данные x. Это обычно работает нормально, но я столкнулся с проблемой с некоторыми недавними наборами данных. Выделенный полином имеет экстремумы в интервале x-данных. Для приложения, над которым я работаю, это не-нет. Полиномиальная модель не должна иметь стационарных точек в интервале х.

Так что мне нужно добавить ограничение к задаче наименьших квадратов: производная от подогнанного полинома должна быть строго положительной в известном x-диапазоне (или строго отрицательной - это зависит от данных, но простая линейная подгонка быстро скажите мне, что это такое.) Я быстро взглянул на доступные функции панели инструментов оптимизации, но признаюсь, что не знаю, как это сделать. У кого-нибудь есть предложения?

[Я ценю, что, вероятно, есть модели лучше, чем полиномы для этих данных, но в краткосрочной перспективе изменить форму модели не представляется возможным]

[Заключительное замечание: я наконец-то получил разрешение заменить эту ужасную полиномиальную модель! Я собираюсь принять непараметрический подход, сглаживание сплайнов, используя превосходный код SPLINEFIT от Jonas Lundgren. Преимущество этого заключается в том, что я уже использую сплайн-модель в приложении для конечного пользователя, поэтому у меня уже есть код C # для оценки сплайн-модели]

1 Ответ

0 голосов
/ 29 октября 2011

Вы можете использовать cftool и использовать опцию исключения точек данных.

...