最小二乘法拟合数据。最小二乘法拟合数据哦。最小二乘法拟合数据啊。最小二乘法拟合数据额。最小二乘法拟合数据嗯。
可以尝试lsqcurvefit函数。
参考:https://blog.csdn.net/qq_30114787/article/details/107560300
使用MATLAB实现最小二乘法拟合数据并绘制拟合曲线的步骤:
x = [1,2,3,4,5];
y = [1.6,2.3,2.8,3.5,3.7];
p = polyfit(x,y,1); % 拟合为一次函数,返回系数向量p
y_fit = polyval(p,x); % 计算拟合曲线上的y值
plot(x,y,'o',x,y_fit); % 绘制散点图和拟合曲线
完整代码如下:
% 准备数据
x = [1,2,3,4,5];
y = [1.6,2.3,2.8,3.5,3.7];
% 拟合数据
p = polyfit(x,y,1); % 拟合为一次函数,返回系数向量p
y_fit = polyval(p,x); % 计算拟合曲线上的y值
% 绘制数据和拟合曲线
plot(x,y,'o',x,y_fit);
legend('原始数据','拟合曲线');
xlabel('自变量');
ylabel('因变量');
title('最小二乘法拟合曲线图');
运行结果如下图所示:
注意:以上代码中的拟合曲线为一次函数,如果需要进行更高次数的多项式拟合,只需要将polyfit函数的第三个参数设定为相应的次数即可。另外,polyfit函数的返回值p为拟合直线的系数向量,可以用polyval函数计算拟合曲线上的y值。