Приближение функций. Метод наименьших квадратов.

% Функция задана таблицей значений. Аппроксимировать её многочленом по МНК

% Введём функцию (x, f(x))
x=[0,1.13,1.5,2.25,3];
y=[4.57,0.68,0.39,-1.9,-4.4];

% Вычислим приближения с различной степенью
p0 = polyfit(x, y, 0);
p1 = polyfit(x, y, 1);
p2 = polyfit(x, y, 2);
p3 = polyfit(x, y, 3);

% Вычислим ошибки (СКО) в квадрате
y0 = polyval(p0, x);
y1 = polyval(p1, x);
y2 = polyval(p2, x);
y3 = polyval(p3, x);

err0 = 1 / (4 - 0) * sum((y - y0) .^ 2);
err1 = 1 / (4 - 1) * sum((y - y1) .^ 2);
err2 = 1 / (4 - 2) * sum((y - y2) .^ 2);
err3 = 1 / (4 - 3) * sum((y - y3) .^ 2);

% Сравнивая, видим что лучшую точность даёт n = 1
err0
err1
err2
err3

>>
err0 = 11.0956
err1 = 0.1308
err2 = 0.1962
err3 = 0.1803