在matlab下,学会对数据求解最小二乘曲线拟合
matlab作为一个常用的数学工具,可以帮助我们解决很多实用的问题,类试如数学建模之类的,进行数据拟合。以下用polyfit()函数对以下数据求解最小二乘曲线拟合。
操作方法
(01)运行matlab软件,就不赘述了。直接进行编写程序。输入x=[1 4 5 8 10 16 17 18 20 23 24 26 27 28]y=[0.5 0.9 1.3 0.7 2.0 2.5 1.7 1.4 1.5 1.8 2.2 2.5 3.0 4.3]
(02)输入a=polyfit(x,y,1);x1=1:0.5:28;y1=a(1)*x1+a(2);plot(x,y,x27;*',x1,y1,'r')显示如下(该图是线性回归拟合图),反应了函数整体上升时的趋势,但具体细节部分并么有反映出来。
(03)下面对曲线进行二次拟合,其程序代码如下b=polyfit(x,y,2);x2=1:0.5:28;y2=b(1)*x2.^2+b(2)*x2+b(3)按下enter键后出现如下所示在输入plot(x,y,'*',x2,y2,'r')后按下enter后,如第二图所示(二次拟合图)
(04)对比两次的拟合图,会发现二次拟合出来的结果比一次拟合结果更加准确,但仍未反映出数据的真实情况。在对曲线进行高次拟合。输入c=polyfit(x,y,5);x3=1:0.5:28;y3=c(1)*x3.^5+c(2)*x3.^4+c(3)*x3.^3+c(4)*x3.^2+c(5)*x3+c(6)按enter键有如下y3的取值
(05)输入plot(x,y,'*',x3,y3,'-r')按enter键有如下图像。这个图像是对曲线进行的5次拟合的结果,基本上反映出了数据的真实变化情况。需要注意的是不可以对数据进行太高次数的拟合,次数太高就会出现警告。
特别提示
编程序需要认真,要不然就会出错