Octave中求解算法多项式回归,最小二乘法的问题

问题描述

我正在尝试使用最小二乘法实现多项式回归。绘制第三个图形时出现问题,未显示。 我认为这是关于公式 y=ax+b 的实现。 但就我而言,首先我使用内联函数 polyfitpolyval 获得了实验数据值。

x=0:0.1:5;
y=3*x+2;
y1=y+randn(size(y));
k=1;#polynom
X1=0:0.01:10
B=polyfit(x,y1,k);
Y1=polyval(B,X1);

毕竟,我已经在使用线性模型用最小二乘法求解多项式回归了。

Y2=Y1'*x+B'; -----this problem formula
subplot(3,2,3);
plot(x,Y1,'-b',X1,'linewidth');
title('y1=ax+b'); 
xlabel('x'); 
ylabel('y');
grid on;

结果,没有绘制图形。

解决方法

检查向量的大小:x 和 Y1 的长度不同,X1 和 y1 的长度相同。

您可能想绘制为:

plot(x,y1,'-b',X1,Y1,'LineWidth',1);