2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.



Начать новую тему Ответить на тему
 
 аппроксимация. какой метод?
Сообщение22.03.2011, 13:29 


22/03/11
3
Добрый день,

Прошу помощи у математического сообщества.

Задача:
Есть сканирующая оптическая система. Меняя положения сканирующих элементов (например зеркал) вычисляется набор соответсвующих точек фокуса.
В результате таблица в четыре столбца (A,B,) + (x,y) . где А и В конктретные положения зеркал, x,y - соответствующие координаты фокуса в заранее заданой СК. Шаг приращений по А и В задан (например 0.1 градуса)
Необходим обратный алгоритм - для произвольно заданых (x,y) определить соответсвующие (A,B)
Есть вариант - поиск функций A=f(x,y) B=f(x,y) в виде степнных функции.
Насколько задача усложниться если число параметров системы возрастет - (A,B,C,D...)->(x,y)
Подскажить к какому классу мат. задач это относится чтоб знать где копать?
Спасибо.

 Профиль  
                  
 
 
Сообщение22.03.2011, 14:19 
Заслуженный участник
Аватара пользователя


23/07/08
10910
Crna Gora
Ваша задача относится к одному из двух классов задач: интерполяция или аппроксимация.
Если ищется функция двух переменных $A(x, y)$, то это двумерная интерполяция (или аппроксимация).
Если $A(x, y)$ ищется в виде полинома, то у Вас будет интерполяция степенными функциями (она же интерполяция полиномами, она же полиномиальная интерполяция).

Теперь о разнице интерполяции и аппроксимации.
При интерполяции Вы требуете железно, чтобы Ваша функция прошла через опорные точки (узлы интерполяции). Для этого у функции (=полинома) должно быть столько неизвестных параметров (=коэффициентов полинома), сколько опорных точек.
При аппроксимации неизвестных параметров меньше, и степень полинома меньше. Вы не пройдете точно через узлы, но Вы требуете наименьшего (в каком-то смысле) отклонения от них. В отличие от интерполяции, здесь функция меньше дёргается, ведет себя более гладко, спокойно и лениво.

Как ни странно, "приближенная" полиномиальная аппроксимация часто дает гораздо лучшие результаты, чем "точная" интерполяция. Она сглаживает ошибки измерений. А интерполяция, наоборот, тупо пытается посетить каждую точку. И есть у полиномов такая неприятная особенность: они всячески стремятся изогнуться, совершая между точками колебания (это Вам надо увидеть один раз на графике). А за пределами области они вообще ведут себя как зверь, выпущенный из клетки. Эта особенность гораздо меньше проявляется для полиномов невысокого порядка, т.е. при аппроксимации.

Короче говоря, я предлагаю Вам решать задачу аппроксимации и искать $A$ и $B$ в виде $A(x, y) = \sum \limits_{i=0}^{N_x} \sum\limits_{k=0}^{N_y} a_{ik} x^i y^k$, $B(x, y) = \sum \limits_{i=0}^{N_x} \sum\limits_{k=0}^{N_y} b_{ik} x^i y^k$. Числа $N_x$ и $N_y$, конечно, зависят много от чего, но начинайте с небольших значений ($2$, $3$, $4$).

Кроме полиномов, можно использовать множество других функций (например, сплайны), но это отдельная тема.

 Профиль  
                  
 
 
Сообщение22.03.2011, 22:40 
Аватара пользователя


30/07/10
254
Обычно для минимизации разницы $|B(x,y) - f(x,y)|$ применяют метод наименьших квадратов. Суть этого метода заключается минимизации функционала, представляющего собой интеграл квадрата разности аппроксимирующего полинома и исходной функции. В таком случае решение можно получить как для табличного набора данных так и для некоторой заданной аналитической функции.
Могу от себя добавить, что перед тем, как решать задачу аппроксимации неплохо нормировать переменные аппроксимируемой функции на единицу некоторым линейным преобразованием. Это позволяет снизить ошибку при численном интегрировании и несколько упростить расчёты. Сам решал такую проблему, правда у меня была не таблица значений, а явно заданная функция двух переменных.

 Профиль  
                  
 
 
Сообщение31.03.2011, 14:34 


22/03/11
3
Cпасибо.
Задачу с двумя переменными удолось решить стандартными методами аппроксимируя полиномом в mathcad (regress) и matlab(surface fitting)
Как справляться если в будущем число переменных будет три и больше? Какой мат пакет лучше для таких задач?

 Профиль  
                  
 
 Re: аппроксимация. какой метод?
Сообщение31.03.2011, 15:02 


23/12/07
1763
По-моему, все-таки это задача интерполяции: при заданном положении сканирующих элементов точно известно положение фокусов. Если же использовать аппроксимацию, то эта информация может потеряться. Насколько критична такая потеря уже должен решать сам исследователь. Если не слишком - то можно интерполяцию аппроксимацией заменять.

И да, я бы наверное на Вашем месте использовал сплайн-интерполяцию.

 Профиль  
                  
 
 
Сообщение31.03.2011, 15:12 
Заслуженный участник


11/05/08
32166
Вообще-то аппроксимация -- это просто синоним слова "приближение", и интерполяция -- частный случай аппроксимации. Поскольку речь идёт об обработке экспериментальных данных -- безусловно, нужна какая-либо сглаживающая аппроксимация типа метода наименьших квадратов. Кроме того, многое зависит от диапазона изменения параметров. Если он велик, то просто МНК будет работать заведомо неадекватно. Тут, видимо, лучше будет использовать действительно сплайны, но, опять же, не интерполирующие, а сглаживающие.

 Профиль  
                  
 
 
Сообщение31.03.2011, 15:18 


22/03/11
3
естественно после получение аппроксимирующей поверхности был проведен обратный анализ. новые положения фокусов были в пределах допустимого.
Подскажите в каком мат пакете правельнее всего решать такие задачи когда число переменных больше двух и возможно использовать сплайны?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group