@The_Beginer

Как с помощью метода наименьших квадратов реализовать в Octave полиномиальную регрессию?

Есть набор экспериментальных данных
%Экспериментальные данные x и y
x=[-2 -1.3 -0.6 0.1 0.8 1.5 2.2 2.9 3.6 4.3 5 5.7 6.4];
y=[-10 -5 0 0.7 0.8 2 3 5 8 30 60 100 2 3 8];


Есть метод наименьших квадратов
%Метод наименьших квадратов
function s=mnk(c)
  global x;global y;
  s=0;
  for i=1:length(x)
    s=s+(log(y(i))-c(1)-c(2)*log(x(i))*c(3)*x(i))^2
  endfor
end


И рабочая,но не доделанная часть программы на GNU Octave(я указал в тегах MATLAB) но язык программирования у обоих систем компьютерной математики почти идентичен.

global x;global y;
k=1% Степень полинома
c=[2:1:3];
%Экспериментальные данные x и y
x=[-2 -1.3 -0.6 0.1 0.8 1.5 2.2 2.9 3.6 4.3 5 5.7 6.4];
y=[-10 -5 0 0.7 0.8 2 3 5 8 30 60 100 2 3 8];

B=polyfit(x,y,k)%Находим коэффициенты
X1=-10:0.1:100; %Область построения графика
Y1=polyval(B,X1);

plot(x,y,X1,Y1);
grid();


При запуске этой программы в командной строке выходит ans = 0 и не строится график.
Как мне дальше реализовать своё задание,то есть с применением метода наименьших квадратов решить задачу полиноминальной регрессии.
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы