2014 dxdy logo

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

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




 
 Аппроксимация функцию с подошью МНК
Сообщение17.05.2011, 23:42 
Здравствуйте, мне нужно аппроксимировать функцию с подошью МНК, но я не как не могу разобраться в этот методе наименьших квадратов используя многочлены разных степеней(2-5).
Поиски статей успехом не увенчались, я нашел пару статей с исходным кодом на разных языках программирования или же статьи с линейной аппроксимацией, подскажите в чем состоит этот метод.

 
 
 
 Re: Аппроксимация функцию с подошью МНК
Сообщение18.05.2011, 15:29 
Аватара пользователя
Пусть $[a,b]$ - интервал аппроксимации, $f(x)$ - заданная функция. В МНК, применительно к вашему случаю, требуется так выбрать коэффициенты аппроксимирующего многочлена $y(x;a_0,a_1,...,a_n)=a_0+a_1x+a_2x^2+...+a_nx^n$, чтобы на интервале аппроксимации минимизаровалась сумма квадратов отклонений аппроксимирующей функции от исходной: $$\varepsilon(a_0,a_1,...,a_n)=\int\limits_a^b(f(x)-y(x;a_0,a_1,...,a_n))^2dx\rightarrow min$$ Минимизируемая величина является функцией $n+1$ переменных. Для определения набора переменных, соответствующих экстремуму, найдём её частные производные по всем переменным и приравняем к нулю, в результате получим систему уравнений: $$\frac {\partial \varepsilon} {\partial a_k}=\frac {\partial} {\partial a_k}\int\limits_a^b(f(x)-y(x;a_0,a_1,...,a_n))^2dx=0,k=0,...,n$$ или $$-2\int\limits_a^b(f(x)-y(x;a_0,a_1,...,a_n))\frac {\partial y(x;a_0,a_1,...,a_n)} {\partial a_k}dx=0,k=0,...,n$$ Так как $\frac {\partial y(x;a_0,a_1,...,a_n)} {\partial a_k}=x^k$, получим: $\int\limits_a^b(f(x)-y(x;a_0,a_1,...,a_n))x^kdx=0,k=0,...,n$. Подставив выражение для аппроксимирующего многочлена, получим СЛАУ относительно коэффициентов многочлена:$$a_0C_k+a_1C_{k+1}+...+a_nC_{k+n}=M_k,k=0,...,n$$ где $C_k=\int\limits_a^bx^kdx=\frac {b^{k+1}-a^{k+1}} {k+1}$, $M_k=\int\limits_a^bx^kf(x)dx$ - степенной момент функции. Решая полученную систему уравнений находим коэффициенты аппроксимирующей функции.

 
 
 
 Re: Аппроксимация функцию с подошью МНК
Сообщение18.05.2011, 15:39 
profrotter в сообщении #447214 писал(а):
$\int\limits_a^b(f(x)-y(x;a_0,a_1,...,a_n))x^kdx=0,k=0,...,n$.

Это, конечно, верно, но безо всяких дифференцирований: просто потому, что $\|f-y\|=\min\ \Leftrightarrow\ f-y\perp z$ для любого многочлена $z(x)$ степени не выше $n$.

 
 
 
 Re: Аппроксимация функцию с подошью МНК
Сообщение03.03.2012, 01:37 
А расскажите пожалуйста как решать в случае если функция зависит от двух переменных f(x,y)?

 
 
 
 Re: Аппроксимация функцию с подошью МНК
Сообщение03.03.2012, 21:16 
Аватара пользователя
Пусть $x\in[x_1,x_2];y\in[y_1,y_2]$ - прямоугольная область, в которой выполняется аппроксимация, $f(x,y)$ - заданная функция, $f_a(x,y;a_0,a_2,...,a_{N-1})$ - аппроксимирующая функция переменных $x,y$ с параметрами $a_0,a_2,...,a_{N-1}$. Рассмотрим разность $$\Delta(x,y;a_0,a_2,...,a_{N-1})=f(x,y)-f_a(x,y;a_0,a_2,...,a_{N-1}).$$ Квадарат этой разности $\Delta^2(x,y;a_0,a_2,...,a_{N-1})$ всегда положителен и в качестве меры качества аппроксимации можно рассмотреть объём под этой поврехностью над областью $[x_1,x_2]\times[y_1,y_2]$: $$\varepsilon(a_0,a_2,...,a_{N-1})=\int\limits_{x_1}^{x_2}\int\limits_{y_1}^{y_2}\Delta^2(x,y;a_0,a_2,...,a_{N-1})dxdy$$ Чем меньше значение $\varepsilon$,тем меньше "разностный объём" и тем ближе аппроксимируемая и аппроксимирующая поверхности проходят друг к другу. Из необходимого условия экстремума получаем систему уравнений для коэффициентов аппроксимирующей функции: $$\frac {\partial \varepsilon}{\partial a_k}=0, k=0,...,N-1$$

 
 
 
 Re: Аппроксимация функцию с подошью МНК
Сообщение03.03.2012, 21:39 
Kristiks в сообщении #544723 писал(а):
А расскажите пожалуйста как решать в случае если функция зависит от двух переменных f(x,y)?

Ровно так же. МНК ровно никак не зависит от природы аргументов модели -- числовые они, или векторные, или ещё какие. Единственно что возникают нюансы, связанные с корректностью задачки; но и они при естесвенно-разумной постановке задачи снимаются автоматически.

 
 
 
 Re: Аппроксимация функцию с подошью МНК
Сообщение04.03.2012, 17:58 
Спасибо большое, но в буквенном виде не очень понятно... Можете объяснить в числах?? Например x принимает значения 20; 25; 30; 40. y принимает значения 60; 85; 90; 100. z принимает значения 0.01; 0.02; 0,1; 0,3. А степень многочлена - 3.

 
 
 
 Re: Аппроксимация функцию с подошью МНК
Сообщение04.03.2012, 18:18 
Kristiks в сообщении #545243 писал(а):
А степень многочлена - 3.

Какого конкретно многочлена-то?...

Если зет от икс-игрек, то задача заведомо некорректна: безумно много базисных функций.

 
 
 
 Re: Аппроксимация функцию с подошью МНК
Сообщение04.03.2012, 18:25 
а как тогда можно аппроксимировать функцию зет от x и y, чтобы степень получаемой функции была 3?

 
 
 
 Re: Аппроксимация функцию с подошью МНК
Сообщение04.03.2012, 18:29 
Это Ваша задача -- придумать, как. Но в любом случае количество параметров модели должно быть не больше, чем количество точек, по которым эта модель строится. Это условие не всегда достаточно, но оно всегда необходимо. У Вас же оно нарушается очень грубо.

 
 
 
 Re: Аппроксимация функцию с подошью МНК
Сообщение04.03.2012, 18:52 
А вы не помогли бы помочь решить эту задачу, если это условие будет выполняться?

-- 04.03.2012, 19:52 --


 
 
 
 Re: Аппроксимация функцию с подошью МНК
Сообщение05.03.2012, 15:47 
Аватара пользователя
Полагаю в Вашем случае следует минимизировать $$\varepsilon=\sum\limits_{n=0}^{N-1}\sum\limits_{k=0}^{K-1}(z_{nk}-f_a(x_n,y_k))^2$$ по коэффициентам аппроксимирующей функции. А аппроксимирующая функция в виде многочлена степени $M$ на $L$ в двумерии должно быть $$f_a(x,y)=\sum\limits_{m=0}^{M}\sum\limits_{l=0}^{L}a_{ml}x^my^l.$$ Теперь надо выражение для аппроксимирующего многочлена подставить в выражение для $\varepsilon$, взять частные производные по всем $a_{ml}$ и приравнять их к нулю. При этом получится большая СЛАУ, из которой эти коэффициенты и найдутся. Интересно было бы посмотреть на результаты такой аппроксимации.

Не могу порекомендовать книжек к сожалению. И сверить не с чем. Ну там ewert посмотрит, если что-то неверно - напишет. :mrgreen:

 
 
 
 Re: Аппроксимация функцию с подошью МНК
Сообщение05.03.2012, 16:18 
profrotter в сообщении #545545 писал(а):
Интересно было бы посмотреть на результаты такой аппроксимации.

Да ничего интересного. Надо просто тупо составлять систему -- и решать. Формальный вид системы никак не зависит от природы "узлов" -- одномерные ли они, многомерные или вообще цветозапаховые. А вот корректной ли окажется эта системка или нет -- это уже зависит от ситуации.

Для начала я бы предложил подумать над совсем деццким вопросом -- пусть модель есть попросту линейная регрессия: $f(x,y)=a+bx+cy$. При каких наборах входных данных (т.е. наборах иксов, игреков и приближаемых зетов) задачка на МНК окажется корректной, а при каких -- нет?...

 
 
 
 Re: Аппроксимация функцию с подошью МНК
Сообщение07.03.2012, 07:20 
Аватара пользователя
ewert в сообщении #545556 писал(а):
Для начала я бы предложил подумать над совсем деццким вопросом -- пусть модель есть попросту линейная регрессия: $f(x,y)=a+bx+cy$. При каких наборах входных данных (т.е. наборах иксов, игреков и приближаемых зетов) задачка на МНК окажется корректной, а при каких -- нет?...

Задача МНК корректна, если отклик зашумлен гауссовской помехой.

 
 
 
 Re: Аппроксимация функцию с подошью МНК
Сообщение07.03.2012, 09:37 
Александрович в сообщении #545946 писал(а):
Задача МНК корректна, если отклик зашумлен гауссовской помехой.

Речь шла не о статистической интерпретации, а просто о корректности системы уравнений (т.е. о единственности решения).

 
 
 [ Сообщений: 15 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group