logo
СФУ_Агафонов_Шестернева_учебное_пособие

1.9. Реализация метода наименьших квадратов в пакете matlab

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

Эта функция отыскивает коэффициенты полинома порядка m, доставляющие минимум критерия метода МНК, когда исходная выборка задана векторами u и х. Результирующий вектор p размерности m + 1 содержит оптимальные коэффициенты полинома в порядке убывания степеней его членов:

.

Функция polyval служит для пересчета полиномиальной модели с заданными коэффициентами:

Вектор x составлен из значений полиномиальной модели МНК с коэффициентами α, соответствующих вектору значений независимой переменной u.

Покажем применение метода МНК для задачи восстановления зависимости по выборке . Выборочные значения функции содержат нормально распределенную случайную ошибку со стандартным отклонением 0.1. Оператор поиска коэффициентов полиномиальной модели имеет вид

>> α = polyfit(1:10,(1:10) + normrnd(0,0.1,1,10),1)

α =

0.9931 0.0612

>>

Полином с найденными коэффициентами в выборочных точках рассчитывается следующим образом:

>> polyval(α,1:10)

ans =

Columns 1 through 10

1.0542 2.0473 3.0404 4.0335 5.0266 6.0196 7.0127 8.0058 8.9989 9.9919

>>

Приведенный пример наглядно иллюстрирует простоту программной реализации метода наименьших квадратов в пакете MATLAB.