МНК: Приближение тригонометрическим полиномом в MS EXCEL

Метод наименьших квадратов (МНК) основан на минимизации суммы квадратов отклонений выбранной функции от исследуемых данных. В этой статье аппроксимируем имеющиеся данные с помощью тригонометрического полинома. 

В основной статье про МНК  было рассмотрено приближение линейной функцией. В этой статье рассмотрим аппроксимацию методом наименьших квадратов с помощью тригонометрических многочленов (англ. Discrete Least Squares Approximation by Trigonometric Polynomials).

Под тригонометрическим многочленом будем понимать многочлен вида:

Максимальный порядок этого полинома k ограничен значением n/2, где n – это количество имеющихся пар значений (хi; yi), т.е. k<n/2.

Чтобы вычислить значение вышеуказанного полинома k-го порядка, для каждого заданного xi необходимо найти его коэффициенты aj и bj, включая a0 и ak.

Напомним, что метод наименьших квадратов заключается в подборе таких коэффициентов полинома, при которых выражение

принимает минимальное значение.

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

Сначала будем предполагать, что значения хi равномерно распределены на интервале [-π; п) или [0; 2п). А в конце статьи покажем, как избавиться от этого ограничения.

Сложный вывод коэффициентов приводить не будем, а запишем сразу конечный результат.

В файле примера на листе Триногом приведен расчет коэффициентов тригонометрического полинома Tk(х), а затем и значения этого полинома для всех xi.

В качестве примера возьмем функцию y=x2*sin(x) на интервале [-п; п) и построим для нее аппроксимирующий тригонометрический полином третьего порядка T3(х).

 

Покажем, что при увеличении порядка полинома k, точность аппроксимации увеличивается. Для этого построим T4(х) и T5(х).

Примечание: Т.к. период функции Tk(х) равен 2п, то при аппроксимации функции f(x) (соответствующих значений этой функции), для которой f(-п)≠f(п), у нас могут быть проблемы с приближением. Например, сравните результаты приближения функции f(х)=x2, для которой f(-п) = f(п) и функции f(х)=x3, для которой f(-п)≠f(п). Оба приближения сделаны полиномом 4-го порядка T4(х).

Выходом из этой ситуации может стать выбор такого диапазона изменения х, для которого f(x1) ≈ f(xn). Но, часто это означает, что нам необходимо использовать интервал, отличный от [-п; п) или [0; 2п). Ниже покажем, как аппроксимировать функцию тригонометрическим полиномом на произвольном интервале.

Возьмем ту же функцию y=x2*sin(x) на интервале (-20; 20). Предположим, что интервал аппроксимации равен (-15,8; 5,0) и выделим его цветом.

 

Границы интервала подобраны так, чтобы значения функции были примерно одинаковы в этих крайних точках.

Сначала вычислим значения аппроксимируемой функции y(xj).

Напомним, что ранее для вычисления значений коэффициентов aj и bj мы использовали значения y(xj) и значения xj из интервала [-п; п). Вроде бы, по аналогии, для мы должны поступить также: использовать y(xj) и значения xj из интервала (-15,8; 5,0). Но, в этом случае мы не получим приемлемой точности аппроксимации.

Трюк заключается в следующем: для вычисления значений коэффициентов aj и bj мы будем по прежнему использовать значения y(xj), а вместо значений xj из интервала (-15,8; 5,0) продолжим использовать xj из интервала [-п; п), но обозначим их как zj. Для расчета полинома Tk также будем использовать значения zj.

 

В файле примера на листе Триногом2 приведен расчет значений тригонометрического полинома Tk(z). Там же построен график для визуального сравнения значений исходной функции y=x2*sin(x) и приближающего полинома.


Связанные статьи

Похожие задачи
Прочитайте другие статьи, решающие похожие задачи в MS Excel. Это позволит Вам решать широкий класс подобных задач.
Средняя: 5 (1 оценка)