最小二乘法--基于matlab实现
最小二乘法--基于matlab实现
理解最小二乘法,你只需要这两张ppt+两个链接:
https://zhuanlan.zhihu.com/p/99924603?utm_source=qq
https://blog.csdn.net/hudaJY/article/details/84404703
clc,clear,close all;
x = [0.5,1,1.5,2.0,2.5,3.0];
y = [1.75,2.45,3.81,4.80,7.00,8.60];
a1 = polyfit(x,y,1); % n=1 的 一次拟合
a2 = polyfit(x,y,2); % 二次拟合
a3 = polyfit(x,y,3); % 三次拟合
% a: 返回的是拟合曲线的系数的降幂排列
x1 = [0.5:0.05:3.0]; % 拟合曲线的 x 的取值
y1 = a1(1)*x1 + a1(2); % 一次多项式
y2 = a2(1).*x1.*x1 + a2(2)*x1 + a2(3); %二次多项式
y3 = a3(1).*x1.*x1.*x1 + a3(2).*x1.*x1 + a3(3)*x1 + a3(4); %三次多项式
% 根据返回的系数 a 得到拟合曲线 y1 y2 y3
figure(1)
plot(x,y,'*');
hold on;
plot(x1,y1,'b--',x1,y2,'k',x1,y3,'ro-');
legend('原始数据','一次拟合','二次拟合','三次拟合');
最小二乘法--基于matlab实现相关教程